Mothback/code/in_out.lua
2022-03-16 13:54:25 -04:00

59 lines
1.5 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
logPrint("Writing to file...")
local ok, err = love.filesystem.write(dirname.."/level.lua", "return "..serialize_lua_value(exportTable))
if ok then
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