poppy-client/server/commands/saving.lua

48 lines
1.3 KiB
Lua

local util = require("shared.utils")
local constants = require("server.constants")
local rpc = require("server.rpc")
local os = require("os")
return function(commands)
function commands.listSaves(clientID, args)
-- local requestID = args
-- files = love.filesystem.getDirectoryItems( dir )
-- ChunkedReply("SaveData", files)
end
function commands.saveWorld(clientID, savename)
local handle = io.popen("date -u --rfc-3339=seconds")
local datetime = handle:read("*a")
handle:close()
datetime = datetime:sub(1, -8)
datetime = datetime:gsub("%s+", "_")
datetime = datetime:gsub(":+", "")
if savename then
savename = args .. "/" .. datetime
else
savename = datetime
end
local directory = "Saves/" .. savename
local result = love.filesystem.createDirectory(directory)
-- TODO check this result...
if result then
levelloop.Canvas.fg:newImageData():encode("png", directory .. "/fg.png")
levelloop.Canvas.bg:newImageData():encode("png", directory .. "/bg.png")
print("saved world. " .. savename)
broadcast(0, "saveWorld", true, savename)
return
else
print("Failed to save world!")
remoteCallTarget(clientID, 0, "saveWorld", false)
end
end
function commands.loadWorld(clientID, savename)
end
function commands.saveWorldAndLoad(clientID, args)
end
end