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 logPrint("error creating directory") end logPrint("Exporting level \"".. levelname .. "\"...") local exportTable = {} exportTable.name = levelname exportTable.tileset = "library" exportTable.properties = LevelData.properties --exportTable.tiles = LevelTiles --logPrint("- objects") --exportTable.objects = { spawns = {}, rooms = {} } --logPrint(" - spawns") --for i, v in ipairs(LoadedObjects.Spawns) do --exportTable.objects.spawns = {v.archetype.name,{},v.args} --end --logPrint(" - rooms") --for i, room in ipairs(LoadedObjects.Rooms) do --- table.insert(exportTable.objects.rooms,{room:asRect():getCoords()}) --end exportTable.chunks = Chunk:getExportList() logPrint("Writing to file...") local ok, err = love.filesystem.write(dirname.."/level.lua", "return "..serialize_lua_value(exportTable)) if ok then logPrint("Saving chunks...") local chunkdir = dirname.."/chunks" love.filesystem.createDirectory(chunkdir) for chunk in Chunk.all do chunk:save(chunkdir) end logPrint("Exporting complete.") else logPrint("Exporting failed: "..err) end end -- Source https://stackoverflow.com/a/11130774 function scandir(directory) local i, t, popen = 0, {}, io.popen local pfile = popen('ls "'..directory..'"') for filename in pfile:lines() do i = i + 1 t[i] = filename end pfile:close() return t end if logging then -- Make log stuff os.execute( "mkdir \"./logs\"" ) logFile = io.open("logs/mothback_"..os.date("%Y-%m-%d_%H-%M-%S")..".log", "a+") end