local ListMenu = require "birb.modules.menusystem.listbox" local Widget = require "birb.modules.menusystem.widgets" local PauseMenu = ListMenu:extend() local ResumeWidget = Widget.Text:extend() local RestartWidget = Widget.Text:extend() local ExitWidget = Widget.Text:extend() function PauseMenu:new(scene) self.scene = scene local screenHeight, screenWidth = core.screen:getDimensions() local w, h = 424/4, 240 - 48*4 local x, y = 3*w/2, 24*4 PauseMenu.super.new(self, scene.menusystem, "PauseMenu", x, y, w, h, 3) ResumeWidget(self) RestartWidget(self) ExitWidget(self) end -- WIDGETS -- All widgets used by the pause menu function ResumeWidget:new(menu) self.scene = menu.scene local font = self.scene.assets.fonts["medium"] local label = "resume" ResumeWidget.super.new(self, menu, font, label) end function ResumeWidget:action() self.scene.assets:playSFX(self.sfx) self.scene.menusystem:deactivate() end function RestartWidget:new(menu) self.scene = menu.scene local font = self.scene.assets.fonts["medium"] local label = "restart" RestartWidget.super.new(self, menu, font, label) end function RestartWidget:action() self.scene.assets:playSFX(self.sfx) self.scene:restart() end function ExitWidget:new(menu) self.scene = menu.scene local font = self.scene.assets.fonts["medium"] local label = "exit" ExitWidget.super.new(self, menu, font, label) end function ExitWidget:action() self.scene.assets:playSFX(self.sfx) core.scenemanager:setStoredScene("mainmenu") end return PauseMenu