899 lines
		
	
	
		
			40 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			899 lines
		
	
	
		
			40 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
| -------------------------------------------------------------------------------
 | |
| ---Class to help to build GuiSlider
 | |
| ---@class GuiCell
 | |
| GuiCell = newclass(GuiElement,function(base,...)
 | |
|   GuiElement.init(base,...)
 | |
|   base.classname = "HMGuiCell"
 | |
| end)
 | |
| 
 | |
| -------------------------------------------------------------------------------
 | |
| ---Set element
 | |
| ---@param element table
 | |
| ---@return GuiCell
 | |
| function GuiCell:element(element)
 | |
|   self.element = element
 | |
|   return self
 | |
| end
 | |
| 
 | |
| -------------------------------------------------------------------------------
 | |
| ---Set index
 | |
| ---@param index number
 | |
| ---@return GuiCell
 | |
| function GuiCell:index(index)
 | |
|   self.m_index = index
 | |
|   return self
 | |
| end
 | |
| 
 | |
| -------------------------------------------------------------------------------
 | |
| ---Set color
 | |
| ---@param color string
 | |
| ---@return GuiCell
 | |
| function GuiCell:color(color)
 | |
|   self.m_color = color
 | |
|   return self
 | |
| end
 | |
| 
 | |
| -------------------------------------------------------------------------------
 | |
| ---Set broken
 | |
| ---@param broken boolean
 | |
| ---@return GuiCell
 | |
| function GuiCell:broken(broken)
 | |
|   self.m_broken = broken
 | |
|   return self
 | |
| end
 | |
| 
 | |
| -------------------------------------------------------------------------------
 | |
| ---Set width production information
 | |
| ---@return GuiCell
 | |
| function GuiCell:withProductInfo()
 | |
|   self.m_with_product_info = true
 | |
|   return self
 | |
| end
 | |
| 
 | |
| -------------------------------------------------------------------------------
 | |
| ---Set width logistic information
 | |
| ---@return GuiCell
 | |
| function GuiCell:withLogistic()
 | |
|   self.m_with_logistic = true
 | |
|   return self
 | |
| end
 | |
| 
 | |
| -------------------------------------------------------------------------------
 | |
| ---Set icon information
 | |
| ---@param type string
 | |
| ---@return GuiCell
 | |
| function GuiCell:infoIcon(type)
 | |
|   self.m_info_icon = type
 | |
|   return self
 | |
| end
 | |
| 
 | |
| -------------------------------------------------------------------------------
 | |
| ---Set contraint information
 | |
| ---@param type string
 | |
| ---@return GuiCell
 | |
| function GuiCell:contraintIcon(type)
 | |
|   self.m_contraint_icon = type
 | |
|   return self
 | |
| end
 | |
| 
 | |
| -------------------------------------------------------------------------------
 | |
| ---Set control information
 | |
| ---@param control_info string
 | |
| ---@return GuiCell
 | |
| function GuiCell:controlInfo(control_info)
 | |
|   self.m_with_control_info = control_info
 | |
|   return self
 | |
| end
 | |
| 
 | |
| -------------------------------------------------------------------------------
 | |
| ---Get option when error
 | |
| ---@return table
 | |
| function GuiCell:onErrorOptions()
 | |
|   local options = self:getOptions()
 | |
|   options.type = "button"
 | |
|   options.style = nil
 | |
|   return options
 | |
| end
 | |
| 
 | |
| -------------------------------------------------------------------------------
 | |
| ---Set by_limit information
 | |
| ---@param by_limit boolean
 | |
| ---@return GuiCell
 | |
| function GuiCell:byLimit(by_limit)
 | |
|   self.m_by_limit = by_limit
 | |
|   return self
 | |
| end
 | |
| 
 | |
| -------------------------------------------------------------------------------
 | |
| ---Set by_limit information
 | |
| ---@return GuiCell
 | |
| function GuiCell:byLimitUri(...)
 | |
|   self.m_by_limit_uri = table.concat({...},"=")
 | |
|   return self
 | |
| end
 | |
| 
 | |
| -------------------------------------------------------------------------------
 | |
| ---Set overlay
 | |
| ---@param type string
 | |
| ---@param name string
 | |
| ---@return GuiCell
 | |
| function GuiCell:overlay(type, name)
 | |
|   self.m_overlay_type = type
 | |
|   self.m_overlay_name = name
 | |
|   return self
 | |
| end
 | |
| 
 | |
| -------------------------------------------------------------------------------
 | |
| ---Add overlay
 | |
| ---@param button LuaGuiElement
 | |
| function GuiCell:add_overlay(button)
 | |
|   if self.m_overlay_type ~= nil then
 | |
|     local sprite = GuiElement.getSprite(self.m_overlay_type, self.m_overlay_name)
 | |
|     GuiElement.add(button, GuiSprite("overlay"):sprite(sprite))
 | |
|   end
 | |
| end
 | |
| 
 | |
| -------------------------------------------------------------------------------
 | |
| ---Set mask
 | |
| ---@param mask boolean
 | |
| ---@return table
 | |
| function GuiCell:mask(mask)
 | |
|   self.m_mask = mask
 | |
|   return self
 | |
| end
 | |
| 
 | |
| -------------------------------------------------------------------------------
 | |
| ---Add mask
 | |
| ---@param button LuaGuiElement
 | |
| ---@param color string
 | |
| ---@param size number
 | |
| function GuiCell:add_mask(button, color, size)
 | |
|   if self.m_mask == true then
 | |
|     local mask_frame = GuiElement.add(button, GuiFrameH("layer-mask"):style("helmod_frame_colored", color, 5))
 | |
|     mask_frame.style.width = size or 32
 | |
|     mask_frame.style.height = size or 32
 | |
|     mask_frame.ignored_by_interaction = true
 | |
|   end
 | |
| end
 | |
| 
 | |
| -------------------------------------------------------------------------------
 | |
| ---Add icon information
 | |
| ---@param button LuaGuiElement
 | |
| ---@param info_icon string
 | |
| function GuiCell:add_infoIcon(button, info_icon)
 | |
|   local type = info_icon or self.m_info_icon
 | |
|   if type == nil then return end
 | |
|   local sprite_name = nil
 | |
|   local tooltip = nil
 | |
|   if type == "recipe-burnt" then 
 | |
|     tooltip = "tooltip.burnt-recipe"
 | |
|     sprite_name = GuiElement.getSprite(defines.sprite_info.burnt)
 | |
|   end
 | |
|   if type == "rocket" then 
 | |
|     tooltip = "tooltip.rocket-recipe"
 | |
|     sprite_name = GuiElement.getSprite(defines.sprite_info.rocket)
 | |
|   end
 | |
