69 lines
1.8 KiB
Lua
69 lines
1.8 KiB
Lua
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 pairs(Chunk.all) do
|
|
local ok, err = chunk:save(chunkdir)
|
|
if not ok then error(err) end
|
|
end
|
|
logPrint("Exporting complete.")
|
|
else
|
|
-- TODO: clean up created files
|
|
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
|