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

43 lines
1.1 KiB
Lua
Raw Normal View History

require("common.class")
2022-04-05 17:31:02 +02:00
local ServiceField = require("titlescreen.fields.service.servicefield")
2022-04-05 23:53:19 +02:00
---@class LinkField: ServiceField
local LinkField = {
__tostring = function () return "LinkField" end,
}
---Create a new Field instance
---@param o ServiceField
---@return LinkServiceField
2022-04-05 23:53:19 +02:00
function LinkField:new(o)
o = Inherit(self, ServiceField, o)
o.value = o.value or nil
return o
end
2022-04-05 23:53:19 +02:00
function LinkField:drawValue(deltaTime) end
2022-04-05 23:53:19 +02:00
function LinkField:handleButtonInput(button)
if not self.value then
2022-04-05 23:53:19 +02:00
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
2022-04-05 23:53:19 +02:00
game.Log(self .. " (" .. self.label .. ") navigate(" .. self.value .. ") called", game.LOGGER_INFO)
self.parent.viewHandler:navigate(self.value)
else
2022-04-05 23:53:19 +02:00
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
2022-04-05 23:53:19 +02:00
return LinkField