|   if type == "fluid" then 
 | |
|     tooltip = "tooltip.resource-recipe"
 | |
|     sprite_name = GuiElement.getSprite(defines.sprite_info.developer)
 | |
|   end
 | |
|   if type == "resource" then 
 | |
|     tooltip = "tooltip.resource-recipe"
 | |
|     sprite_name = GuiElement.getSprite(defines.sprite_info.developer)
 | |
|   end
 | |
|   if type == "technology" then 
 | |
|     tooltip = "tooltip.technology-recipe"
 | |
|     sprite_name = GuiElement.getSprite(defines.sprite_info.education)
 | |
|   end
 | |
|   if type == "energy" then 
 | |
|     tooltip = "tooltip.energy-recipe"
 | |
|     sprite_name = GuiElement.getSprite(defines.sprite_info.energy)    
 | |
|   end
 | |
|   if type == "burnt" then 
 | |
|     tooltip = "tooltip.burnt-product"
 | |
|     sprite_name = GuiElement.getSprite(defines.sprite_info.burnt)    
 | |
|   end
 | |
|   if type == "block" then
 | |
|     sprite_name = GuiElement.getSprite(defines.sprite_info.block)    
 | |
|   end
 | |
|   if sprite_name ~= nil then
 | |
|     local container = GuiElement.add(button, GuiFlow(type))
 | |
|     if type == "block" then
 | |
|       container.style.top_padding = 16
 | |
|       container.ignored_by_interaction = true
 | |
|     else
 | |
|       container.style.top_padding = -4
 | |
|     end
 | |
| 
 | |
|     local gui_sprite = GuiSprite("info"):sprite(sprite_name)
 | |
|     if tooltip ~= nil then
 | |
|       gui_sprite:tooltip({tooltip})
 | |
|     end
 | |
|     local sprite = GuiElement.add(container, gui_sprite)
 | |
|     sprite.style.width = defines.sprite_size
 | |
|     sprite.style.height = defines.sprite_size
 | |
|     sprite.style.stretch_image_to_widget_size = true
 | |
|   end
 | |
| end
 | |
| 
 | |
| -------------------------------------------------------------------------------
 | |
| ---Add contraint information
 | |
| ---@param button LuaGuiElement
 | |
| function GuiCell:add_contraintIcon(button)
 | |
|   if self.m_contraint_icon == nil then return end
 | |
|   local sprite_name = nil
 | |
|   if self.m_contraint_icon == "linked" then
 | |
|     sprite_name = GuiElement.getSprite(defines.sprite_info.linked)
 | |
|   end
 | |
|   if self.m_contraint_icon == "master" then
 | |
|     sprite_name = GuiElement.getSprite(defines.sprite_info.master)
 | |
|   end
 | |
|   if self.m_contraint_icon == "exclude" then
 | |
|     sprite_name = GuiElement.getSprite(defines.sprite_info.exclude)
 | |
|   end
 | |
|   if sprite_name ~= nil then
 | |
|     local sprite = GuiElement.add(button, GuiSprite("contraint"):sprite(sprite_name))
 | |
|     sprite.style.width = defines.sprite_size
 | |
|     sprite.style.height = defines.sprite_size
 | |
|     sprite.style.stretch_image_to_widget_size = true
 | |
|     sprite.ignored_by_interaction = true
 | |
|   end
 | |
| end
 | |
| 
 | |
| -------------------------------------------------------------------------------
 | |
| ---Add logistic information
 | |
| ---@param parent LuaGuiElement
 | |
| ---@param element table
 | |
| function GuiCell:add_row_logistic(parent, element)
 | |
|   local tooltip = {"tooltip.logistic-row-choose"}
 | |
|   ---solid logistic
 | |
|   if element.type == 0 or element.type == "item" then
 | |
|     local type = User.getParameter("logistic_row_item") or "belt"
 | |
|     local item_logistic = Player.getDefaultItemLogistic(type)
 | |
|     local item_prototype = Product(element)
 | |
|     local total_value = Format.formatNumberElement(item_prototype:countContainer(element.count, item_logistic, element.time))
 | |
|     
 | |
|     --local tooltip = GuiTooltipModule("tooltip.info-module"):element({type="item", name=name})
 | |
|     local logistic_cell = GuiElement.add(parent, GuiFlowH("logistic-cell", item_logistic))
 | |
|     GuiElement.add(logistic_cell, GuiButtonSelectSpriteSm("HMLogisticEdition", "OPEN", "item", item_logistic):sprite("entity", item_logistic):color("flat"):tooltip(tooltip))
 | |
|     if element.limit_count ~= nil and element.limit_count > 0 then
 | |
|       local limit_value = Format.formatNumberElement(item_prototype:countContainer(element.limit_count, item_logistic, element.time))
 | |
|       GuiElement.add(logistic_cell, GuiLabel("label", item_logistic):caption({"", "x", limit_value, "/", total_value}):style("helmod_label_element"))
 | |
|     else
 | |
|       GuiElement.add(logistic_cell, GuiLabel("label", item_logistic):caption({"", "x", total_value}):style("helmod_label_element"))
 | |
|     end
 | |
|   end
 | |
|   ---fluid logistic
 | |
|   if element.type == 1 or element.type == "fluid" then
 | |
|     local type = User.getParameter("logistic_row_fluid") or "pipe"
 | |
|     local fluid_logistic = Player.getDefaultFluidLogistic(type)
 | |
|     local fluid_prototype = Product(element)
 | |
|     local count = element.count
 | |
|     if type == "pipe" then count = count / element.time end
 | |
|     local total_value = Format.formatNumberElement(fluid_prototype:countContainer(count, fluid_logistic, element.time))
 | |
|     
 | |
|     --local tooltip = GuiTooltipModule("tooltip.info-module"):element({type="item", name=name})
 | |
|     local logistic_cell = GuiElement.add(parent, GuiFlowH("logistic-cell", fluid_logistic))
 | |
|     GuiElement.add(logistic_cell, GuiButtonSelectSpriteSm("HMLogisticEdition", "OPEN", "fluid", fluid_logistic):sprite("entity", fluid_logistic):color("flat"):tooltip(tooltip))
 | |
|     if element.limit_count ~= nil and element.limit_count > 0 then
 | |
|       local limit_count = element.limit_count
 | |
|       if type == "pipe" then limit_count = limit_count / element.time end
 | |
|       local limit_value = Format.formatNumberElement(fluid_prototype:countContainer(limit_count, fluid_logistic, element.time))
 | |
|       GuiElement.add(logistic_cell, GuiLabel("label", fluid_logistic):caption({"", "x", limit_value, "/", total_value}):style("helmod_label_element"))
 | |
