ExperimentalGear/scripts/titlescreen/fields/service/linkfield.lua

43 lines
1.1 KiB
Lua

require("common.class")
local ServiceField = require("titlescreen.fields.service.servicefield")
---@class LinkField: ServiceField
local LinkField = {
__tostring = function () return "LinkField" end,
}
---Create a new Field instance
---@param o ServiceField
---@return LinkServiceField
function LinkField:new(o)
o = Inherit(self, ServiceField, o)
o.value = o.value or nil
return o
end
function LinkField:drawValue(deltaTime) end
function LinkField:handleButtonInput(button)
if not self.value then
game.Log(self .. " (" .. self.label .. ") does not have a valid link", game.LOGGER_ERROR)
return false
end
if button == game.BUTTON_STA then
if self.parent and self.parent.viewHandler then
game.Log(self .. " (" .. self.label .. ") navigate(" .. self.value .. ") called", game.LOGGER_INFO)
self.parent.viewHandler:navigate(self.value)
else
game.Log(self .. "can't access " ..
(self.parent and self.parent.viewHandler or "PageView") ..
" instance to navigate", game.LOGGER_ERROR)
end
end
return false
end
return LinkField