mirror of
https://github.com/PHIDIAS0303/ExpCluster.git
synced 2025-12-27 11:35:22 +09:00
Convert tasks, production, tools, and landfill
This commit is contained in:
@@ -4,7 +4,7 @@
|
||||
]]
|
||||
|
||||
local ExpUtil = require("modules/exp_util")
|
||||
local Gui = require("modules/exp_legacy/expcore/gui") --- @dep expcore.gui
|
||||
local Gui = require("modules/exp_gui")
|
||||
local Roles = require("modules.exp_legacy.expcore.roles") --- @dep expcore.roles
|
||||
local Event = require("modules/exp_legacy/utils/event") --- @dep utils.event
|
||||
local Selection = require("modules/exp_legacy/modules/control/selection") --- @dep modules.control.selection
|
||||
@@ -27,10 +27,10 @@ local style = {
|
||||
|
||||
--- Arty label
|
||||
-- @element tool_gui_arty_l
|
||||
local tool_gui_arty_l =
|
||||
Gui.element{
|
||||
local tool_gui_arty_l = Gui.element("tool_gui_arty_l")
|
||||
:draw{
|
||||
type = "label",
|
||||
name = "tool_arty_l",
|
||||
name = Gui.property_from_name,
|
||||
caption = { "tool.artillery" },
|
||||
tooltip = { "tool.artillery-tooltip" },
|
||||
style = "heading_2_label"
|
||||
@@ -40,14 +40,15 @@ local tool_gui_arty_l =
|
||||
|
||||
--- Arty button
|
||||
-- @element tool_gui_arty_b
|
||||
local tool_gui_arty_b =
|
||||
Gui.element{
|
||||
local tool_gui_arty_b = Gui.element("tool_gui_arty_b")
|
||||
:draw{
|
||||
type = "button",
|
||||
name = "tool_arty_b",
|
||||
name = Gui.property_from_name,
|
||||
caption = { "tool.apply" }
|
||||
}:style(
|
||||
style.button
|
||||
):on_click(function(player, _, _)
|
||||
):on_click(function(def, event, element)
|
||||
local player = Gui.get_player(event)
|
||||
if Selection.is_selecting(player, SelectionArtyArea) then
|
||||
Selection.stop(player)
|
||||
|
||||
@@ -59,10 +60,10 @@ local tool_gui_arty_b =
|
||||
|
||||
--- Waterfill label
|
||||
-- @element tool_gui_waterfill_l
|
||||
local tool_gui_waterfill_l =
|
||||
Gui.element{
|
||||
local tool_gui_waterfill_l = Gui.element("tool_gui_waterfill_l")
|
||||
:draw{
|
||||
type = "label",
|
||||
name = "tool_waterfill_l",
|
||||
name = Gui.property_from_name,
|
||||
caption = { "tool.waterfill" },
|
||||
tooltip = { "tool.waterfill-tooltip" },
|
||||
style = "heading_2_label"
|
||||
@@ -72,14 +73,15 @@ local tool_gui_waterfill_l =
|
||||
|
||||
--- Waterfill button
|
||||
-- @element tool_gui_waterfill_b
|
||||
local tool_gui_waterfill_b =
|
||||
Gui.element{
|
||||
local tool_gui_waterfill_b = Gui.element("tool_gui_waterfill_b")
|
||||
:draw{
|
||||
type = "button",
|
||||
name = "tool_waterfill_b",
|
||||
name = Gui.property_from_name,
|
||||
caption = { "tool.apply" }
|
||||
}:style(
|
||||
style.button
|
||||
):on_click(function(player, _, _)
|
||||
):on_click(function(def, event, element)
|
||||
local player = Gui.get_player(event)
|
||||
if Selection.is_selecting(player, SelectionWaterfillArea) then
|
||||
Selection.stop(player)
|
||||
return player.print{ "exp-commands_waterfill.exit" }
|
||||
@@ -93,10 +95,10 @@ local tool_gui_waterfill_b =
|
||||
|
||||
--- Train label
|
||||
-- @element tool_gui_train_l
|
||||
local tool_gui_train_l =
|
||||
Gui.element{
|
||||
local tool_gui_train_l = Gui.element("tool_gui_train_l")
|
||||
:draw{
|
||||
type = "label",
|
||||
name = "tool_train_l",
|
||||
name = Gui.property_from_name,
|
||||
caption = { "tool.train" },
|
||||
tooltip = { "tool.train-tooltip" },
|
||||
style = "heading_2_label"
|
||||
@@ -106,23 +108,24 @@ local tool_gui_train_l =
|
||||
|
||||
--- Train button
|
||||
-- @element tool_gui_train_b
|
||||
local tool_gui_train_b =
|
||||
Gui.element{
|
||||
local tool_gui_train_b = Gui.element("tool_gui_train_b")
|
||||
:draw{
|
||||
type = "button",
|
||||
name = "tool_train_b",
|
||||
name = Gui.property_from_name,
|
||||
caption = { "tool.apply" }
|
||||
}:style(
|
||||
style.button
|
||||
):on_click(function(player, _, _)
|
||||
):on_click(function(def, event, element)
|
||||
local player = Gui.get_player(event)
|
||||
addon_train.manual(player)
|
||||
end)
|
||||
|
||||
--- Research label
|
||||
-- @element tool_gui_research_l
|
||||
local tool_gui_research_l =
|
||||
Gui.element{
|
||||
local tool_gui_research_l = Gui.element("tool_gui_research_l")
|
||||
:draw{
|
||||
type = "label",
|
||||
name = "tool_research_l",
|
||||
name = Gui.property_from_name,
|
||||
caption = { "tool.research" },
|
||||
tooltip = { "tool.research-tooltip" },
|
||||
style = "heading_2_label"
|
||||
@@ -132,18 +135,19 @@ local tool_gui_research_l =
|
||||
|
||||
--- Research button
|
||||
-- @element tool_gui_research_b
|
||||
local tool_gui_research_b =
|
||||
Gui.element{
|
||||
local tool_gui_research_b = Gui.element("tool_gui_research_b")
|
||||
:draw{
|
||||
type = "button",
|
||||
name = "tool_research_b",
|
||||
name = Gui.property_from_name,
|
||||
caption = { "tool.apply" }
|
||||
}:style(
|
||||
style.button
|
||||
):on_click(function(player, _, _)
|
||||
):on_click(function(def, event, element)
|
||||
local player = Gui.get_player(event)
|
||||
local enabled = addon_research.set_auto_research()
|
||||
|
||||
if enabled then
|
||||
addon_research.res_queue(player.force, true)
|
||||
addon_research.res_queue(player.force --[[ @as LuaForce ]], true)
|
||||
end
|
||||
|
||||
local player_name = ExpUtil.format_player_name_locale(player)
|
||||
@@ -152,10 +156,10 @@ local tool_gui_research_b =
|
||||
|
||||
--- Spawn label
|
||||
-- @element tool_gui_spawn_l
|
||||
local tool_gui_spawn_l =
|
||||
Gui.element{
|
||||
local tool_gui_spawn_l = Gui.element("tool_gui_spawn_l")
|
||||
:draw{
|
||||
type = "label",
|
||||
name = "tool_spawn_l",
|
||||
name = Gui.property_from_name,
|
||||
caption = { "tool.spawn" },
|
||||
tooltip = { "tool.spawn-tooltip" },
|
||||
style = "heading_2_label"
|
||||
@@ -165,14 +169,15 @@ local tool_gui_spawn_l =
|
||||
|
||||
--- Spawn button
|
||||
-- @element tool_gui_spawn_b
|
||||
local tool_gui_spawn_b =
|
||||
Gui.element{
|
||||
local tool_gui_spawn_b = Gui.element("tool_gui_spawn_b")
|
||||
:draw{
|
||||
type = "button",
|
||||
name = "tool_spawn_b",
|
||||
name = Gui.property_from_name,
|
||||
caption = { "tool.apply" }
|
||||
}:style(
|
||||
style.button
|
||||
):on_click(function(player, _, _)
|
||||
):on_click(function(def, event, element)
|
||||
local player = Gui.get_player(event)
|
||||
if not player.character
|
||||
or player.character.health <= 0
|
||||
or not ExpUtil.teleport_player(player, game.surfaces.nauvis, { 0, 0 }, "dismount") then
|
||||
@@ -180,9 +185,9 @@ local tool_gui_spawn_b =
|
||||
end
|
||||
end)
|
||||
|
||||
local function tool_perm(player)
|
||||
local frame = Gui.get_left_element(player, tool_container)
|
||||
local disp = frame.container["tool_st"].disp.table
|
||||
local function tool_perm(player, container)
|
||||
container = container or Gui.get_left_element(tool_container, player)
|
||||
local disp = container.frame.tool_st.disp.table
|
||||
local allowed
|
||||
|
||||
allowed = Roles.player_allowed(player, "command/artillery")
|
||||
@@ -208,10 +213,10 @@ end
|
||||
|
||||
--- A vertical flow containing all the tool
|
||||
-- @element tool_set
|
||||
local tool_set =
|
||||
Gui.element(function(_, parent, name)
|
||||
local tool_set = Gui.element("tool_set")
|
||||
:draw(function(_, parent, name)
|
||||
local tool_set = parent.add{ type = "flow", direction = "vertical", name = name }
|
||||
local disp = Gui.scroll_table(tool_set, 240, 2, "disp")
|
||||
local disp = Gui.elements.scroll_table(tool_set, 240, 2, "disp")
|
||||
|
||||
tool_gui_arty_l(disp)
|
||||
tool_gui_arty_b(disp)
|
||||
@@ -233,25 +238,29 @@ local tool_set =
|
||||
|
||||
--- The main container for the tool gui
|
||||
-- @element tool_container
|
||||
tool_container =
|
||||
Gui.element(function(definition, parent)
|
||||
local player = Gui.get_player_from_element(parent)
|
||||
local container = Gui.container(parent, definition.name, 240)
|
||||
tool_container = Gui.element("tool_container")
|
||||
:draw(function(def, parent)
|
||||
local player = Gui.get_player(parent)
|
||||
local container = Gui.elements.container(parent, 240)
|
||||
|
||||
tool_set(container, "tool_st")
|
||||
|
||||
tool_perm(player)
|
||||
tool_perm(player, container.parent)
|
||||
|
||||
return container.parent
|
||||
end)
|
||||
:static_name(Gui.unique_static_name)
|
||||
:add_to_left_flow()
|
||||
|
||||
--- Button on the top flow used to toggle the tool container
|
||||
-- @element toggle_left_element
|
||||
Gui.left_toolbar_button("item/repair-pack", { "tool.main-tooltip" }, tool_container, function(player)
|
||||
return Roles.player_allowed(player, "gui/tool")
|
||||
end)
|
||||
--- Add the element to the left flow with a toolbar button
|
||||
Gui.add_left_element(tool_container, false)
|
||||
Gui.create_toolbar_button{
|
||||
name = "tool_toggle",
|
||||
left_element = tool_container,
|
||||
sprite = "item/repair-pack",
|
||||
tooltip = { "tool.main-tooltip" },
|
||||
visible = function(player, element)
|
||||
return Roles.player_allowed(player, "gui/tool")
|
||||
end
|
||||
}
|
||||
|
||||
Event.add(Roles.events.on_role_assigned, function(event)
|
||||
tool_perm(game.players[event.player_index])
|
||||
|
||||
Reference in New Issue
Block a user