From e64824d3a94198b324facaf0fd1b0ec84f3bad7f Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Sun, 5 Jan 2025 03:20:48 +0900 Subject: [PATCH 1/2] Change names of logistics containers (#346) * Update vlayer.lua * Change all other occurrences --------- Co-authored-by: Cooldude2606 <25043174+Cooldude2606@users.noreply.github.com> --- exp_legacy/module/config/personal_logistic.lua | 10 +++++----- exp_legacy/module/config/preset_player_quickbar.lua | 2 +- exp_legacy/module/modules/control/vlayer.lua | 10 +++++----- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/exp_legacy/module/config/personal_logistic.lua b/exp_legacy/module/config/personal_logistic.lua index 59a1e947..d8e4e7bb 100644 --- a/exp_legacy/module/config/personal_logistic.lua +++ b/exp_legacy/module/config/personal_logistic.lua @@ -554,7 +554,7 @@ return { min = 50, max = 100, }, - ["logistic-chest-passive-provider"] = { + ["passive-provider-chest"] = { key = 54, upgrade_of = nil, type = "chest", @@ -562,7 +562,7 @@ return { min = 50, max = 50, }, - ["logistic-chest-storage"] = { + ["storage-chest"] = { key = 55, upgrade_of = nil, type = "chest", @@ -570,7 +570,7 @@ return { min = 50, max = 50, }, - ["logistic-chest-requester"] = { + ["requester-chest"] = { key = 56, upgrade_of = nil, type = "chest", @@ -578,7 +578,7 @@ return { min = 50, max = 50, }, - ["logistic-chest-buffer"] = { + ["buffer-chest"] = { key = 57, upgrade_of = nil, type = "chest", @@ -586,7 +586,7 @@ return { min = 50, max = 50, }, - ["logistic-chest-active-provider"] = { + ["active-provider-chest"] = { key = 58, upgrade_of = nil, type = "chest", diff --git a/exp_legacy/module/config/preset_player_quickbar.lua b/exp_legacy/module/config/preset_player_quickbar.lua index 47657ebe..2e5f80f4 100644 --- a/exp_legacy/module/config/preset_player_quickbar.lua +++ b/exp_legacy/module/config/preset_player_quickbar.lua @@ -2,5 +2,5 @@ -- @config Preset-Player-Quickbar return { - dangerarea = { "transport-belt", "underground-belt", "splitter", "pipe", "pipe-to-ground", "inserter", "fast-inserter", "long-handed-inserter", "stack-inserter", "roboport", "small-electric-pole", "medium-electric-pole", "big-electric-pole", "substation", nil, "rail", "rail-signal", "rail-chain-signal", "landfill", "cliff-explosives", "fast-transport-belt", "fast-underground-belt", "fast-splitter", "pipe", "pipe-to-ground", "fast-inserter", "long-handed-inserter", "stack-inserter", "stack-filter-inserter", "roboport", [81] = "red-wire", [82] = "green-wire", [83] = "arithmetic-combinator", [84] = "decider-combinator", [85] = "constant-combinator", [86] = "power-switch", [91] = "logistic-chest-active-provider", [92] = "logistic-chest-passive-provider", [93] = "logistic-chest-storage", [94] = "logistic-chest-buffer", [95] = "logistic-chest-requester", [96] = "roboport" }, + dangerarea = { "transport-belt", "underground-belt", "splitter", "pipe", "pipe-to-ground", "inserter", "fast-inserter", "long-handed-inserter", "stack-inserter", "roboport", "small-electric-pole", "medium-electric-pole", "big-electric-pole", "substation", nil, "rail", "rail-signal", "rail-chain-signal", "landfill", "cliff-explosives", "fast-transport-belt", "fast-underground-belt", "fast-splitter", "pipe", "pipe-to-ground", "fast-inserter", "long-handed-inserter", "stack-inserter", "stack-filter-inserter", "roboport", [81] = "red-wire", [82] = "green-wire", [83] = "arithmetic-combinator", [84] = "decider-combinator", [85] = "constant-combinator", [86] = "power-switch", [91] = "active-provider-chest", [92] = "passive-provider-chest", [93] = "storage-chest", [94] = "buffer-chest", [95] = "requester-chest", [96] = "roboport" }, } diff --git a/exp_legacy/module/modules/control/vlayer.lua b/exp_legacy/module/modules/control/vlayer.lua index c63a3e41..356967ad 100644 --- a/exp_legacy/module/modules/control/vlayer.lua +++ b/exp_legacy/module/modules/control/vlayer.lua @@ -332,7 +332,7 @@ end -- @tparam[opt] LuaPlayer player The player to show as the last user of the interface -- @treturn LuaEntity The entity that was created for the interface function vlayer.create_input_interface(surface, position, circuit, last_user) - local interface = surface.create_entity{ name = "logistic-chest-storage", position = position, force = "neutral" } + local interface = surface.create_entity{ name = "storage-chest", position = position, force = "neutral" } table.insert(vlayer_data.entity_interfaces.storage_input, interface) if last_user then @@ -391,7 +391,7 @@ end -- @tparam[opt] LuaPlayer player The player to show as the last user of the interface -- @treturn LuaEntity The entity that was created for the interface function vlayer.create_output_interface(surface, position, circuit, last_user) - local interface = surface.create_entity{ name = "logistic-chest-requester", position = position, force = "neutral" } + local interface = surface.create_entity{ name = "requester-chest", position = position, force = "neutral" } table.insert(vlayer_data.entity_interfaces.storage_output, interface) if last_user then @@ -682,7 +682,7 @@ end -- @treturn MapPosition The position the interface was at, or nil if no interface was found function vlayer.remove_interface(surface, position) local entities = surface.find_entities_filtered{ - name = { "logistic-chest-storage", "logistic-chest-requester", "constant-combinator", "electric-energy-interface" }, + name = { "storage-chest", "requester-chest", "constant-combinator", "electric-energy-interface" }, force = "neutral", position = position, radius = 2, @@ -699,7 +699,7 @@ function vlayer.remove_interface(surface, position) local pos = interface.position -- Return the type of interface removed and do some clean up - if name == "logistic-chest-storage" then + if name == "storage-chest" then local inventory = assert(interface.get_inventory(defines.inventory.chest)) ExpUtil.transfer_inventory_to_surface{ inventory = inventory, @@ -711,7 +711,7 @@ function vlayer.remove_interface(surface, position) interface.destroy() return "storage-input", pos - elseif name == "logistic-chest-requester" then + elseif name == "requester-chest" then local inventory = assert(interface.get_inventory(defines.inventory.chest)) ExpUtil.transfer_inventory_to_surface{ inventory = inventory, From 47b57a9c51657591ed8dc53097fc5965a22fb587 Mon Sep 17 00:00:00 2001 From: Cooldude2606 <25043174+Cooldude2606@users.noreply.github.com> Date: Sat, 4 Jan 2025 18:44:35 +0000 Subject: [PATCH 2/2] Fix decon planner selection edge case --- exp_legacy/module/modules/control/selection.lua | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/exp_legacy/module/modules/control/selection.lua b/exp_legacy/module/modules/control/selection.lua index 7c026292..cb08e3a6 100644 --- a/exp_legacy/module/modules/control/selection.lua +++ b/exp_legacy/module/modules/control/selection.lua @@ -30,13 +30,17 @@ Storage.register({ selections = tbl.selections end) +local function has_selection_tool_in_hand(player) + return player.cursor_stack and player.cursor_stack.valid_for_read and player.cursor_stack.name == "selection-tool" +end + --- Let a player select an area by providing a selection planner --- @param player LuaPlayer The player to place into selection mode --- @param selection_name string The name of the selection to start, used with on_selection --- @param single_use boolean? When true the selection will stop after first use --- @param ... any Arguments to pass to the selection handler function Selection.start(player, selection_name, single_use, ...) - if not player or not player.valid then return end + if not player or not player.valid or not player.cursor_stack then return end if selections[player.index] then -- Raise the end event if a selection was already in progress script.raise_event(Selection.events.on_player_selection_end, { @@ -64,7 +68,7 @@ function Selection.start(player, selection_name, single_use, ...) }) -- Give a selection tool if one is not in use - if player.cursor_stack.is_selection_tool then return end + if has_selection_tool_in_hand(player) then return end player.clear_cursor() -- Clear the current item player.cursor_stack.set_stack(selection_tool) @@ -96,7 +100,7 @@ function Selection.stop(player) }) -- Remove the selection tool - if player.cursor_stack.is_selection_tool then + if has_selection_tool_in_hand(player) then player.cursor_stack.clear() else player.remove_item(selection_tool) @@ -124,7 +128,7 @@ function Selection.is_selecting(player, selection_name) if not selections[player.index] then return false end return selections[player.index].name == selection_name else - return player.cursor_stack.is_selection_tool + return has_selection_tool_in_hand(player) end end @@ -153,7 +157,7 @@ end --- Stop selection if the selection tool is removed from the cursor Event.add(defines.events.on_player_cursor_stack_changed, function(event) local player = game.players[event.player_index] --- @cast player -nil - if player.cursor_stack and player.cursor_stack.is_selection_tool then return end + if has_selection_tool_in_hand(player) then return end Selection.stop(player) end) @@ -161,7 +165,7 @@ end) Event.add(defines.events.on_player_controller_changed, function(event) local player = game.players[event.player_index] --- @cast player -nil local inventory = player.get_main_inventory() - if player.cursor_stack and player.cursor_stack.is_selection_tool and inventory then + if inventory and has_selection_tool_in_hand(player) then player.hand_location = { inventory = inventory.index, slot = #inventory } end end)