2022-04-03 19:51:56 +02:00
|
|
|
require("common.class")
|
2022-04-05 17:31:02 +02:00
|
|
|
local ServiceField = require("titlescreen.fields.service.servicefield")
|
2022-04-03 19:51:56 +02:00
|
|
|
|
2022-04-05 23:53:19 +02:00
|
|
|
---@class LinkField: ServiceField
|
|
|
|
local LinkField = {
|
|
|
|
__tostring = function () return "LinkField" end,
|
|
|
|
}
|
2022-04-03 19:51:56 +02:00
|
|
|
|
|
|
|
---Create a new Field instance
|
|
|
|
---@param o ServiceField
|
|
|
|
---@return LinkServiceField
|
2022-04-05 23:53:19 +02:00
|
|
|
function LinkField:new(o)
|
2022-04-03 19:51:56 +02:00
|
|
|
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-03 19:51:56 +02:00
|
|
|
|
2022-04-05 23:53:19 +02:00
|
|
|
function LinkField:handleButtonInput(button)
|
2022-04-03 19:51:56 +02:00
|
|
|
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
|
2022-04-03 19:51:56 +02:00
|
|
|
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)
|
2022-04-03 19:51:56 +02:00
|
|
|
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)
|
2022-04-03 19:51:56 +02:00
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
return false
|
|
|
|
end
|
|
|
|
|
2022-04-05 23:53:19 +02:00
|
|
|
return LinkField
|