|     else
 | |
|       GuiElement.add(logistic_cell, GuiLabel("label", fluid_logistic):caption({"", "x", total_value}):style("helmod_label_element"))
 | |
|     end
 | |
|   end
 | |
| end
 | |
| 
 | |
| -------------------------------------------------------------------------------
 | |
| ---@class GuiCellFactory
 | |
| GuiCellFactory = newclass(GuiCell,function(base,...)
 | |
|   GuiCell.init(base,...)
 | |
| end)
 | |
| 
 | |
| -------------------------------------------------------------------------------
 | |
| ---By Factory
 | |
| function GuiCellFactory:byFactory(...)
 | |
|   self.m_by_factory = true
 | |
|   self.m_by_factory_uri = table.concat({...},"=")
 | |
| end
 | |
| 
 | |
| -------------------------------------------------------------------------------
 | |
| ---Create cell
 | |
| ---@param parent LuaGuiElement --container for element
 | |
| ---@return LuaGuiElement
 | |
| function GuiCellFactory:create(parent)
 | |
|   local color = self.m_color or "gray"
 | |
|   local factory = self.element or {}
 | |
|   local cell = GuiElement.add(parent, GuiFlowV(factory.name, self.m_index))
 | |
|   local row1 = GuiElement.add(cell, GuiFrameH("row1"):style("helmod_frame_element", color, 1))
 | |
| 
 | |
|   local tooltip = GuiTooltipElement(self.options.tooltip):element(factory):withEnergy():withEffectInfo(factory.effects ~= nil):withControlInfo(self.m_with_control_info)
 | |
|   local button = GuiElement.add(row1, GuiButtonSprite(unpack(self.name)):sprite("entity", factory.name):tooltip(tooltip))
 | |
|   
 | |
|   self:add_mask(button, color)
 | |
| 
 | |
|   local cell_factory_info = GuiElement.add(row1, GuiTable("factory-info"):column(1):style("helmod_factory_info"))
 | |
|   if factory.per_factory then
 | |
|     local per_factory = factory.per_factory or 0
 | |
|     local per_factory_constant = factory.per_factory_constant or 0
 | |
|     GuiElement.add(cell_factory_info, GuiLabel("per_factory"):caption({"", "x", per_factory}):style("helmod_label_element"):tooltip({"tooltip.beacon-per-factory"}))
 | |
|     GuiElement.add(cell_factory_info, GuiLabel("per_factory_constant"):caption({"", "+", per_factory_constant}):style("helmod_label_element"):tooltip({"tooltip.beacon-per-factory-constant"}))
 | |
|   end
 | |
| 
 | |
|   local col_size = math.ceil(table.size(factory.modules)/2)
 | |
|   if col_size < 2 then col_size = 1 end
 | |
|   local cell_factory_module = GuiElement.add(row1, GuiTable("factory-modules"):column(col_size):style("helmod_factory_modules"))
 | |
| 
 | |
|   ---modules
 | |
|   if factory.modules ~= nil then
 | |
|     for name, count in pairs(factory.modules) do
 | |
|       if count > 0 then
 | |
|         local module_cell = GuiElement.add(cell_factory_module, GuiFlowH("module-cell", name))
 | |
|         local tooltip = GuiTooltipModule("tooltip.info-module"):element({type="item", name=name})
 | |
|         local module_icon = GuiElement.add(module_cell, GuiButtonSpriteSm("module"):sprite("item", name):tooltip(tooltip))
 | |
|         
 | |
|         self:add_mask(module_icon, color, 16)
 | |
|         
 | |
|         GuiElement.add(module_cell, GuiLabel("module-amount"):caption({"", "x", count}):style("helmod_label_element"))
 | |
|       end
 | |
|     end
 | |
|   end
 | |
| 
 | |
|   if self.m_by_limit then
 | |
|     local row2 = GuiElement.add(cell, GuiFrameH("row2"):style("helmod_frame_element", color, 2))
 | |
|     local limit_value = factory.limit_count or 0
 | |
|     if type(factory.limit) == "number" and factory.limit > 0 then
 | |
|       limit_value = factory.limit
 | |
|     end
 | |
|     if self.m_by_limit_uri ~= nil then
 | |
|       local style = "helmod_textfield_element"
 | |
|       if type(factory.limit) == "number" and factory.limit > 0 then
 | |
|         style = "helmod_textfield_element_red"
 | |
|       end
 | |
|       local text_field = GuiElement.add(row2, GuiTextField(self.m_by_limit_uri):text(Format.formatNumberFactory(limit_value)):style(style):tooltip({"helmod_common.per-sub-block"}))
 | |
|       text_field.style.height = 19
 | |
|       text_field.style.width = 70
 | |
|     else
 | |
|       GuiElement.add(row2, GuiLabel("label2", factory.name):caption(Format.formatNumberFactory(limit_value)):style("helmod_label_element"):tooltip({"helmod_common.per-sub-block"}))
 | |
|     end
 | |
|   end
 | |
| 
 | |
|   local row3 = GuiElement.add(cell, GuiFrameH("row3"):style("helmod_frame_element", color, 3))
 | |
|   if self.m_by_factory then
 | |
|     local style = "helmod_textfield_element"
 | |
|     if factory.input ~= nil then
 | |
|       style = "helmod_textfield_element_red"
 | |
|     end
 | |
|     local text_field = GuiElement.add(row3, GuiTextField(self.m_by_factory_uri):text(Format.formatNumberFactory(factory.input or factory.count or 0)):style(style):tooltip({"helmod_common.total"}))
 | |
|     text_field.style.height = 19
 | |
|     text_field.style.width = 70
 | |
|   else
 | |
|     GuiElement.add(row3, GuiLabel("label3", factory.name):caption(Format.formatNumberFactory(factory.count)):style("helmod_label_element"):tooltip({"helmod_common.total"}))
 | |
|   end
 | |
|   return cell
 | |
| end
 | |
| 
 | |
| -------------------------------------------------------------------------------
 | |
| ---@class GuiCellRecipe
 | |
| GuiCellRecipe = newclass(GuiCell,function(base,...)
 | |
|   GuiCell.init(base,...)
 | |
| end)
 | |
| 
 | |
| -------------------------------------------------------------------------------
 | |
| ---Create cell
 | |
| ---@param parent LuaGuiElement --container for element
 | |
| ---@return LuaGuiElement
 | |
| function GuiCellRecipe:create(parent)
 | |
|   local color = self.m_color or "gray"
 | |
|   local recipe = self.element or {}
 | |
|   local cell = GuiElement.add(parent, GuiFlowV(recipe.name, self.m_index))
 | |
|   local row1 = GuiElement.add(cell, GuiFrameH("row1"):style("helmod_frame_product", color, 1))
 | |
