dcearth/ui/savemodal.lua

61 lines
1.4 KiB
Lua

--Modal for setting save options.
local love = assert( love )
local modal = require( "ui.modal" )
local button = require( "ui.button" )
local map = require( "map.map" )
local save = require( "ui.saveprogress" )
local t = { w = love.graphics.getWidth(), h = 200 }
local saveLocation = false
local floppy = love.graphics.newImage( "icons/save.png" )
floppy:setFilter( "nearest", "nearest" )
local saveButton = button.new{
group = t,
name = "save",
align = "left",
callback = function() save:start() end,
visible = false,
icon = floppy,
w = 400 - button.x,
h = 64,
y = 0,
}
local xIcon = love.graphics.newImage( "icons/x.png" )
xIcon:setFilter( "nearest", "nearest" )
local cancelButton = button.new{
group = t,
name = " cancel",
align = "left",
visible = false,
icon = xIcon,
callback = function() return t:stop() end,
y = 68,
w = 400 - button.x,
h = 64,
}
function t.start()
modal.start( t )
saveLocation = saveLocation or map.path
button.selected = saveButton
saveButton.name = " save to "..saveLocation
button.displayGroup( t, false, true )
end
function t.draw()
love.graphics.clear( 0,0,0,1 )
love.graphics.setColor( 1, 1, 1, 0.9 )
button:draw()
end
function t.directorydropped( path )
saveLocation = path
map.path = path
saveButton.name = " save to "..map.path
return love.filesystem.mount( path, "" )
end
return modal.new( t )