diff --git a/sonic-radiance.love/scenes/debug/menu/infopanel/gamedata.lua b/sonic-radiance.love/scenes/debug/menu/infopanel/gamedata.lua new file mode 100644 index 0000000..13f440b --- /dev/null +++ b/sonic-radiance.love/scenes/debug/menu/infopanel/gamedata.lua @@ -0,0 +1,16 @@ +local Parent = require "scenes.debug.menu.infopanel.parent" +local GamePanel = Parent:extend() + +function GamePanel:new() + GamePanel.super.new(self) +end + +function GamePanel:drawContent(x, y) + local debugString = "# Save system data" .. "\n" + debugString = debugString .. "Current slot: " .. game.slot .. " / 3" .. "\n" + debugString = debugString .. "Gametime: " .. game:getTimeString() .. "\n" + + love.graphics.print(debugString, x, y) +end + +return GamePanel diff --git a/sonic-radiance.love/scenes/debug/menu/infopanel/init.lua b/sonic-radiance.love/scenes/debug/menu/infopanel/init.lua new file mode 100644 index 0000000..3550ce8 --- /dev/null +++ b/sonic-radiance.love/scenes/debug/menu/infopanel/init.lua @@ -0,0 +1,5 @@ +local folder = "scenes.debug.menu.infopanel." + +return { + Gamedata = require(folder .. "gamedata"), +} diff --git a/sonic-radiance.love/scenes/debug/menu/infopanel/parent.lua b/sonic-radiance.love/scenes/debug/menu/infopanel/parent.lua new file mode 100644 index 0000000..5fb56a4 --- /dev/null +++ b/sonic-radiance.love/scenes/debug/menu/infopanel/parent.lua @@ -0,0 +1,17 @@ +local ParentPanel = Object:extend() +local gui = require "game.modules.gui" + +function ParentPanel:new() + self.panelBackground = gui.newTextBox("assets/gui/dialogbox.png", 128+32, 128) +end + +function ParentPanel:draw(x, y, w, h) + love.graphics.draw(self.panelBackground, x, y) + self:drawContent(x+8, y+8) +end + +function ParentPanel:drawContent(x, y) + +end + +return ParentPanel diff --git a/sonic-radiance.love/scenes/debug/menu/init.lua b/sonic-radiance.love/scenes/debug/menu/init.lua index e7790e1..d48bf94 100644 --- a/sonic-radiance.love/scenes/debug/menu/init.lua +++ b/sonic-radiance.love/scenes/debug/menu/init.lua @@ -2,6 +2,7 @@ local Scene = require "core.modules.scenes" local menu = require "scenes.debug.menu.menu" local DebugMenu = Scene:extend() +local panels = require "scenes.debug.menu.infopanel" function DebugMenu:new() DebugMenu.super.new(self) @@ -17,6 +18,8 @@ function DebugMenu:new() self.menusystem:activate() self.menusystem:switchMenu("BaseMenu") + + self.panel = panels.Gamedata() end function DebugMenu:buildOverworldMenu() @@ -35,7 +38,18 @@ end function DebugMenu:buildSaveMenu() self:addSubMenu("save", "BaseMenu", "Save System") + self:addSubMenu("characters", "save", "Characters") + for name, data in pairs(game.characters.list) do + self:addCharacterMenu(name, data) + end + menu.commons.SubMenuWidget(self, "save", "BaseMenu", "Back") + menu.commons.SubMenuWidget(self, "characters", "save", "Back") +end + +function DebugMenu:addCharacterMenu(name, data) + self:addSubMenu(name, "characters", data.fullname) + menu.commons.SubMenuWidget(self, name, "characters", "Back") end function DebugMenu:buildOtherMenu() @@ -63,6 +77,8 @@ function DebugMenu:draw() if (self.menusystem.isActive) then self.assets.fonts["small"]:print("## SONIC RADIANCE - DEBUG MENU ##", 424/2, 8, "center") self.assets.fonts["small"]:print("v" .. game.version, 424 - 8, 240 - 22, "right") + + self.panel:draw(240, 48) end end