reworking level loading logic

This commit is contained in:
binarycat
2022-03-16 12:02:11 -04:00
parent b3a12305da
commit e8cef497d4
4 changed files with 31 additions and 21 deletions

View File

@@ -1,5 +1,10 @@
function exportLevel(levelname, dirname)
dirname = "export/"..dirname
if love.filesystem.exists(dirname) then
-- TODO: prompt to overwrite
error("file already exists")
end
local ok = love.filesystem.createDirectory(dirname)
if not ok then
@@ -17,7 +22,7 @@ function exportLevel(levelname, dirname)
exportTable.objects = { spawns = {}, rooms = {} }
logPrint(" - spawns")
for i, v in ipairs(LoadedObjects.Spawns) do
exportTable.objects.spawns = {v.archetype.name,{},v.args}
--exportTable.objects.spawns = {v.archetype.name,{},v.args}
end
logPrint(" - rooms")
@@ -26,8 +31,7 @@ function exportLevel(levelname, dirname)
table.insert(exportTable.objects.rooms,{room:asRect():getCoords()})
end
logPrint("Writing to file...")
-- FIXME: serialize_lua_table isn't real...
local ok, err = love.filesystem.write(dirname.."/level.bin", serialize_lua_table("string", "", exportTable))
local ok, err = love.filesystem.write(dirname.."/level.lua", "return "..serialize_lua_value(exportTable))
if ok then
logPrint("Exporting complete.")
else