restructured folder
This commit is contained in:
146
code/menu.lua
Normal file
146
code/menu.lua
Normal file
@@ -0,0 +1,146 @@
|
||||
function MenuDraw(menu)
|
||||
local font = love.graphics.getFont()
|
||||
love.graphics.setFont(LocaleFont)
|
||||
-- Set scale to 1
|
||||
love.graphics.scale(0.5,0.5)
|
||||
|
||||
if menu == "pause" then
|
||||
MenuDrawPauseScreen()
|
||||
elseif menu == "dialog" then
|
||||
MenuDrawDialog()
|
||||
end
|
||||
|
||||
for _, element in pairs(UIElement) do
|
||||
element:Draw()
|
||||
end
|
||||
-- Reset scale
|
||||
love.graphics.scale(2,2)
|
||||
love.graphics.setFont(font)
|
||||
end
|
||||
|
||||
function MenuDrawPauseScreen()
|
||||
-- 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)
|
||||
end
|
||||
|
||||
function MenuDrawDialog()
|
||||
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)
|
||||
elseif element.type == "Dialog" then
|
||||
element:checkConfirm()
|
||||
end
|
||||
end
|
||||
if menu == 0 then
|
||||
elseif menu == "pause" then
|
||||
MenuStepPauseScreen()
|
||||
elseif menu == "dialog" then
|
||||
MenuStepDialog()
|
||||
end
|
||||
end
|
||||
|
||||
function MenuStepPauseScreen()
|
||||
if PauseResume:getVariable() == true then
|
||||
PauseResume = nil
|
||||
PauseOptions = nil
|
||||
PauseExit = nil
|
||||
MenuExit()
|
||||
elseif PauseExit:getVariable() == true then
|
||||
love.event.quit()
|
||||
end
|
||||
end
|
||||
|
||||
function MenuStepDialog()
|
||||
if DialogContainer.value >= DialogContainer.target_value then
|
||||
DialogContainer = nil
|
||||
MenuExit()
|
||||
end
|
||||
end
|
||||
|
||||
function MenuClear()
|
||||
for _, element in pairs(UIElement) do
|
||||
element = nil
|
||||
end
|
||||
UIElement = {}
|
||||
end
|
||||
|
||||
function MenuExit(to)
|
||||
MenuClear()
|
||||
local to = to or "no"
|
||||
menu_type = to
|
||||
end
|
||||
|
||||
function MenuInit(menu,parameter)
|
||||
-- main menu
|
||||
if menu == "pause" then
|
||||
MenuInitPauseScreen()
|
||||
elseif menu == "dialog" then
|
||||
if parameter == nil then
|
||||
parameter = DialogSequence.Example
|
||||
end
|
||||
MenuInitDialog(parameter)
|
||||
end
|
||||
end
|
||||
|
||||
function MenuInitDialog(parameter)
|
||||
DialogContainer = interfaceDialog:New()
|
||||
DialogContainer:loadSequence(parameter)
|
||||
end
|
||||
|
||||
function MenuInitPauseScreen()
|
||||
local buttonStandard = {width = 200, height = 30, separation = 10}
|
||||
-- elements
|
||||
PauseResume = interfaceButton:New(
|
||||
game.width/2,
|
||||
game.height/2-buttonStandard.height-buttonStandard.separation,
|
||||
buttonStandard.width,
|
||||
buttonStandard.height,
|
||||
{false,true},
|
||||
1,
|
||||
{
|
||||
text = Locale.ui.pause_screen_resume,
|
||||
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,
|
||||
{
|
||||
text = Locale.ui.pause_screen_options,
|
||||
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,
|
||||
{
|
||||
text = Locale.ui.pause_screen_exit,
|
||||
color = {0,0,0.5},
|
||||
color2 = {1,1,1}
|
||||
}
|
||||
)
|
||||
end
|
||||
Reference in New Issue
Block a user