|   
 | |
|   local recipe_prototype = RecipePrototype(recipe)
 | |
|   local icon_name, icon_type = recipe_prototype:getIcon()
 | |
|   local tooltip = GuiTooltipRecipe(self.options.tooltip):element(recipe)
 | |
|   local recipe_icon = GuiElement.add(row1, GuiButtonSprite(unpack(self.name)):sprite(icon_type, icon_name):tooltip(tooltip))
 | |
|   
 | |
|   self:add_overlay(recipe_icon)
 | |
|   self:add_infoIcon(recipe_icon)
 | |
|   self:add_mask(recipe_icon, color)
 | |
|     
 | |
|   if self.m_broken == true then
 | |
|     recipe_icon.tooltip = "ERROR: Recipe ".. recipe.name .." not exist in game"
 | |
|     recipe_icon.sprite = "utility/warning_icon"
 | |
|     row1.style = "helmod_frame_product_red_1"
 | |
|   end
 | |
| 
 | |
|   local row3 = GuiElement.add(cell, GuiFrameH("row3"):style("helmod_frame_product", color, 3))
 | |
|   GuiElement.add(row3, GuiLabel("label2", recipe.name):caption(Format.formatPercent(recipe.production or 1).."%"):style("helmod_label_element"):tooltip({"helmod_common.total"}))
 | |
|   return cell, recipe_icon
 | |
| end
 | |
| 
 | |
| -------------------------------------------------------------------------------
 | |
| ---@class GuiCellProduct
 | |
| GuiCellProduct = newclass(GuiCell,function(base,...)
 | |
|   GuiCell.init(base,...)
 | |
| end)
 | |
| 
 | |
| -------------------------------------------------------------------------------
 | |
| ---Create cell
 | |
| ---@param parent LuaGuiElement --container for element
 | |
| ---@return LuaGuiElement
 | |
| function GuiCellProduct:create(parent)
 | |
|   local color = self.m_color or "gray"
 | |
|   local element = self.element or {}
 | |
|   local cell = GuiElement.add(parent, GuiFlowV(element.name, self.m_index))
 | |
|   local row1 = GuiElement.add(cell, GuiFrameH("row1"):style("helmod_frame_product", color, 1))
 | |
| 
 | |
|   if string.find(element.name, "helmod") then
 | |
|     GuiElement.add(row1, GuiButton(unpack(self.name)):sprite("menu", element.hovered, element.sprite):style(element.name):tooltip({element.localised_name}))
 | |
|   else
 | |
|     local product_icon = GuiElement.add(row1, GuiButtonSprite(unpack(self.name)):sprite(element.type, element.name):index(Product(element):getTableKey()):caption("X"..Product(element):getElementAmount()):tooltip({self.options.tooltip, Player.getLocalisedName(element)}))
 | |
|     self:add_mask(product_icon, color)
 | |
|   end
 | |
|   local row3 = GuiElement.add(cell, GuiFrameH("row3"):style("helmod_frame_product", color, 3))
 | |
|   GuiElement.add(row3, GuiLabel("label2", element.name):caption(Format.formatNumber(element.count, 5)):style("helmod_label_element"):tooltip({"helmod_common.total"}))
 | |
|   return cell
 | |
| end
 | |
| 
 | |
| -------------------------------------------------------------------------------
 | |
| ---@class GuiCellProductSm
 | |
| GuiCellProductSm = newclass(GuiCell,function(base,...)
 | |
|   GuiCell.init(base,...)
 | |
| end)
 | |
| 
 | |
| -------------------------------------------------------------------------------
 | |
| ---Create cell
 | |
| ---@param parent LuaGuiElement --container for element
 | |
| ---@return LuaGuiElement
 | |
| function GuiCellProductSm:create(parent)
 | |
|   local color = self.m_color or "gray"
 | |
|   local element = self.element or {}
 | |
|   local cell = GuiElement.add(parent, GuiFlowV(element.name, self.m_index))
 | |
|   local row1 = GuiElement.add(cell, GuiFrameH("row1"):style("helmod_frame_product", color, 1))
 | |
| 
 | |
|   if string.find(element.name, "helmod") then
 | |
|     GuiElement.add(row1, GuiButton(unpack(self.name)):style(element.name):tooltip({element.localised_name}))
 | |
|   else
 | |
|     GuiElement.add(row1, GuiButtonSpriteSm(unpack(self.name)):sprite(element.type, element.name):index(Product(element):getTableKey()):caption("X"..Product(element):getElementAmount()):tooltip({self.options.tooltip, Player.getLocalisedName(element)}))
 | |
|   end
 | |
|   GuiElement.infoTemperature(row1, element)
 | |
|   
 | |
|   local row3 = GuiElement.add(cell, GuiFrameH("row3"):style("helmod_frame_product", color, 3))
 | |
|   local caption3 = Format.formatNumber(element.count, 5)
 | |
|   if element.type == "energy" then caption3 = Format.formatNumberKilo(element.count, "J") end
 | |
|   GuiElement.add(row3, GuiLabel("label2", element.name):caption(caption3):style("helmod_label_element_sm"):tooltip({"helmod_common.total"}))
 | |
|   return cell
 | |
| end
 | |
| 
 | |
| -------------------------------------------------------------------------------
 | |
| ---@class GuiCellBlock
 | |
| GuiCellBlock = newclass(GuiCell,function(base,...)
 | |
|   GuiCell.init(base,...)
 | |
| end)
 | |
| 
 | |
| -------------------------------------------------------------------------------
 | |
| ---Create cell
 | |
| ---@param parent LuaGuiElement --container for element
 | |
| ---@return LuaGuiElement
 | |
| function GuiCellBlock:create(parent)
 | |
|   local display_cell_mod = User.getModSetting("display_cell_mod")
 | |
|   local color = self.m_color or "gray"
 | |
|   local element = self.element or {}
 | |
|   local cell = GuiElement.add(parent, GuiFlowV(element.name, self.m_index))
 | |
|   local row1 = GuiElement.add(cell, GuiFrameH("row1"):style("helmod_frame_product", color, 1))
 | |
| 
 | |
|   local first_recipe = Model.firstRecipe(element.recipes)
 | |
|   if first_recipe ~= nil then
 | |
|     local tooltip = GuiTooltipElement(self.options.tooltip):element(element)
 | |
|     local button = GuiElement.add(row1, GuiButtonSprite(unpack(self.name)):sprite(first_recipe.type, element.name):tooltip(tooltip))
 | |
|     
 | |
|     self:add_infoIcon(button, "block")
 | |
|     
 | |
|     GuiElement.infoRecipe(button, first_recipe)
 | |
