feat: add a panel for character data

This commit is contained in:
Kazhnuz 2020-08-02 10:33:31 +02:00
parent cf377f15b8
commit 64947f145e
4 changed files with 40 additions and 6 deletions

View file

@ -0,0 +1,15 @@
local Parent = require "scenes.debug.menu.infopanel.parent"
local CharacterPanel = Parent:extend()
function CharacterPanel:new(character)
CharacterPanel.super.new(self)
self.character = character
end
function CharacterPanel:drawContent(x, y)
local debugString = "# " .. self.character.name .. "(" .. "Lvl " .. self.character.level .. ")" .. "\n"
love.graphics.print(debugString, x, y)
end
return CharacterPanel

View file

@ -2,4 +2,5 @@ local folder = "scenes.debug.menu.infopanel."
return { return {
Gamedata = require(folder .. "gamedata"), Gamedata = require(folder .. "gamedata"),
Character = require(folder .. "character"),
} }

View file

@ -56,8 +56,8 @@ function DebugMenu:buildSaveMenu()
end end
function DebugMenu:addCharacterMenu(name, data) function DebugMenu:addCharacterMenu(name, data)
self:addSubMenu(name, "characters", data.fullname) self:addSubMenu(name, "characters", data.fullname, panels.Character, data)
menu.commons.SubMenuWidget(self, name, "characters", "Back") menu.SubMenuWidget(self, name, "characters", "Back", panels.Gamedata, nil)
end end
function DebugMenu:buildOtherMenu() function DebugMenu:buildOtherMenu()
@ -83,10 +83,14 @@ function DebugMenu:update(dt)
end end
end end
function DebugMenu:addSubMenu(submenu, parent, name) function DebugMenu:addSubMenu(submenu, parent, name, panel, panelArgument)
local parent = parent or "BaseMenu" local parent = parent or "BaseMenu"
menu.commons.DebugMenu(self, submenu) menu.commons.DebugMenu(self, submenu)
if (panel == nil) then
menu.commons.SubMenuWidget(self, parent, submenu, name .. " >") menu.commons.SubMenuWidget(self, parent, submenu, name .. " >")
else
menu.SubMenuWidget(self, parent, submenu, name .. " >", panel, panelArgument)
end
end end
function DebugMenu:draw() function DebugMenu:draw()

View file

@ -5,6 +5,7 @@ menu.ExitWidget = commons.DebugWidget:extend()
menu.ShowBackgroundWidget = commons.DebugWidget:extend() menu.ShowBackgroundWidget = commons.DebugWidget:extend()
menu.SaveWidget = commons.DebugWidget:extend() menu.SaveWidget = commons.DebugWidget:extend()
menu.LoadWidget = commons.DebugWidget:extend() menu.LoadWidget = commons.DebugWidget:extend()
menu.SubMenuWidget = commons.SubMenuWidget:extend()
-- ExitWidget -- ExitWidget
function menu.ExitWidget:new(scene, menuName) function menu.ExitWidget:new(scene, menuName)
@ -26,7 +27,7 @@ end
-- Save game -- Save game
function menu.SaveWidget:new(scene, menuName) function menu.SaveWidget:new(scene, menuName)
menu.ShowBackgroundWidget.super.new(self, scene, menuName, "Save game") menu.SaveWidget.super.new(self, scene, menuName, "Save game")
end end
function menu.SaveWidget:action() function menu.SaveWidget:action()
@ -35,7 +36,7 @@ end
-- Save game -- Save game
function menu.LoadWidget:new(scene, menuName, slot) function menu.LoadWidget:new(scene, menuName, slot)
menu.ShowBackgroundWidget.super.new(self, scene, menuName, "Load file " .. slot) menu.LoadWidget.super.new(self, scene, menuName, "Load file " .. slot)
self.slot = slot self.slot = slot
end end
@ -43,5 +44,18 @@ function menu.LoadWidget:action()
game:read(self.slot) game:read(self.slot)
end end
-- Submenu
function menu.SubMenuWidget:new(scene, menu_name, newmenu, name, panel, panelArgument)
menu.SubMenuWidget.super.new(self, scene, menu_name, newmenu, name)
self.panel = panel
self.panelArgument = panelArgument
end
function menu.SubMenuWidget:action()
self.scene.menusystem:switchMenu(self.newmenu)
self.scene.panel = self.panel(self.panelArgument)
end
return menu return menu