48 lines
1.3 KiB
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
|