|   else
 | |
|     local button = GuiElement.add(row1, GuiButtonSprite(unpack(self.name)):sprite("menu", defines.sprites.status_help.white, defines.sprites.status_help.black))
 | |
|     button.style.width = 36
 | |
|   end
 | |
| 
 | |
|   if element.limit_count ~= nil then
 | |
|     local row2 = GuiElement.add(cell, GuiFrameH("row2"):style("helmod_frame_product", color, 2))
 | |
|     local caption2 = Format.formatNumberFactory(element.limit_count)
 | |
|     if display_cell_mod == "by-kilo" then caption2 = Format.formatNumberKilo(element.limit_count) end
 | |
|     GuiElement.add(row2, GuiLabel("label1", element.name):caption(caption2):style("helmod_label_element"):tooltip({"helmod_common.total"}))
 | |
|   end
 | |
| 
 | |
|   local row3 = GuiElement.add(cell, GuiFrameH("row3"):style("helmod_frame_product", color, 3))
 | |
|   local caption3 = Format.formatNumberFactory(element.count)
 | |
|   if display_cell_mod == "by-kilo" then caption3 = Format.formatNumberKilo(element.count) end
 | |
|   GuiElement.add(row3, GuiLabel("label2", element.name):caption(caption3):style("helmod_label_element"):tooltip({"helmod_common.total"}))
 | |
| 
 | |
|   return cell
 | |
| end
 | |
| 
 | |
| -------------------------------------------------------------------------------
 | |
| ---@class GuiCellModel
 | |
| GuiCellModel = newclass(GuiCell,function(base,...)
 | |
|   GuiCell.init(base,...)
 | |
| end)
 | |
| 
 | |
| -------------------------------------------------------------------------------
 | |
| ---Create cell
 | |
| ---@param parent LuaGuiElement --container for element
 | |
| ---@return LuaGuiElement
 | |
| function GuiCellModel:create(parent)
 | |
|   local color = self.m_color or "gray"
 | |
|   local element = self.element or {}
 | |
|   local cell = GuiElement.add(parent, GuiFlowV(element.name, self.m_index))
 | |
|   local row1 = GuiElement.add(cell, GuiFrameH("row1"):style("helmod_frame_product", color, 1))
 | |
| 
 | |
|   local first_block = Model.firstRecipe(element.blocks)
 | |
|   if first_block ~= nil and first_block.name ~= "" then
 | |
|     local tooltip = GuiTooltipModel(self.options.tooltip):element(element)
 | |
|     local button = GuiElement.add(row1, GuiButtonSprite(unpack(self.name)):sprite(first_block.type, first_block.name):tooltip(tooltip))
 | |
|   else
 | |
|     local button = GuiElement.add(row1, GuiButtonSprite(unpack(self.name)):sprite("menu", defines.sprites.status_help.white, defines.sprites.status_help.black))
 | |
|     button.style.width = 36
 | |
|   end
 | |
|   local row3 = GuiElement.add(cell, GuiFrameH("row3"):style("helmod_frame_product", color, 3))
 | |
|   local caption3 = Format.formatNumberFactory(table.size(element.blocks))
 | |
|   GuiElement.add(row3, GuiLabel("label2", element.name):caption(caption3):style("helmod_label_element"):tooltip({"helmod_common.total"}))
 | |
| 
 | |
|   return cell
 | |
| end
 | |
| -------------------------------------------------------------------------------
 | |
| ---@class GuiCellBlockInfo
 | |
| GuiCellBlockInfo = newclass(GuiCell,function(base,...)
 | |
|   GuiCell.init(base,...)
 | |
| end)
 | |
| 
 | |
| -------------------------------------------------------------------------------
 | |
| ---Create cell
 | |
| ---@param parent LuaGuiElement --container for element
 | |
| ---@return LuaGuiElement
 | |
| function GuiCellBlockInfo:create(parent)
 | |
|   local display_cell_mod = User.getModSetting("display_cell_mod")
 | |
|   local color = self.m_color or "gray"
 | |
|   local element = self.element or {}
 | |
|   local cell = GuiElement.add(parent, GuiFlowV(element.name, self.m_index))
 | |
|   local row1 = GuiElement.add(cell, GuiFrameH("row1"):style("helmod_frame_product", color, 1))
 | |
|   row1.style.top_padding=4
 | |
|   row1.style.bottom_padding=4
 | |
| 
 | |
|   local tooltip = GuiTooltipBlock(self.options.tooltip):element(element)
 | |
|   local button = GuiElement.add(row1, GuiButton(unpack(self.name)):sprite("menu", defines.sprites.hangar.white, defines.sprites.hangar.black):style("helmod_button_menu_flat"):tooltip(tooltip))
 | |
| 
 | |
|   if element.limit_count ~= nil then
 | |
|     local row2 = GuiElement.add(cell, GuiFrameH("row2"):style("helmod_frame_product", color, 2))
 | |
|     local caption2 = Format.formatNumberFactory(element.limit_count)
 | |
|     if display_cell_mod == "by-kilo" then caption2 = Format.formatNumberKilo(element.limit_count) end
 | |
|     GuiElement.add(row2, GuiLabel("label1", element.name):caption(caption2):style("helmod_label_element"):tooltip({"helmod_common.total"}))
 | |
|   end
 | |
| 
 | |
|   local row3 = GuiElement.add(cell, GuiFrameH("row3"):style("helmod_frame_product", color, 3))
 | |
|   local caption3 = Format.formatNumberFactory(element.count)
 | |
|   if display_cell_mod == "by-kilo" then caption3 = Format.formatNumberKilo(element.count) end
 | |
|   GuiElement.add(row3, GuiLabel("label2", element.name):caption(caption3):style("helmod_label_element"):tooltip({"helmod_common.total"}))
 | |
| 
 | |
|   return cell
 | |
| end
 | |
| 
 | |
| -------------------------------------------------------------------------------
 | |
| ---@class GuiCellEnergy
 | |
| GuiCellEnergy = newclass(GuiCell,function(base,...)
 | |
|   GuiCell.init(base,...)
 | |
| end)
 | |
| 
 | |
| -------------------------------------------------------------------------------
 | |
| ---Create cell
 | |
| ---@param parent LuaGuiElement --container for element
 | |
| ---@return LuaGuiElement
 | |
| function GuiCellEnergy:create(parent)
 | |
|   local display_cell_mod = User.getModSetting("display_cell_mod")
 | |
|   local color = self.m_color or "gray"
 | |
|   local element = self.element or {}
 | |
|   local cell = GuiElement.add(parent, GuiFlowV(element.name, "energy", self.m_index))
 | |
