88 lines
3.1 KiB
Lua
88 lines
3.1 KiB
Lua
-------------------------------------------------------------------------------
|
|
---Class to build pin tab dialog
|
|
---@class StatisticPanel
|
|
StatisticPanel = newclass(Form)
|
|
|
|
-------------------------------------------------------------------------------
|
|
---On initialization
|
|
function StatisticPanel:onInit()
|
|
self.panelCaption = ({"helmod_result-panel.tab-button-statistic"})
|
|
end
|
|
|
|
------------------------------------------------------------------------------
|
|
---Get Button Sprites
|
|
---@return string, string
|
|
function StatisticPanel:getButtonSprites()
|
|
return defines.sprites.column_chart.white,defines.sprites.column_chart.black
|
|
end
|
|
|
|
-------------------------------------------------------------------------------
|
|
---Is tool
|
|
---@return boolean
|
|
function StatisticPanel:isTool()
|
|
return true
|
|
end
|
|
|
|
-------------------------------------------------------------------------------
|
|
---On Style
|
|
---@param styles table
|
|
---@param width_main number
|
|
---@param height_main number
|
|
function StatisticPanel:onStyle(styles, width_main, height_main)
|
|
styles.flow_panel = {
|
|
minimal_width = 322,
|
|
maximal_height = height_main
|
|
}
|
|
end
|
|
|
|
-------------------------------------------------------------------------------
|
|
---On update
|
|
---@param event LuaEvent
|
|
function StatisticPanel:onUpdate(event)
|
|
self:updateInfo(event)
|
|
end
|
|
|
|
-------------------------------------------------------------------------------
|
|
---Update information
|
|
---@param event LuaEvent
|
|
function StatisticPanel:updateInfo(event)
|
|
local info_panel = self:getFramePanel("info_panel")
|
|
info_panel.style.vertically_stretchable = true
|
|
info_panel.clear()
|
|
|
|
local column = 20
|
|
|
|
local resultTable = GuiElement.add(info_panel, GuiTable("list-data"):column(column))
|
|
--self:addProductionBlockHeader(resultTable)
|
|
local elements = {}
|
|
|
|
table.insert(elements, {name = "locomotive", type = "entity", value = #Player.getForce().get_trains()})
|
|
|
|
local entities = {"logistic-robot", "construction-robot", "straight-rail", "curved-rail", "electric-furnace",
|
|
"assembling-machine-3", "chemical-plant", "oil-refinery", "beacon", "lab", "electric-mining-drill",
|
|
"express-transport-belt", "express-underground-belt", "express-splitter"
|
|
, "medium-electric-pole", "big-electric-pole"}
|
|
for _, element in pairs(entities) do
|
|
table.insert(elements, {name = element, type = "entity", value = Player.getForce().get_entity_count(element)})
|
|
end
|
|
|
|
for _, element in pairs(elements) do
|
|
self:addRow(resultTable, element)
|
|
end
|
|
end
|
|
|
|
-------------------------------------------------------------------------------
|
|
---Add row data tab
|
|
---@param guiTable LuaGuiElement
|
|
---@param element table
|
|
function StatisticPanel:addRow(guiTable, element)
|
|
GuiElement.add(guiTable, GuiLabel("value", element.name):caption(Format.formatNumberElement(element.value)):style("helmod_label_right_60"))
|
|
GuiElement.add(guiTable, GuiButtonSprite("element", element.name):sprite(element.type, element.name):tooltip(Player.getLocalisedName(element)))
|
|
end
|
|
|
|
-------------------------------------------------------------------------------
|
|
---On event
|
|
---@param event LuaEvent
|
|
function StatisticPanel:onEvent(event)
|
|
end
|