mirror of
https://gitea.com/SweetSea-ButImNotSweet/tromi_mobile.git
synced 2025-01-08 17:33:09 +08:00
94 lines
3.0 KiB
Lua
94 lines
3.0 KiB
Lua
local ResetAllScene = SCENE:extend()
|
|
ResetAllScene.title = "Erase all high scores"
|
|
|
|
local selection_title = {"No", "Yes"}
|
|
local selection_icon = {
|
|
CHAR.icon.crossMark,
|
|
CHAR.icon.checkMark,
|
|
}
|
|
local menu_tip = "ARE YOU SURE you want to RESET ALL?\n\nCAUTION: This will reset everything: accounts, replays, high scores and your settings!\n\nGame will restart after resetting."
|
|
|
|
local function recursivelyDelete(item)
|
|
if love.filesystem.getInfo(item,"directory") then
|
|
for _, child in ipairs(love.filesystem.getDirectoryItems(item)) do
|
|
recursivelyDelete(item..'/'..child)
|
|
love.filesystem.remove(item..'/'..child)
|
|
end
|
|
elseif love.filesystem.getInfo(item) then
|
|
love.filesystem.remove(item)
|
|
end
|
|
love.filesystem.remove(item)
|
|
end
|
|
|
|
local settings_func = {
|
|
function() return DataManagementScene() end,
|
|
function()
|
|
recursivelyDelete('')
|
|
love.window.showMessageBox("Done", "All your data erased\nQuitting game... Game will restart now!")
|
|
love.event.quit()
|
|
end,
|
|
}
|
|
|
|
function ResetAllScene:new()
|
|
self.settings_menu_state = 1
|
|
end
|
|
|
|
function ResetAllScene:changeOption(rel)
|
|
local len = #selection_title
|
|
self.settings_menu_state = (self.settings_menu_state + len + rel - 1) % len + 1
|
|
end
|
|
|
|
function ResetAllScene:render()
|
|
MainBackground()
|
|
|
|
love.graphics.setColor(0, 0, 0, 0.7)
|
|
love.graphics.rectangle("fill", 30, 60, 580, 85, 10, 10) -- Tromi
|
|
love.graphics.rectangle("fill", 30, 165, 580, 225, 10, 10) -- Menu
|
|
drawBigText(CHAR.icon.erase.." RESET ALL?", 40, 85, 400, "left")
|
|
|
|
-- Selecting
|
|
love.graphics.setColor(0.4, 1, 1, 0.5)
|
|
love.graphics.rectangle("fill", 330, 135 + 40 * self.settings_menu_state, 270, 40)
|
|
-- Text
|
|
for i = 1, #selection_title do
|
|
drawText (selection_title[i], 365, 145 + 40 * i, 230, "left")
|
|
drawBigText(selection_icon [i], 335, 135 + 40 * i, 50, "left")
|
|
end
|
|
|
|
drawText(menu_tip, 45, 175, 610 - 15 - 330, "left")
|
|
end
|
|
|
|
---@param e SCENE_onInput
|
|
function ResetAllScene:onInputPress(e)
|
|
if e.input == "menu_back" or e.scancode == "escape" then SCENE = TitleScene()
|
|
elseif e.input == "menu_decide" or e.key == "return" then
|
|
local s = settings_func[self.settings_menu_state]()
|
|
if s then SCENE = s end
|
|
elseif e.input == "down" or e.scancode == "down" then
|
|
self:changeOption(1)
|
|
elseif e.input == "up" or e.scancode == "up" then
|
|
self:changeOption(-1)
|
|
|
|
elseif e.type == "touch" or e.type == "mouse" then
|
|
local x, y = e.x, e.y
|
|
local testOption = function(sel)
|
|
if sel ~= self.settings_menu_state then
|
|
self.settings_menu_state = sel
|
|
else
|
|
self:onInputPress{input = "menu_decide"}
|
|
end
|
|
end
|
|
if (
|
|
x >= 330 and x <= 600 and
|
|
y >= 175 and y <= 375
|
|
) then
|
|
local sel = math.floor((y - 175) / 40) + 1
|
|
if sel <= #settings_func then
|
|
testOption(sel)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
return ResetAllScene
|