ExperimentalGear/scripts/titlescreen/pages/service/inputcheckpage.lua

60 lines
2.1 KiB
Lua

require("common.class")
local ServicePage = require("titlescreen.pages.service.servicepage")
local InputButtonField = require("titlescreen.components.inputbuttonfield")
local InputKnobField = require("titlescreen.components.inputknobfield")
local ListField = require("titlescreen.components.listfield")
---@class InputCheckPage: ServicePage
local InputCheckPage = {
__name = "InputCheckPage",
}
---Create a new InputCheckPage instance
---@param params? InputCheckPage # initial parameters
---@return InputCheckPage
function InputCheckPage.new(params)
params = params or {}
params.title = params.title or "INPUT CHECK"
params.footer = params.footer or "BACK BUTTON = EXIT"
local self = CreateInstance(InputCheckPage, params, ServicePage)
local list = ListField.new()
list:addField(InputButtonField.new{label="START BUTTON", button=game.BUTTON_STA})
list:addField(InputButtonField.new{label="A BUTTON", button=game.BUTTON_BTA})
list:addField(InputButtonField.new{label="B BUTTON", button=game.BUTTON_BTB})
list:addField(InputButtonField.new{label="C BUTTON", button=game.BUTTON_BTC})
list:addField(InputButtonField.new{label="D BUTTON", button=game.BUTTON_BTD})
list:addField(InputButtonField.new{label="FX L BUTTON", button=game.BUTTON_FXL})
list:addField(InputButtonField.new{label="FX R BUTTON", button=game.BUTTON_FXR})
list:addField(InputKnobField.new{label="ANALOG VOLUME L", knob=0})
list:addField(InputKnobField.new{label="ANALOG VOLUME R", knob=1})
list:refreshFields()
self:addField(list)
self:refreshFields()
return self
end
---@param button integer # options are under the `game` table prefixed with `BUTTON`
function InputCheckPage:handleButtonInput(button)
local field = self.content[self.selectedIndex]
if field and field.handleButtonInput then
if field:handleButtonInput(button) then
return
end
end
-- default behaviour
if button == game.BUTTON_BCK then
if self.viewHandler then
self.viewHandler:back()
end
return
end
end
return InputCheckPage