|   local row1 = GuiElement.add(cell, GuiFrameH("row1"):style("helmod_frame_element", color, 1))
 | |
|   row1.style.top_padding=4
 | |
|   row1.style.bottom_padding=4
 | |
| 
 | |
|   local tooltip = GuiTooltipEnergyConsumption(self.options.tooltip):element(element)
 | |
|   local button = GuiElement.add(row1, GuiButton(unpack(self.name)):sprite("menu", defines.sprites.event.white, defines.sprites.event.black):style("helmod_button_menu_flat"):tooltip(tooltip))
 | |
| 
 | |
|   if self.m_by_limit then
 | |
|     local row2 = GuiElement.add(cell, GuiFrameH("row2"):style("helmod_frame_element", color, 2))
 | |
|     local caption2 = Format.formatNumberKilo(element.limit_energy or 0, "J")
 | |
|     if display_cell_mod == "by-kilo" then caption2 = Format.formatNumberKilo(element.limit_energy) end
 | |
|     GuiElement.add(row2, GuiLabel("label1", element.name):caption(caption2):style("helmod_label_element"):tooltip({"helmod_common.total"}))
 | |
|   end
 | |
| 
 | |
|   local row3 = GuiElement.add(cell, GuiFrameH("row3"):style("helmod_frame_element", color, 3))
 | |
|   local caption3 = Format.formatNumberKilo(element.energy_total or element.power, "J")
 | |
|   GuiElement.add(row3, GuiLabel("label2", element.name):caption(caption3):style("helmod_label_element"):tooltip({"helmod_common.total"}))
 | |
| 
 | |
|   return cell
 | |
| end
 | |
| 
 | |
| -------------------------------------------------------------------------------
 | |
| ---@class GuiCellPollution
 | |
| GuiCellPollution = newclass(GuiCell,function(base,...)
 | |
|   GuiCell.init(base,...)
 | |
| end)
 | |
| 
 | |
| -------------------------------------------------------------------------------
 | |
| ---Create cell
 | |
| ---@param parent LuaGuiElement --container for element
 | |
| ---@return LuaGuiElement
 | |
| function GuiCellPollution:create(parent)
 | |
|   local width = 60
 | |
|   local display_cell_mod = User.getModSetting("display_cell_mod")
 | |
|   local color = self.m_color or "gray"
 | |
|   local element = self.element or {}
 | |
|   local cell = GuiElement.add(parent, GuiFlowV(element.name, "pollution", self.m_index))
 | |
|   local row1 = GuiElement.add(cell, GuiFrameH("row1"):style("helmod_frame_product", color, 1))
 | |
|   row1.style.top_padding=4
 | |
|   row1.style.bottom_padding=4
 | |
|   row1.style.minimal_width=width
 | |
| 
 | |
|   local tooltip = GuiTooltipPollution(self.options.tooltip):element(element)
 | |
|   local button = GuiElement.add(row1, GuiButton(unpack(self.name)):sprite("menu", defines.sprites.skull.white, defines.sprites.skull.black):style("helmod_button_menu_flat"):tooltip(tooltip))
 | |
| 
 | |
|   if self.m_by_limit then
 | |
|     local row2 = GuiElement.add(cell, GuiFrameH("row2"):style("helmod_frame_product", color, 2))
 | |
|     row2.style.minimal_width=width
 | |
|     local caption2 = Format.formatNumber(element.limit_pollution or 0)
 | |
|     if display_cell_mod == "by-kilo" then caption2 = Format.formatNumberKilo(element.limit_pollution) end
 | |
|     GuiElement.add(row2, GuiLabel("label1", element.name):caption(caption2):style("helmod_label_element"):tooltip({"helmod_common.total"}))
 | |
|   end
 | |
| 
 | |
|   local row3 = GuiElement.add(cell, GuiFrameH("row3"):style("helmod_frame_product", color, 3))
 | |
|   row3.style.minimal_width=width
 | |
|   local caption3 = Format.formatNumber(element.pollution_total)
 | |
|   GuiElement.add(row3, GuiLabel("label2", element.name):caption(caption3):style("helmod_label_element"):tooltip({"helmod_common.total"}))
 | |
| 
 | |
|   return cell
 | |
| end
 | |
| 
 | |
| -------------------------------------------------------------------------------
 | |
| ---@class GuiCellBuilding
 | |
| GuiCellBuilding = newclass(GuiCell,function(base,...)
 | |
|   GuiCell.init(base,...)
 | |
| end)
 | |
| 
 | |
| -------------------------------------------------------------------------------
 | |
| ---Create cell
 | |
| ---@param parent LuaGuiElement --container for element
 | |
| ---@return LuaGuiElement
 | |
| function GuiCellBuilding:create(parent)
 | |
|   local display_cell_mod = User.getModSetting("display_cell_mod")
 | |
|   local color = self.m_color or "gray"
 | |
|   local element = self.element or {}
 | |
|   local cell = GuiElement.add(parent, GuiFlowV(element.name, "building", self.m_index))
 | |
|   local row1 = GuiElement.add(cell, GuiFrameH("row1"):style("helmod_frame_product", color, 1))
 | |
|   row1.style.top_padding=4
 | |
|   row1.style.bottom_padding=4
 | |
| 
 | |
|   local tooltip = GuiTooltipBuilding(self.options.tooltip):element(element)
 | |
|   local button = GuiElement.add(row1, GuiButton(unpack(self.name)):sprite("menu", defines.sprites.factory.white, defines.sprites.factory.black):style("helmod_button_menu_flat"):tooltip(tooltip))
 | |
| 
 | |
|   if self.m_by_limit then
 | |
|     local row2 = GuiElement.add(cell, GuiFrameH("row2"):style("helmod_frame_product", color, 2))
 | |
|     local caption2 = Format.formatNumber(element.summary.limit_building or 0)
 | |
|     if display_cell_mod == "by-kilo" then caption2 = Format.formatNumberKilo(element.summary.limit_building) end
 | |
|     GuiElement.add(row2, GuiLabel("label1", element.name):caption(caption2):style("helmod_label_element"):tooltip({"helmod_common.total"}))
 | |
|   end
 | |
| 
 | |
|   local row3 = GuiElement.add(cell, GuiFrameH("row3"):style("helmod_frame_product", color, 3))
 | |
|   local caption3 = Format.formatNumber(element.summary.building)
 | |
|   GuiElement.add(row3, GuiLabel("label2", element.name):caption(caption3):style("helmod_label_element"):tooltip({"helmod_common.total"}))
 | |
| 
 | |
|   return cell
 | |
| end
 | |
| 
 | |
| -------------------------------------------------------------------------------
 | |
| ---@class GuiCellElement
 | |
