Level exporting works!

This commit is contained in:
lustlion 2022-01-30 11:31:18 +01:00
parent 35c260d24f
commit a703af5e8d
6 changed files with 93 additions and 50 deletions

View File

@ -1,14 +1,14 @@
return { return {
name = "level1", name = "test",
tileset = tileset.library, tileset = tileset.library,
tiles = { tiles = {
{13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13}, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{ 0, 0, 0, 0, 0, 0, 5,25,26, 6,25,26, 7, 0, 5,25,26, 7, 0, 0, 0, 0, 0, 0}, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{ 0, 0, 0, 0, 0, 0, 5,37,38, 6,37,38, 7, 0, 5,37,38, 7, 0, 0, 0, 0, 0, 0}, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{ 0, 0, 0, 0, 0, 0, 5,37,38, 6,37,38, 7, 0, 5,37,38, 7, 0, 0, 0, 0, 0, 0}, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{ 0, 0, 0, 0, 0, 0, 5,49,50, 6,49,50, 7, 0, 5,49,50, 7, 0, 0, 0, 0, 0, 0}, { 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2},
{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1} { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
}, },
objects = {} objects = {}
} }

View File

@ -24,6 +24,14 @@ function EditorStep()
if love.keyboard.isDown("down", "s") then if love.keyboard.isDown("down", "s") then
Camera.pos.y = Camera.pos.y + 3*game.scale Camera.pos.y = Camera.pos.y + 3*game.scale
end end
if Keybind:HasPressed(Keybind.debug.reload) then
ExportLevel("test")
end
if Keybind:HasPressed(Keybind.debug.editor) then
editor_mode = false
end
end end
function EditorScroll(y) function EditorScroll(y)

View File

@ -27,7 +27,7 @@
o.dashDistance = 40 -- gameworld pixels o.dashDistance = 40 -- gameworld pixels
o.dashSpeed = o.dashDistance / (o.dashTime*60) -- pixels o.dashSpeed = o.dashDistance / (o.dashTime*60) -- pixels
o.dashCount = 1 -- int o.dashCount = 1 -- int
o.dashAmount = 0 -- int o.dashAmount = 10 -- int
o.boxCollision = { o.boxCollision = {
from = {x = -8, y = -16}, --gameworld pixels from = {x = -8, y = -16}, --gameworld pixels

View File

@ -13,6 +13,31 @@ function GameStep()
Camera:positionCenterAt(main_Player.pos.x, main_Player.pos.y) Camera:positionCenterAt(main_Player.pos.x, main_Player.pos.y)
--camera:positionAt(main_Player.pos.x, main_Player.pos.y,game.width,game.height) --camera:positionAt(main_Player.pos.x, main_Player.pos.y,game.width,game.height)
end end
if Keybind:HasPressed(Keybind.debug.debug) then
if debug then
debug = false
debug_collision = true
elseif debug_collision then
debug_collision = false
else
debug = true
end
end
if Keybind:HasPressed(Keybind.debug.reposition) then
if not editor_mode then
main_Player.pos.x, main_Player.pos.y = 16,-10
end
end
if Keybind:HasPressed(Keybind.debug.reload) then
LoadLevel()
end
if Keybind:HasPressed(Keybind.debug.editor) then
editor_mode = true
end
end end
function GameDraw() function GameDraw()

View File

@ -1,8 +1,47 @@
function ExportLevel(levelname)
function getInput(filename) filename = "output.lua"
local file = io.open(filename, "r") local success, message = love.filesystem.write(filename, "")
io.input(file) if success then
local content = io.read() love.filesystem.append(filename, "return {")
io.close(file) love.filesystem.append(filename, "\n name = \"" .. levelname .. "\",")
return content for k, v in pairs(tileset) do
if v == LevelData.tileset then
love.filesystem.append(filename, "\n tileset = tileset." .. k .. ",")
end
end
love.filesystem.append(filename, "\n tiles = {")
for i = 1, #LevelTiles do
love.filesystem.append(filename, "\n { ")
for j = 1, #LevelTiles[i] do
if j ~= 1 then
love.filesystem.append(filename, ", ")
end
love.filesystem.append(filename, tostring(LevelTiles[i][j].id))
end
love.filesystem.append(filename, "}")
if i ~= #LevelTiles then
love.filesystem.append(filename, ", ")
end
end
love.filesystem.append(filename, "\n },")
love.filesystem.append(filename, "\n objects = {}")
love.filesystem.append(filename, "\n}")
end
end end
--[[
return {
name = "level1",
tileset = tileset.library,
tiles = {
{13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13},
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{ 0, 0, 0, 0, 0, 0, 5,25,26, 6,25,26, 7, 0, 5,25,26, 7, 0, 0, 0, 0, 0, 0},
{ 0, 0, 0, 0, 0, 0, 5,37,38, 6,37,38, 7, 0, 5,37,38, 7, 0, 0, 0, 0, 0, 0},
{ 0, 0, 0, 0, 0, 0, 5,37,38, 6,37,38, 7, 0, 5,37,38, 7, 0, 0, 0, 0, 0, 0},
{ 0, 0, 0, 0, 0, 0, 5,49,50, 6,49,50, 7, 0, 5,49,50, 7, 0, 0, 0, 0, 0, 0},
{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
},
objects = {}
}
]]

View File

@ -80,35 +80,6 @@ function love.update(dt)
--MenuStep --MenuStep
if menuPage ~= nil then MenuStep(menuPage) end if menuPage ~= nil then MenuStep(menuPage) end
if Keybind:HasPressed(Keybind.debug.debug) then
if debug then
debug = false
debug_collision = true
elseif debug_collision then
debug_collision = false
else
debug = true
end
end
if Keybind:HasPressed(Keybind.debug.reposition) then
if not editor_mode then
main_Player.pos.x, main_Player.pos.y = 16,-10
end
end
if Keybind:HasPressed(Keybind.debug.reload) then
LoadLevel()
end
if Keybind:HasPressed(Keybind.debug.editor) then
if editor_mode then
editor_mode = false
else
editor_mode = true
end
end
--editor --editor
if editor_mode then if editor_mode then
EditorStep() EditorStep()