scene/mainmenu: port menu to new menusystem

This commit is contained in:
Kazhnuz 2019-02-28 18:12:16 +01:00
parent 44d5a8aa59
commit 98e5467e35
2 changed files with 50 additions and 94 deletions

View File

@ -1,70 +1,26 @@
local DebugMenu = Object:extend()
local ListBox = require "core.modules.menus.listbox"
local MenuObject = ListBox:extend()
local Widgets = require "scenes.debugmenu.widgets"
function DebugMenu:new()
self.menuID = 1
self.menuValue = 0
self.label = ""
menus:reset()
self.menu = TextMenu(0, 88, "medium", 6)
self.menu:centerText(480)
self.menu.focus = true
menus:addMenu(self.menu)
self:selectMenu(self.menuID)
self.description = "Hello World, i'm a test message for the description system :D"
self.previousCursor = 1
function MenuObject:new(scene, name)
local height, width, x, y
height = 240 - 88 - 16
width = 240
x = 88
y = 240/2 - height/2
DebugMenu.super.new(self, scene.menusystem, name, x, y, width, height, 3)
self.scene = scene
self.isActive = false
self.isVisible = false
local font = self.controller.assets.fonts["medium"]
end
function DebugMenu:refreshMenu()
self:selectMenu(self.menuID, self.menuValue)
function MenuObject:draw()
PauseMenu.super.draw(self)
end
function DebugMenu:selectMenu(id, menuValue)
self.menuID = id
self.menuValue = menuValue or 1
self.menu:empty()
if (id == 1) then
self.label = "Imperium Porcorum"
--self.menu:addWidget(Widgets.Menu(self,"Story Mode", 1))
self.menu:addWidget(Widgets.Menu(self,"Level Select",2))
self.menu:addWidget(Widgets.Menu(self,"Debug Mode",3))
self.menu:addWidget(Widgets.Menu(self,"Options",6))
self.menu:addWidget(Widgets.Menu(self,"Bonus",1))
self.menu:addWidget(Widgets.Exit(self))
elseif (id == 2) then
self.label = "Select a Level"
for i,v in ipairs(datas.levels) do
self.menu:addWidget(Widgets.Menu(self,v.realm .. " - " .. v.name, 4, i))
end
self.menu:addWidget(Widgets.Menu(self,"Back",1))
self.menu:setLastWidgetCancel()
elseif (id == 3) then
self.label = "Manage your save data"
self.menu:addWidget(Widgets.Menu(self,"Manage Pigs",5))
self.menu:addWidget(Widgets.Menu(self,"Manage Inventory",1))
self.menu:addWidget(Widgets.Menu(self,"Back",1))
self.menu:setLastWidgetCancel()
elseif (id == 4) then
self.label = "Select your Mission"
for i,v in ipairs(datas.levels[self.menuValue].missions) do
self.menu:addWidget(Widgets.Mission(self,v.missionName, self.menuValue, i))
end
self.menu:addWidget(Widgets.Menu(self,"Back",2))
self.menu:setLastWidgetCancel()
elseif (id == 5) then
self.label = "Select a pig to edit"
self.menu:addWidget(Widgets.AddPig(self))
for i,v in ipairs(save.data.pigs) do
self.menu:addWidget(Widgets.Menu(self,i .. "- " .. v.name .. " the " .. v.race, 1, i))
end
self.menu:addWidget(Widgets.Menu(self,"Back",3))
self.menu:setLastWidgetCancel()
elseif (id == 6) then
self.menu:addWidget(Widgets.Save(self))
self.menu:addWidget(Widgets.Load(self))
self.menu:addWidget(Widgets.Menu(self,"Back",1))
self.menu:setLastWidgetCancel()
end
end
return DebugMenu
return MenuObject

View File

@ -1,38 +1,42 @@
local Widgets = {}
Widgets.Menu = Widget:extend()
Widgets.Exit = Widget:extend()
Widgets.Mission = Widget:extend()
Widgets.AddPig = Widget:extend()
Widgets.Save = Widget:extend()
Widgets.Load = Widget:extend()
local WidgetBase = require "core.modules.menusystem.widgets"
local MainMenuWidget = WidgetBase.Text:extend()
function Widgets.Menu:new(menusystem, label, menuID, menuValue)
Widgets.Menu.super.new(self)
function MainMenuWidget:new(menu, name)
self.scene = menu.scene
font = self.scene.assets.fonts["medium"]
MainMenuWidget.super.new(self, menu, font, name)
end
local Widgets = {}
Widgets.Menu = MainMenuWidget:extend()
Widgets.Exit = MainMenuWidget:extend()
Widgets.Mission = MainMenuWidget:extend()
Widgets.AddPig = MainMenuWidget:extend()
Widgets.Save = MainMenuWidget:extend()
Widgets.Load = MainMenuWidget:extend()
function Widgets.Menu:new(menu, name, menuID)
self.menuID = menuID
self.menuValue = menuValue or 1
self.label = label
self.menusystem = menusystem
Widgets.Menu.super.new(self, menu, name)
end
function Widgets.Menu:action()
self.menusystem:selectMenu(self.menuID, self.menuValue)
self.menusystem:selectMenu(self.menuID)
end
----
function Widgets.Exit:new(menussytem)
Widgets.Exit.super.new(self)
self.label = "Exit"
self.menusystem = menusystem
function Widgets.Exit:new(menu)
Widgets.Exit.super.new(self, menu, "Exit")
end
function Widgets.Exit:action()
love.event.quit()
end
function Widgets.Mission:new(menussytem, name, levelID, missionID)
Widgets.Mission.super.new(self)
self.label = name
function Widgets.Mission:new(menu, name, levelID, missionID)
Widgets.Mission.super.new(self, menu, name)
self.menusystem = menusystem
self.levelID = levelID
self.missionID = missionID
@ -42,10 +46,9 @@ function Widgets.Mission:action()
Gamestate.switch(stateLevel, self.levelID, self.missionID)
end
function Widgets.AddPig:new(menusystem)
Widgets.AddPig.super.new(self)
function Widgets.AddPig:new(menu)
Widgets.AddPig.super.new(self, "Add Pig")
self.label = "Add Pig"
self.menusystem = menusystem
end
function Widgets.AddPig:action()
@ -53,19 +56,16 @@ function Widgets.AddPig:action()
self.menusystem:refreshMenu()
end
function Widgets.Load:new(menusystem)
Widgets.Load.super.new(self)
self.label = "Load Game"
self.menusystem = menusystem
function Widgets.Load:new(menu)
Widgets.Load.super.new(self, menu, "Load Game")
end
function Widgets.Load:action()
save:reload()
end
function Widgets.Save:new(menusystem)
Widgets.Save.super.new(self)
self.label = "Save Game"
function Widgets.Save:new(menu)
Widgets.Save.super.new(self, menu, "Save Game")
self.menusystem = menusystem
end