2022-01-21 14:56:25 +00:00
|
|
|
function MenuDraw(menu)
|
|
|
|
-- Set scale to 1
|
|
|
|
love.graphics.scale(0.5,0.5)
|
|
|
|
if menu == "pauseMenu" then
|
|
|
|
-- Parameters
|
|
|
|
local pauseWidth = 640
|
|
|
|
local pauseHeight = 480
|
|
|
|
local pauseX = (game.width/2)-(pauseWidth/2)
|
|
|
|
local pauseY = (game.height/2)-(pauseHeight/2)
|
|
|
|
local mouse_x, mouse_y = love.mouse.getPosition()
|
|
|
|
-- Base items
|
|
|
|
love.graphics.setColor(0,0,0,0.3)
|
|
|
|
love.graphics.rectangle("fill", 0, 0, game.width, game.height)
|
|
|
|
love.graphics.setColor(1,1,1,1)
|
|
|
|
love.graphics.rectangle("fill", pauseX, pauseY, pauseWidth, pauseHeight)
|
|
|
|
-- Reset scale
|
|
|
|
end
|
|
|
|
for _, element in pairs(UIElement) do
|
|
|
|
element:Draw()
|
|
|
|
end
|
|
|
|
love.graphics.scale(2,2)
|
|
|
|
end
|
|
|
|
|
|
|
|
function MenuStep(menu)
|
|
|
|
-- first get mouse
|
|
|
|
local mouse_x, mouse_y = love.mouse.getPosition()
|
|
|
|
for _, element in pairs(UIElement) do
|
|
|
|
if element.type == "Button" then
|
|
|
|
element:checkMouse(mouse_x, mouse_y)
|
2022-02-01 14:05:36 +00:00
|
|
|
elseif element.type == "Dialog" then
|
|
|
|
element:checkConfirm()
|
2022-01-21 14:56:25 +00:00
|
|
|
end
|
|
|
|
end
|
2022-02-01 14:05:36 +00:00
|
|
|
if menu == 0 then
|
|
|
|
elseif menu == "pauseMenu" then
|
2022-01-21 14:56:25 +00:00
|
|
|
if PauseResume:getVariable() == true then
|
|
|
|
MenuExit(menu,0)
|
|
|
|
do_pause = false
|
|
|
|
elseif PauseExit:getVariable() == true then
|
|
|
|
love.event.quit()
|
|
|
|
end
|
|
|
|
else
|
2022-02-01 14:05:36 +00:00
|
|
|
for name, dialogbox in pairs(dialogboxes) do
|
|
|
|
if name == menu then
|
|
|
|
if dialogbox.object:getVariable() then
|
|
|
|
MenuExit(dialogbox.exit[1],dialogbox.exit[2])
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
2022-01-21 14:56:25 +00:00
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
function MenuExit(from,to)
|
|
|
|
for _, element in pairs(UIElement) do
|
|
|
|
element = nil
|
|
|
|
end
|
|
|
|
UIElement = {}
|
|
|
|
if from == "pauseMenu" then
|
|
|
|
PauseResume = nil
|
|
|
|
PauseOptions = nil
|
|
|
|
PauseExit = nil
|
2022-02-01 14:05:36 +00:00
|
|
|
else
|
|
|
|
for name, dialogbox in pairs(dialogboxes) do
|
|
|
|
if name == menu then dialogbox.object = nil end
|
|
|
|
end
|
2022-01-21 14:56:25 +00:00
|
|
|
end
|
|
|
|
menuPage = to or nil
|
|
|
|
end
|
|
|
|
|
|
|
|
function MenuInit(menu)
|
|
|
|
local buttonStandard = {width = 200, height = 30, separation = 10}
|
|
|
|
-- main menu
|
|
|
|
if menu == "pauseMenu" then
|
|
|
|
-- elements
|
|
|
|
PauseResume = interfaceButton:New(
|
|
|
|
game.width/2,
|
|
|
|
game.height/2-buttonStandard.height-buttonStandard.separation,
|
|
|
|
buttonStandard.width,
|
|
|
|
buttonStandard.height,
|
|
|
|
{false,true},
|
|
|
|
1,
|
|
|
|
{
|
2022-01-31 10:03:58 +00:00
|
|
|
text = Locale.ui.pause_screen_resume,
|
2022-01-21 14:56:25 +00:00
|
|
|
color = {0,0,0.5},
|
|
|
|
color2 = {1,1,1}
|
|
|
|
}
|
|
|
|
)
|
|
|
|
PauseOptions = interfaceButton:New(
|
|
|
|
game.width/2,
|
|
|
|
game.height/2,
|
|
|
|
buttonStandard.width,
|
|
|
|
buttonStandard.height,
|
|
|
|
{false,true},
|
|
|
|
1,
|
|
|
|
{
|
2022-01-31 10:03:58 +00:00
|
|
|
text = Locale.ui.pause_screen_options,
|
2022-01-21 14:56:25 +00:00
|
|
|
color = {0,0,0.5},
|
|
|
|
color2 = {1,1,1}
|
|
|
|
}
|
|
|
|
)
|
|
|
|
PauseExit = interfaceButton:New(
|
|
|
|
game.width/2,
|
|
|
|
game.height/2+buttonStandard.height+buttonStandard.separation,
|
|
|
|
buttonStandard.width,
|
|
|
|
buttonStandard.height,
|
|
|
|
{false,true},
|
|
|
|
1,
|
|
|
|
{
|
2022-01-31 10:03:58 +00:00
|
|
|
text = Locale.ui.pause_screen_exit,
|
2022-01-21 14:56:25 +00:00
|
|
|
color = {0,0,0.5},
|
|
|
|
color2 = {1,1,1}
|
|
|
|
}
|
|
|
|
)
|
2022-02-01 14:05:36 +00:00
|
|
|
else
|
|
|
|
for name, dialogbox in pairs(dialogboxes) do
|
|
|
|
if name == menu then dialogbox.object = interfaceDialog:New(dialogbox.style) end
|
|
|
|
end
|
2022-01-21 14:56:25 +00:00
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2022-01-31 10:03:58 +00:00
|
|
|
UIElement = {}
|
2022-01-21 14:56:25 +00:00
|
|
|
require "data/scripts/ui/button"
|
2022-02-01 14:05:36 +00:00
|
|
|
require "data/scripts/ui/dialog"
|
|
|
|
require "data/scripts/ui/dialogboxes"
|