| GuiCellElement = newclass(GuiCell,function(base,...)
 | |
|   GuiCell.init(base,...)
 | |
| end)
 | |
| 
 | |
| -------------------------------------------------------------------------------
 | |
| ---Create cell
 | |
| ---@param parent LuaGuiElement --container for element
 | |
| ---@return LuaGuiElement
 | |
| function GuiCellElement:create(parent)
 | |
|   local display_cell_mod = User.getModSetting("display_cell_mod")
 | |
|   local color = self.m_color or GuiElement.color_button_none
 | |
|   local element = self.element or {}
 | |
|   local cell = GuiElement.add(parent, GuiFlowV(element.name, self.m_index or 1))
 | |
|   local row1 = GuiElement.add(cell, GuiFrameH("row1"):style("helmod_frame_element", color, 1))
 | |
| 
 | |
|   local tooltip = ""
 | |
|   if element.type == "energy" then
 | |
|     tooltip = GuiTooltipEnergy(self.options.tooltip):element(element):withLogistic():withProductInfo():withControlInfo(self.m_with_control_info)
 | |
|   else
 | |
|     tooltip = GuiTooltipElement(self.options.tooltip):element(element):withLogistic():withProductInfo():withControlInfo(self.m_with_control_info)
 | |
|   end
 | |
|   local button = GuiElement.add(row1, GuiButtonSprite(unpack(self.name)):sprite(element.type or "entity", element.name):index(Product(element):getTableKey()):caption("X"..Product(element):getElementAmount()):tooltip(tooltip))
 | |
|   GuiElement.infoTemperature(row1, element)
 | |
|   
 | |
|   if element.burnt then self:add_infoIcon(button, "burnt") end
 | |
|   self:add_infoIcon(button)
 | |
|   self:add_contraintIcon(button)
 | |
|   self:add_mask(button, color)
 | |
| 
 | |
|   if self.m_by_limit then
 | |
|     local row2 = GuiElement.add(cell, GuiFrameH("row2"):style("helmod_frame_element", color, 2))
 | |
|     local caption2 = Format.formatNumberElement(element.limit_count)
 | |
|     if element.type == "energy" then caption2 = Format.formatNumberKilo(element.limit_count, "J") end
 | |
|     if display_cell_mod == "by-kilo" then caption2 = Format.formatNumberKilo(element.limit_count) end
 | |
|     GuiElement.add(row2, GuiLabel("label1", element.name):caption(caption2):style("helmod_label_element"):tooltip({"helmod_common.total"}))
 | |
|   end
 | |
| 
 | |
|   local row3 = GuiElement.add(cell, GuiFrameH("row3"):style("helmod_frame_element", color, 3))
 | |
|   local caption3 = Format.formatNumberElement(element.count)
 | |
|   if element.type == "energy" then caption3 = Format.formatNumberKilo(element.count, "J") end
 | |
|   if display_cell_mod == "by-kilo" then caption3 = Format.formatNumberKilo(element.count) end
 | |
|   GuiElement.add(row3, GuiLabel("label2", element.name):caption(caption3):style("helmod_label_element"):tooltip({"helmod_common.total"}))
 | |
| 
 | |
|   if User.getParameter("display_logistic_row") == true then
 | |
|     local row4 = GuiElement.add(cell, GuiFrameH("row4"):style("helmod_frame_element", color, 4))
 | |
|     self:add_row_logistic(row4, element)
 | |
|     GuiElement.add(row4, GuiLabel("label-empty"):caption(""):style("helmod_label_element"))
 | |
|   end
 | |
|   return cell
 | |
| end
 | |
| 
 | |
| -------------------------------------------------------------------------------
 | |
| ---@class GuiCellElementSm
 | |
| GuiCellElementSm = newclass(GuiCell,function(base,...)
 | |
|   GuiCell.init(base,...)
 | |
| end)
 | |
| 
 | |
| -------------------------------------------------------------------------------
 | |
| ---Create cell
 | |
| ---@param parent LuaGuiElement --container for element
 | |
| ---@return LuaGuiElement
 | |
| function GuiCellElementSm:create(parent)
 | |
|   local display_cell_mod = User.getModSetting("display_cell_mod")
 | |
|   local color = self.m_color or GuiElement.color_button_none
 | |
|   if self.m_mask == true then color = "gray" end
 | |
|   local element = self.element or {}
 | |
| 
 | |
|   local cell = GuiElement.add(parent, GuiFlowV(element.name, self.m_index))
 | |
|   local row1 = GuiElement.add(cell, GuiFrameH("row1"):style("helmod_frame_element_sm", color, 1))
 | |
|   local tooltip = ""
 | |
|   if element.type == "energy" then
 | |
|     tooltip = GuiTooltipEnergy(self.options.tooltip):element(element):withLogistic():withProductInfo()
 | |
|   else
 | |
|     tooltip = GuiTooltipElement(self.options.tooltip):element(element):withLogistic():withProductInfo()
 | |
|   end
 | |
|   local button = GuiElement.add(row1, GuiButtonSpriteSm(unpack(self.name)):sprite(element.type, element.name):index(Product(element):getTableKey()):caption("X"..Product(element):getElementAmount()):tooltip(tooltip))
 | |
|   
 | |
|   self:add_mask(button, color, 16)
 | |
| 
 | |
|   if self.m_by_limit then
 | |
|     local row2 = GuiElement.add(cell, GuiFrameH("row2"):style("helmod_frame_element_sm", color, 2))
 | |
|     local caption2 = Format.formatNumberElement(element.limit_count)
 | |
|     if display_cell_mod == "by-kilo" then caption2 = Format.formatNumberKilo(element.limit_count) end
 | |
|     if element.type == "energy" then caption2 = Format.formatNumberKilo(element.limit_count, "J") end
 | |
|     GuiElement.add(row2, GuiLabel("label1", element.name):caption(caption2):style("helmod_label_element_sm"):tooltip({"helmod_common.total"}))
 | |
|   end
 | |
| 
 | |
|   local row3 = GuiElement.add(cell, GuiFrameH("row3"):style("helmod_frame_element_sm", color, 3))
 | |
|   local caption3 = Format.formatNumberElement(element.count)
 | |
|   if display_cell_mod == "by-kilo" then caption3 = Format.formatNumberKilo(element.count) end
 | |
|   if element.type == "energy" then caption3 = Format.formatNumberKilo(element.count, "J") end
 | |
|   GuiElement.add(row3, GuiLabel("label2", element.name):caption(caption3):style("helmod_label_element_sm"):tooltip({"helmod_common.total"}))
 | |
| 
 | |
|   return cell
 | |
| end
 | |
| 
 | |
| -------------------------------------------------------------------------------
 | |
| ---@class GuiCellElementM
 | |
