81 lines
1.8 KiB
Lua
81 lines
1.8 KiB
Lua
local TitleScene = Scene:extend()
|
|
|
|
TitleScene.title = "Title"
|
|
TitleScene.restart_message = false
|
|
|
|
local main_menu_screens = {
|
|
ModeSelectScene,
|
|
SettingsScene,
|
|
CreditsScene,
|
|
ExitScene,
|
|
}
|
|
|
|
local mainmenuidle = {
|
|
"Idle",
|
|
"On title screen",
|
|
"On main menu screen",
|
|
"Twiddling their thumbs",
|
|
"Admiring the main menu's BG",
|
|
"Waiting for spring to come",
|
|
"Actually not playing",
|
|
"Contemplating collecting stars",
|
|
"Preparing to put the block!!",
|
|
"Having a nap",
|
|
"In menus",
|
|
"Bottom text",
|
|
}
|
|
|
|
function TitleScene:new()
|
|
self.main_menu_state = 1
|
|
DiscordRPC:update({
|
|
details = "In menus",
|
|
state = mainmenuidle[math.random(#mainmenuidle)],
|
|
})
|
|
end
|
|
|
|
function TitleScene:update()
|
|
end
|
|
|
|
function TitleScene:render()
|
|
love.graphics.setFont(font_3x5_2)
|
|
|
|
love.graphics.draw(
|
|
backgrounds["title"],
|
|
0, 0, 0,
|
|
0.5, 0.5
|
|
)
|
|
|
|
love.graphics.print(self.restart_message and "Restart Cambridge..." or "", 0, 0)
|
|
|
|
love.graphics.setColor(1, 1, 1, 0.5)
|
|
love.graphics.rectangle("fill", 20, 278 + 20 * self.main_menu_state, 160, 22)
|
|
|
|
love.graphics.setColor(1, 1, 1, 1)
|
|
for i, screen in pairs(main_menu_screens) do
|
|
love.graphics.printf(screen.title, 40, 280 + 20 * i, 120, "left")
|
|
end
|
|
|
|
end
|
|
|
|
function TitleScene:changeOption(rel)
|
|
local len = table.getn(main_menu_screens)
|
|
self.main_menu_state = (self.main_menu_state + len + rel - 1) % len + 1
|
|
end
|
|
|
|
function TitleScene:onInputPress(e)
|
|
if e.input == "menu_decide" or e.scancode == "return" then
|
|
playSE("main_decide")
|
|
scene = main_menu_screens[self.main_menu_state]()
|
|
elseif e.input == "up" or e.scancode == "up" then
|
|
self:changeOption(-1)
|
|
playSE("cursor")
|
|
elseif e.input == "down" or e.scancode == "down" then
|
|
self:changeOption(1)
|
|
playSE("cursor")
|
|
elseif e.input == "menu_back" or e.scancode == "backspace" or e.scancode == "delete" then
|
|
love.event.quit()
|
|
end
|
|
end
|
|
|
|
return TitleScene
|