47 lines
1.7 KiB
Lua
47 lines
1.7 KiB
Lua
require "selector.AbstractSelector"
|
|
-------------------------------------------------------------------------------
|
|
---Class to build technology selector
|
|
---@class TechnologySelector
|
|
TechnologySelector = newclass(AbstractSelector)
|
|
|
|
-------------------------------------------------------------------------------
|
|
---After initialization
|
|
function TechnologySelector:afterInit()
|
|
self.disable_option = true
|
|
self.sprite_type = nil
|
|
end
|
|
|
|
-------------------------------------------------------------------------------
|
|
---Return caption
|
|
---@return table
|
|
function TechnologySelector:getCaption()
|
|
return {"helmod_selector-panel.technology-title"}
|
|
end
|
|
|
|
-------------------------------------------------------------------------------
|
|
---Get prototype
|
|
---@param element table
|
|
---@param type string
|
|
---@return table
|
|
function TechnologySelector:getPrototype(element, type)
|
|
return Technology(element, type)
|
|
end
|
|
|
|
-------------------------------------------------------------------------------
|
|
---Update groups
|
|
---@param list_products table
|
|
---@param list_ingredients table
|
|
---@param list_translate table
|
|
function TechnologySelector:updateGroups(list_products, list_ingredients, list_translate)
|
|
for key, technology in pairs(Player.getTechnologies()) do
|
|
self:appendGroups(technology, "technology", list_products, list_ingredients, list_translate)
|
|
end
|
|
end
|
|
|
|
-------------------------------------------------------------------------------
|
|
---Build prototype icon
|
|
function TechnologySelector:buildPrototypeIcon(guiElement, prototype, tooltip)
|
|
local button = GuiElement.add(guiElement, GuiButtonSelectSprite(self.classname, "element-select", "technology"):choose(prototype.type, prototype.name))
|
|
button.locked = true
|
|
end
|