520 lines
24 KiB
Lua
520 lines
24 KiB
Lua
-------------------------------------------------------------------------------
|
|
---Class to build product edition dialog
|
|
---@class PreferenceEdition
|
|
PreferenceEdition = newclass(Form)
|
|
|
|
-------------------------------------------------------------------------------
|
|
---On initialization
|
|
function PreferenceEdition:onInit()
|
|
self.panelCaption = ({"helmod_preferences-edition-panel.title"})
|
|
end
|
|
|
|
-------------------------------------------------------------------------------
|
|
---On Style
|
|
---@param styles table
|
|
---@param width_main number
|
|
---@param height_main number
|
|
function PreferenceEdition:onStyle(styles, width_main, height_main)
|
|
styles.flow_panel = {
|
|
minimal_height = 500,
|
|
maximal_height = math.max(height_main,800),
|
|
}
|
|
end
|
|
|
|
-------------------------------------------------------------------------------
|
|
---On Bind Dispatcher
|
|
function PreferenceEdition:onBind()
|
|
Dispatcher:bind("on_gui_preference", self, self.updateFluidsLogistic)
|
|
Dispatcher:bind("on_gui_preference", self, self.updateItemsLogistic)
|
|
Dispatcher:bind("on_gui_preference", self, self.updatePriorityModule)
|
|
Dispatcher:bind("on_gui_preference", self, self.updateUI)
|
|
end
|
|
|
|
-------------------------------------------------------------------------------
|
|
---On scroll width
|
|
---@return number
|
|
function PreferenceEdition:getSrollWidth()
|
|
local number_column = User.getPreferenceSetting("preference_number_column")
|
|
return 38 * (number_column or 6) + 20
|
|
end
|
|
|
|
-------------------------------------------------------------------------------
|
|
---On scroll height
|
|
---@return number
|
|
function PreferenceEdition:getSrollHeight()
|
|
local number_line = User.getPreferenceSetting("preference_number_line")
|
|
return 38 * (number_line or 3) + 4
|
|
end
|
|
|
|
-------------------------------------------------------------------------------
|
|
---Get or create preference panel
|
|
---@return LuaGuiElement
|
|
function PreferenceEdition:getPrefrencePanel()
|
|
local panel = self:getFrameTabbedPanel("preference_panel")
|
|
panel.style.minimal_width = 600
|
|
panel.style.horizontally_stretchable = true
|
|
panel.style.vertically_stretchable = true
|
|
return panel
|
|
end
|
|
|
|
-------------------------------------------------------------------------------
|
|
---Get or create tab panel
|
|
---@return LuaGuiElement
|
|
function PreferenceEdition:getTabPane()
|
|
local content_panel = self:getPrefrencePanel()
|
|
local panel_name = "tab_panel"
|
|
if content_panel[panel_name] ~= nil and content_panel[panel_name].valid then
|
|
return content_panel[panel_name]
|
|
end
|
|
local panel = GuiElement.add(content_panel, GuiTabPane(panel_name):style("helmod_tabbed_pane"))
|
|
return panel
|
|
end
|
|
|
|
-------------------------------------------------------------------------------
|
|
---Set active tab panel
|
|
---@param tab_name string
|
|
function PreferenceEdition:setActiveTab(tab_name)
|
|
local content_panel = self:getTabPane()
|
|
for index,tab in pairs(content_panel.tabs) do
|
|
if string.find(tab.content.name,tab_name) then
|
|
content_panel.selected_tab_index = index
|
|
end
|
|
end
|
|
end
|
|
|
|
-------------------------------------------------------------------------------
|
|
---Get or create general tab panel
|
|
---@return LuaGuiElement
|
|
function PreferenceEdition:getGeneralTab()
|
|
local content_panel = self:getTabPane()
|
|
local panel_name = "general_tab_panel"
|
|
local scroll_name = "general_scroll"
|
|
if content_panel[panel_name] ~= nil and content_panel[panel_name].valid then
|
|
return content_panel[scroll_name]
|
|
end
|
|
local tab_panel = GuiElement.add(content_panel, GuiTab(panel_name):caption({"helmod_label.general"}))
|
|
local scroll_panel = GuiElement.add(content_panel, GuiFlowV(scroll_name))
|
|
content_panel.add_tab(tab_panel,scroll_panel)
|
|
scroll_panel.style.horizontally_stretchable = true
|
|
scroll_panel.style.vertically_stretchable = true
|
|
return scroll_panel
|
|
end
|
|
|
|
-------------------------------------------------------------------------------
|
|
---Get or create UI tab panel
|
|
---@return LuaGuiElement
|
|
function PreferenceEdition:getUITab()
|
|
local content_panel = self:getTabPane()
|
|
local panel_name = "ui_tab_panel"
|
|
local scroll_name = "ui_scroll"
|
|
if content_panel[panel_name] ~= nil and content_panel[panel_name].valid then
|
|
return content_panel[scroll_name]
|
|
end
|
|
local tab_panel = GuiElement.add(content_panel, GuiTab(panel_name):caption({"helmod_label.ui"}))
|
|
local scroll_panel = GuiElement.add(content_panel, GuiFlowV(scroll_name))
|
|
content_panel.add_tab(tab_panel,scroll_panel)
|
|
scroll_panel.style.horizontally_stretchable = true
|
|
scroll_panel.style.vertically_stretchable = true
|
|
return scroll_panel
|
|
end
|
|
|
|
-------------------------------------------------------------------------------
|
|
---Get or create priority module tab panel
|
|
---@return LuaGuiElement
|
|
function PreferenceEdition:getPriorityModuleTab()
|
|
local content_panel = self:getTabPane()
|
|
local panel_name = "priority_module_tab_panel"
|
|
local scroll_name = "priority_module_scroll"
|
|
if content_panel[panel_name] ~= nil and content_panel[panel_name].valid then
|
|
return content_panel[scroll_name]
|
|
end
|
|
local tab_panel = GuiElement.add(content_panel, GuiTab(panel_name):caption({"helmod_label.priority-modules"}))
|
|
local scroll_panel = GuiElement.add(content_panel, GuiFlowV(scroll_name))
|
|
content_panel.add_tab(tab_panel,scroll_panel)
|
|
scroll_panel.style.horizontally_stretchable = true
|
|
scroll_panel.style.vertically_stretchable = true
|
|
return scroll_panel
|
|
end
|
|
|
|
-------------------------------------------------------------------------------
|
|
---Get or create solid container tab panel
|
|
---@return LuaGuiElement
|
|
function PreferenceEdition:getSolidContainerTab()
|
|
local content_panel = self:getTabPane()
|
|
local panel_name = "solid_container_tab_panel"
|
|
local scroll_name = "solid_container_scroll"
|
|
if content_panel[panel_name] ~= nil and content_panel[panel_name].valid then
|
|
return content_panel[scroll_name]
|
|
end
|
|
local tab_panel = GuiElement.add(content_panel, GuiTab(panel_name):caption({"helmod_preferences-edition-panel.items-logistic-default"}))
|
|
local scroll_panel = GuiElement.add(content_panel, GuiFlowV(scroll_name))
|
|
content_panel.add_tab(tab_panel,scroll_panel)
|
|
scroll_panel.style.horizontally_stretchable = true
|
|
scroll_panel.style.vertically_stretchable = true
|
|
return scroll_panel
|
|
end
|
|
|
|
-------------------------------------------------------------------------------
|
|
---Get or create fluid container tab panel
|
|
---@return LuaGuiElement
|
|
function PreferenceEdition:getFluidContainerTab()
|
|
local content_panel = self:getTabPane()
|
|
local panel_name = "fluid_container_tab_panel"
|
|
local scroll_name = "fluid_container_scroll"
|
|
if content_panel[panel_name] ~= nil and content_panel[panel_name].valid then
|
|
return content_panel[scroll_name]
|
|
end
|
|
local tab_panel = GuiElement.add(content_panel, GuiTab(panel_name):caption({"helmod_preferences-edition-panel.fluids-logistic-default"}))
|
|
local scroll_panel = GuiElement.add(content_panel, GuiFlowV(scroll_name))
|
|
content_panel.add_tab(tab_panel,scroll_panel)
|
|
scroll_panel.style.horizontally_stretchable = true
|
|
scroll_panel.style.vertically_stretchable = true
|
|
return scroll_panel
|
|
end
|
|
|
|
-------------------------------------------------------------------------------
|
|
---On update
|
|
---@param event LuaEvent
|
|
function PreferenceEdition:onUpdate(event)
|
|
self:updateGeneral(event)
|
|
self:updateUI(event)
|
|
self:updatePriorityModule(event)
|
|
self:updateItemsLogistic(event)
|
|
self:updateFluidsLogistic(event)
|
|
if event.action == "OPEN" then
|
|
self:setActiveTab(event.item1)
|
|
end
|
|
end
|
|
|
|
-------------------------------------------------------------------------------
|
|
---Update ui
|
|
---@param event LuaEvent
|
|
function PreferenceEdition:updateUI(event)
|
|
local container_panel = self:getUITab()
|
|
container_panel.clear()
|
|
|
|
GuiElement.add(container_panel, GuiLabel("fluid_container_label"):caption({"helmod_label.ui"}):style("helmod_label_title_frame"))
|
|
|
|
local options_table = GuiElement.add(container_panel, GuiTable("options-table"):column(2))
|
|
options_table.vertical_centering = false
|
|
options_table.style.horizontal_spacing=10
|
|
options_table.style.vertical_spacing=5
|
|
|
|
for preference_type,preference in pairs(defines.constant.preferences) do
|
|
if preference.group == "ui" then
|
|
GuiElement.add(options_table, GuiLabel(self.classname, "label", preference_type):caption(preference.localised_name):tooltip(preference.localised_description))
|
|
local default_preference_type = User.getPreferenceSetting(preference_type)
|
|
if preference.allowed_values then
|
|
GuiElement.add(options_table, GuiDropDown(self.classname, "preference-setting", preference_type):items(preference.allowed_values, default_preference_type))
|
|
else
|
|
if preference.type == "bool-setting" then
|
|
GuiElement.add(options_table, GuiCheckBox(self.classname, "preference-setting", preference_type):state(default_preference_type))
|
|
end
|
|
if preference.type == "int-setting" or preference.type == "string-setting" then
|
|
local tooltip = nil
|
|
if preference.minimum_value then
|
|
tooltip = {"", {"helmod_pref_settings.range-value"}, "[",preference.minimum_value,",",preference.maximum_value,"]"}
|
|
end
|
|
GuiElement.add(options_table, GuiTextField(self.classname, "preference-setting", preference_type):text(default_preference_type):tooltip(tooltip))
|
|
end
|
|
end
|
|
if preference.items ~= nil then
|
|
for preference_name,checked in pairs(preference.items) do
|
|
local view = Controller:getView(preference_name)
|
|
if view ~= nil then
|
|
local localised_name = view.panelCaption
|
|
local default_preference_name = User.getPreferenceSetting(preference_type, preference_name)
|
|
GuiElement.add(options_table, GuiLabel(self.classname, "label", preference_type, preference_name):caption({"", "\t\t\t\t", helmod_tag.color.gold, localised_name, helmod_tag.color.close}))
|
|
local checkbox = GuiElement.add(options_table, GuiCheckBox(self.classname, "preference-setting", preference_type, preference_name):state(default_preference_name))
|
|
if default_preference_type ~= true then
|
|
checkbox.enabled = false
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
-------------------------------------------------------------------------------
|
|
---Update general
|
|
---@param event LuaEvent
|
|
function PreferenceEdition:updateGeneral(event)
|
|
local container_panel = self:getGeneralTab()
|
|
container_panel.clear()
|
|
|
|
GuiElement.add(container_panel, GuiLabel("fluid_container_label"):caption({"helmod_label.general"}):style("helmod_label_title_frame"))
|
|
|
|
local options_table = GuiElement.add(container_panel, GuiTable("options-table"):column(2))
|
|
options_table.vertical_centering = false
|
|
options_table.style.horizontal_spacing=10
|
|
options_table.style.vertical_spacing=5
|
|
|
|
for preference_name,preference in pairs(defines.constant.preferences) do
|
|
if preference.group == "general" then
|
|
GuiElement.add(options_table, GuiLabel(self.classname, "label", preference_name):caption(preference.localised_name):tooltip(preference.localised_description))
|
|
local default_preference = User.getPreferenceSetting(preference_name)
|
|
if preference.allowed_values then
|
|
GuiElement.add(options_table, GuiDropDown(self.classname, "preference-setting", preference_name):items(preference.allowed_values, default_preference))
|
|
else
|
|
if preference.type == "bool-setting" then
|
|
GuiElement.add(options_table, GuiCheckBox(self.classname, "preference-setting", preference_name):state(default_preference))
|
|
end
|
|
if preference.type == "int-setting" or preference.type == "float-setting" or preference.type == "string-setting" then
|
|
GuiElement.add(options_table, GuiTextField(self.classname, "preference-setting", preference_name):text(default_preference))
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
-------------------------------------------------------------------------------
|
|
---Update priority module
|
|
---@param event LuaEvent
|
|
function PreferenceEdition:updatePriorityModule(event)
|
|
local number_column = User.getPreferenceSetting("preference_number_column")
|
|
local priority_module_panel = self:getPriorityModuleTab()
|
|
priority_module_panel.clear()
|
|
|
|
GuiElement.add(priority_module_panel, GuiLabel("priority_module_label"):caption({"helmod_label.priority-modules"}):style("helmod_label_title_frame"))
|
|
|
|
local configuration_table_panel = GuiElement.add(priority_module_panel, GuiTable("configuration-table"):column(2))
|
|
configuration_table_panel.vertical_centering = false
|
|
|
|
local configuration_panel = GuiElement.add(configuration_table_panel, GuiFlowV("configuration"))
|
|
---configuration select
|
|
local tool_panel = GuiElement.add(configuration_panel, GuiFlowH("tool"))
|
|
tool_panel.style.width = 200
|
|
local conf_table_panel = GuiElement.add(tool_panel, GuiTable("configuration-table"):column(6))
|
|
local configuration_priority = User.getParameter("configuration_priority") or 1
|
|
local priority_modules = User.getParameter("priority_modules") or {}
|
|
local button_style = "helmod_button_bold"
|
|
for i, priority_module in pairs(priority_modules) do
|
|
local button_style2 = button_style
|
|
if configuration_priority == i then button_style2 = "helmod_button_bold_selected" end
|
|
GuiElement.add(conf_table_panel, GuiButton(self.classname, "configuration-priority-select", i):caption(i):style(button_style2))
|
|
end
|
|
GuiElement.add(conf_table_panel, GuiButton(self.classname, "configuration-priority-select", "new"):caption("+"):style(button_style))
|
|
GuiElement.add(conf_table_panel, GuiButton(self.classname, "configuration-priority-remove", "new"):caption("-"):style(button_style))
|
|
---module priority
|
|
local priority_table_panel = GuiElement.add(configuration_panel, GuiTable("module-priority-table"):column(3))
|
|
if priority_modules[configuration_priority] ~= nil then
|
|
for index, element in pairs(priority_modules[configuration_priority]) do
|
|
local tooltip = GuiTooltipModule("tooltip.add-module"):element({type="item", name=element.name})
|
|
GuiElement.add(priority_table_panel, GuiButtonSprite(self.classname, "do-nothing", index):sprite("entity", element.name):tooltip(tooltip))
|
|
GuiElement.add(priority_table_panel, GuiTextField(self.classname, "priority-module-update", index):text(element.value))
|
|
GuiElement.add(priority_table_panel, GuiButtonSprite(self.classname, "priority-module-remove", index):sprite("menu", defines.sprites.close.black, defines.sprites.close.black):style("helmod_button_menu_sm_red"):tooltip(tooltip))
|
|
end
|
|
end
|
|
|
|
---module selector
|
|
local module_scroll = GuiElement.add(configuration_table_panel, GuiScroll("module-selector-scroll"))
|
|
module_scroll.style.maximal_height = self:getSrollHeight()
|
|
module_scroll.style.minimal_width = self:getSrollWidth()
|
|
local module_table_panel = GuiElement.add(module_scroll, GuiTable("module-selector-table"):column(number_column))
|
|
for k, element in pairs(Player.getModules()) do
|
|
local tooltip = GuiTooltipModule("tooltip.add-module"):element({type="item", name=element.name})
|
|
GuiElement.add(module_table_panel, GuiButtonSelectSprite(self.classname, "priority-module-select"):sprite("entity", element.name):tooltip(tooltip))
|
|
end
|
|
end
|
|
|
|
-------------------------------------------------------------------------------
|
|
---Update items logistic
|
|
---@param event LuaEvent
|
|
function PreferenceEdition:updateItemsLogistic(event)
|
|
local number_column = User.getPreferenceSetting("preference_number_column")
|
|
local container_panel = self:getSolidContainerTab()
|
|
container_panel.clear()
|
|
|
|
GuiElement.add(container_panel, GuiLabel("solid_container_label"):caption({"helmod_preferences-edition-panel.items-logistic-default"}):style("helmod_label_title_frame"))
|
|
|
|
local options_table = GuiElement.add(container_panel, GuiTable("options-table"):column(2))
|
|
options_table.vertical_centering = false
|
|
options_table.style.horizontal_spacing=10
|
|
options_table.style.vertical_spacing=10
|
|
|
|
for _,type in pairs({"inserter", "belt", "container", "transport"}) do
|
|
local type_label = GuiElement.add(options_table, GuiLabel(string.format("%s-label", type)):caption({string.format("helmod_preferences-edition-panel.items-logistic-%s", type)}))
|
|
type_label.style.width = 200
|
|
|
|
local scroll_panel = GuiElement.add(options_table, GuiScroll(string.format("%s-selector-scroll", type)))
|
|
scroll_panel.style.maximal_height = self:getSrollHeight()
|
|
scroll_panel.style.minimal_width = self:getSrollWidth()
|
|
|
|
local type_table_panel = GuiElement.add(scroll_panel, GuiTable(string.format("%s-selector-table", type)):column(number_column))
|
|
local item_logistic = Player.getDefaultItemLogistic(type)
|
|
for key, entity in pairs(Player.getItemsLogistic(type)) do
|
|
local color = nil
|
|
if entity.name == item_logistic then color = "green" end
|
|
local button = GuiElement.add(type_table_panel, GuiButtonSelectSprite(self.classname, "items-logistic-select", type):choose("entity", entity.name):color(color))
|
|
button.locked = true
|
|
end
|
|
end
|
|
end
|
|
|
|
-------------------------------------------------------------------------------
|
|
---Update fluids logistic
|
|
---@param event LuaEvent
|
|
function PreferenceEdition:updateFluidsLogistic(event)
|
|
local number_column = User.getPreferenceSetting("preference_number_column")
|
|
local container_panel = self:getFluidContainerTab()
|
|
container_panel.clear()
|
|
|
|
GuiElement.add(container_panel, GuiLabel("fluid_container_label"):caption({"helmod_preferences-edition-panel.fluids-logistic-default"}):style("helmod_label_title_frame"))
|
|
|
|
local options_table = GuiElement.add(container_panel, GuiTable("options-table"):column(2))
|
|
options_table.vertical_centering = false
|
|
options_table.style.horizontal_spacing=10
|
|
options_table.style.vertical_spacing=10
|
|
|
|
local type_label = GuiElement.add(options_table, GuiLabel("maximum-flow"):caption({"helmod_preferences-edition-panel.fluids-logistic-maximum-flow"}))
|
|
type_label.style.width = 200
|
|
local fluids_logistic_maximum_flow = User.getParameter("fluids_logistic_maximum_flow")
|
|
local default_flow = nil
|
|
local items = {}
|
|
for _,element in pairs(defines.constant.logistic_flow) do
|
|
local flow = {"helmod_preferences-edition-panel.fluids-logistic-flow", element.pipe, element.flow}
|
|
table.insert(items, flow)
|
|
if fluids_logistic_maximum_flow ~= nil and fluids_logistic_maximum_flow == element.flow or element.flow == defines.constant.logistic_flow_default then
|
|
default_flow = flow
|
|
end
|
|
end
|
|
GuiElement.add(options_table, GuiDropDown(self.classname, "fluids-logistic-flow"):items(items, default_flow))
|
|
|
|
for _,type in pairs({"pipe", "container", "transport"}) do
|
|
local type_label = GuiElement.add(options_table, GuiLabel(string.format("%s-label", type)):caption({string.format("helmod_preferences-edition-panel.fluids-logistic-%s", type)}))
|
|
type_label.style.width = 200
|
|
|
|
local scroll_panel = GuiElement.add(options_table, GuiScroll(string.format("%s-selector-scroll", type)))
|
|
scroll_panel.style.maximal_height = self:getSrollHeight()
|
|
scroll_panel.style.minimal_width = self:getSrollWidth()
|
|
local type_table_panel = GuiElement.add(scroll_panel, GuiTable(string.format("%s-selector-table", type)):column(number_column))
|
|
local fluid_logistic = Player.getDefaultFluidLogistic(type)
|
|
for key, entity in pairs(Player.getFluidsLogistic(type)) do
|
|
local color = nil
|
|
if entity.name == fluid_logistic then color = "green" end
|
|
local button = GuiElement.add(type_table_panel, GuiButtonSelectSprite(self.classname, "fluids-logistic-select", type):choose("entity", entity.name):color(color))
|
|
button.locked = true
|
|
end
|
|
end
|
|
end
|
|
|
|
-------------------------------------------------------------------------------
|
|
---On event
|
|
---@param event LuaEvent
|
|
function PreferenceEdition:onEvent(event)
|
|
if event.action == "preference-setting" then
|
|
local type = event.item1
|
|
local name = event.item2
|
|
if name == "" then
|
|
local preference = defines.constant.preferences[type]
|
|
if preference ~= nil then
|
|
if preference.allowed_values then
|
|
local index = event.element.selected_index
|
|
User.setPreference(type, nil,preference.allowed_values[index])
|
|
else
|
|
if preference.type == "bool-setting" then
|
|
User.setPreference(type, nil, event.element.state)
|
|
end
|
|
if preference.type == "int-setting" or preference.type == "float-setting" then
|
|
local value = tonumber(event.element.text or preference.default_value)
|
|
User.setPreference(type, nil, value)
|
|
end
|
|
if preference.type == "string-setting" then
|
|
User.setPreference(type, nil, event.element.text or preference.default_value)
|
|
end
|
|
end
|
|
Controller:send("on_gui_refresh", event)
|
|
Controller:send("on_gui_preference", event)
|
|
end
|
|
else
|
|
local preference = defines.constant.preferences[type]
|
|
if preference ~= nil then
|
|
User.setPreference(type, name, event.element.state)
|
|
end
|
|
Controller:send("on_gui_refresh", event)
|
|
Controller:send("on_gui_preference", event)
|
|
end
|
|
end
|
|
|
|
if event.action == "configuration-priority-select" then
|
|
if event.item1 == "new" then
|
|
local priority_modules = User.getParameter("priority_modules") or {}
|
|
table.insert(priority_modules, {})
|
|
User.setParameter("configuration_priority", table.size(priority_modules))
|
|
User.setParameter("priority_modules", priority_modules)
|
|
else
|
|
User.setParameter("configuration_priority", tonumber(event.item1))
|
|
end
|
|
self:updatePriorityModule(event)
|
|
Controller:send("on_gui_priority_module", event)
|
|
end
|
|
|
|
if event.action == "configuration-priority-remove" then
|
|
local priority_modules = User.getParameter("priority_modules") or {}
|
|
local configuration_priority = User.getParameter("configuration_priority")
|
|
table.remove(priority_modules, configuration_priority)
|
|
User.setParameter("configuration_priority", table.size(priority_modules))
|
|
User.setParameter("priority_modules", priority_modules)
|
|
self:updatePriorityModule(event)
|
|
Controller:send("on_gui_priority_module", event)
|
|
end
|
|
|
|
if event.action == "priority-module-select" then
|
|
local configuration_priority = User.getParameter("configuration_priority") or 1
|
|
local priority_modules = User.getParameter("priority_modules") or {}
|
|
if table.size(priority_modules) == 0 then
|
|
table.insert(priority_modules, {{name=event.item1, value=1}})
|
|
User.setParameter("configuration_priority", 1)
|
|
User.setParameter("priority_modules", priority_modules)
|
|
else
|
|
if priority_modules[configuration_priority] ~= nil then
|
|
table.insert(priority_modules[configuration_priority], {name=event.item1, value=1})
|
|
end
|
|
end
|
|
self:updatePriorityModule(event)
|
|
Controller:send("on_gui_priority_module", event)
|
|
end
|
|
|
|
if event.action == "priority-module-update" then
|
|
local configuration_priority = User.getParameter("configuration_priority")
|
|
local priority_modules = User.getParameter("priority_modules")
|
|
local priority_index = tonumber(event.item1)
|
|
if priority_modules ~= nil and priority_modules[configuration_priority] ~= nil and priority_modules[configuration_priority][priority_index] ~= nil then
|
|
local text = event.element.text
|
|
priority_modules[configuration_priority][priority_index].value = tonumber(text)
|
|
end
|
|
self:updatePriorityModule(event)
|
|
Controller:send("on_gui_priority_module", event)
|
|
end
|
|
|
|
if event.action == "priority-module-remove" then
|
|
local configuration_priority = User.getParameter("configuration_priority")
|
|
local priority_modules = User.getParameter("priority_modules")
|
|
local priority_index = tonumber(event.item1)
|
|
if priority_modules ~= nil and priority_modules[configuration_priority] ~= nil and priority_modules[configuration_priority][priority_index] ~= nil then
|
|
table.remove(priority_modules[configuration_priority], priority_index)
|
|
end
|
|
self:updatePriorityModule(event)
|
|
Controller:send("on_gui_priority_module", event)
|
|
end
|
|
|
|
if event.action == "items-logistic-select" then
|
|
User.setParameter(string.format("items_logistic_%s", event.item1), event.item2)
|
|
self:updateItemsLogistic(event)
|
|
Controller:send("on_gui_refresh", event)
|
|
end
|
|
|
|
if event.action == "fluids-logistic-select" then
|
|
User.setParameter(string.format("fluids_logistic_%s", event.item1), event.item2)
|
|
self:updateFluidsLogistic(event)
|
|
Controller:send("on_gui_refresh", event)
|
|
end
|
|
|
|
if event.action == "fluids-logistic-flow" then
|
|
local index = event.element.selected_index
|
|
local fluids_logistic_maximum_flow = defines.constant.logistic_flow[index].flow
|
|
User.setParameter("fluids_logistic_maximum_flow", fluids_logistic_maximum_flow)
|
|
Controller:send("on_gui_refresh", event)
|
|
end
|
|
|
|
end |