| GuiCellElementM = newclass(GuiCell,function(base,...)
 | |
|   GuiCell.init(base,...)
 | |
| end)
 | |
| 
 | |
| -------------------------------------------------------------------------------
 | |
| ---Create cell
 | |
| ---@param parent LuaGuiElement --container for element
 | |
| ---@return LuaGuiElement
 | |
| function GuiCellElementM:create(parent)
 | |
|   local display_cell_mod = User.getModSetting("display_cell_mod")
 | |
|   local color = self.m_color or GuiElement.color_button_none
 | |
|   local element = self.element or {}
 | |
|   local cell = GuiElement.add(parent, GuiFlowV(element.name, self.m_index or 1))
 | |
|   local row1 = GuiElement.add(cell, GuiFrameH("row1"):style("helmod_frame_element_m", color, 1))
 | |
| 
 | |
|   local tooltip = ""
 | |
|   if element.type == "energy" then
 | |
|     tooltip = GuiTooltipEnergy(self.options.tooltip):element(element):withLogistic():withProductInfo():withControlInfo(self.m_with_control_info)
 | |
|   else
 | |
|     tooltip = GuiTooltipElement(self.options.tooltip):element(element):withLogistic():withProductInfo():withControlInfo(self.m_with_control_info)
 | |
|   end
 | |
|   local button = GuiElement.add(row1, GuiButtonSpriteM(unpack(self.name)):sprite(element.type or "entity", element.name):index(Product(element):getTableKey()):caption("X"..Product(element):getElementAmount()):tooltip(tooltip))
 | |
|   GuiElement.infoTemperature(row1, element)
 | |
| 
 | |
|   self:add_infoIcon(button)
 | |
|   self:add_contraintIcon(button)
 | |
|   self:add_mask(button, color)
 | |
| 
 | |
|   if self.m_by_limit then
 | |
|     local row2 = GuiElement.add(cell, GuiFrameH("row2"):style("helmod_frame_element_m", color, 2))
 | |
|     local caption2 = Format.formatNumberElement(element.limit_count)
 | |
|     if display_cell_mod == "by-kilo" then caption2 = Format.formatNumberKilo(element.limit_count) end
 | |
|     if element.type == "energy" then caption2 = Format.formatNumberKilo(element.limit_count, "J") end
 | |
|     GuiElement.add(row2, GuiLabel("label1", element.name):caption(caption2):style("helmod_label_element_m"):tooltip({"helmod_common.total"}))
 | |
|   end
 | |
| 
 | |
|   local row3 = GuiElement.add(cell, GuiFrameH("row3"):style("helmod_frame_element_m", color, 3))
 | |
|   local caption3 = Format.formatNumberElement(element.count)
 | |
|   if display_cell_mod == "by-kilo" then caption3 = Format.formatNumberKilo(element.count) end
 | |
|   if element.type == "energy" then caption3 = Format.formatNumberKilo(element.count, "J") end
 | |
|   GuiElement.add(row3, GuiLabel("label2", element.name):caption(caption3):style("helmod_label_element_m"):tooltip({"helmod_common.total"}))
 | |
| 
 | |
|   return cell
 | |
| end
 | |
| 
 | |
| -------------------------------------------------------------------------------
 | |
| ---@class GuiCellInput
 | |
| GuiCellInput = newclass(GuiCell,function(base,...)
 | |
|   GuiCell.init(base,...)
 | |
| end)
 | |
| 
 | |
| -------------------------------------------------------------------------------
 | |
| ---Set text
 | |
| ---@return GuiCellInput
 | |
| function GuiCellInput:text(text)
 | |
|   self.m_text = text
 | |
|   return self
 | |
| end
 | |
| 
 | |
| -------------------------------------------------------------------------------
 | |
| ---Create cell
 | |
| ---@param parent LuaGuiElement --container for element
 | |
| ---@return LuaGuiElement
 | |
| function GuiCellInput:create(parent)
 | |
|   local cell_name = table.clone(self.name)
 | |
|   table.insert(cell_name, "cell")
 | |
|   local button_name = table.clone(self.name)
 | |
|   table.insert(button_name, "validation")
 | |
|   local cell = GuiElement.add(parent, GuiTable(unpack(cell_name)):column(2))
 | |
|   local input = GuiElement.add(cell, GuiTextField(unpack(self.name)):text(self.m_text):tooltip({"tooltip.formula-allowed"}))
 | |
|   local button = GuiElement.add(cell, GuiButton(unpack(button_name)):sprite("menu", defines.sprites.status_ok.white, defines.sprites.status_ok.black):style("helmod_button_menu"):tooltip({"helmod_button.apply"}))
 | |
|   return cell, input, button
 | |
| end
 | |
| 
 | |
| -------------------------------------------------------------------------------
 | |
| ---@class GuiCellLabel
 | |
| GuiCellLabel = newclass(GuiCell,function(base,...)
 | |
|   GuiCell.init(base,...)
 | |
| end)
 | |
| 
 | |
| -------------------------------------------------------------------------------
 | |
| ---Create cell
 | |
| ---@param parent LuaGuiElement --container for element
 | |
| ---@return LuaGuiElement
 | |
| function GuiCellLabel:create(parent)
 | |
|   local display_cell_mod = User.getModSetting("display_cell_mod")
 | |
|   local cell_name = table.clone(self.name)
 | |
|   table.insert(cell_name, "cell")
 | |
|   local cell = GuiElement.add(parent, GuiTable(unpack(cell_name)))
 | |
| 
 | |
|   if display_cell_mod == "small-text"then
 | |
|     ---small
 | |
|     GuiElement.add(cell, GuiLabel("label1"):caption(self.m_caption):style("helmod_label_icon_text_sm"):tooltip({"helmod_common.total"})).style["minimal_width"] = 45
 | |
|   elseif display_cell_mod == "small-icon" then
 | |
|     ---small
 | |
|     GuiElement.add(cell, GuiLabel("label1"):caption(self.m_caption):style("helmod_label_icon_sm"):tooltip({"helmod_common.total"})).style["minimal_width"] = 45
 | |
|   elseif display_cell_mod == "by-kilo" then
 | |
|     ---by-kilo
 | |
|     GuiElement.add(cell, GuiLabel("label1"):caption(self.m_caption):style("helmod_label_row_right"):tooltip({"helmod_common.total"})).style["minimal_width"] = 50
 | |
|   else
 | |
|     ---default
 | |
|     GuiElement.add(cell, GuiLabel("label1"):caption(self.m_caption):style("helmod_label_row_right"):tooltip({"helmod_common.total"})).style["minimal_width"] = 60
 | |
|   end
 | |
|   return cell
 | |
| end |