From d12b50b4ed3eacfae6feffc652eb962329198f91 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Tue, 31 Dec 2024 04:30:17 +0900 Subject: [PATCH 1/8] Remove Zoom to World (#339) * Update player-list.lua * Update warp-list.lua * Fix remaining cases of zoom_to_world * Fix lint --------- Co-authored-by: Cooldude2606 <25043174+Cooldude2606@users.noreply.github.com> --- exp_legacy/module/modules/gui/player-list.lua | 2 +- exp_legacy/module/modules/gui/rocket-info.lua | 2 +- exp_legacy/module/modules/gui/vlayer.lua | 12 ++++-------- exp_legacy/module/modules/gui/warp-list.lua | 3 +-- 4 files changed, 7 insertions(+), 12 deletions(-) diff --git a/exp_legacy/module/modules/gui/player-list.lua b/exp_legacy/module/modules/gui/player-list.lua index 19b81055..cc08db56 100644 --- a/exp_legacy/module/modules/gui/player-list.lua +++ b/exp_legacy/module/modules/gui/player-list.lua @@ -118,7 +118,7 @@ local add_player_base = if event.button == defines.mouse_button_type.left then -- LMB will open the map to the selected player local position = selected_player.physical_position - event.player.zoom_to_world(position, 1.75) + event.player.set_controller{ type = defines.controllers.remote, position = selected_player.physical_position, surface = selected_player.physical_surface } else -- RMB will toggle the settings local old_selected_player_name = SelectedPlayer:get(player) diff --git a/exp_legacy/module/modules/gui/rocket-info.lua b/exp_legacy/module/modules/gui/rocket-info.lua index 9e404d15..5355591e 100644 --- a/exp_legacy/module/modules/gui/rocket-info.lua +++ b/exp_legacy/module/modules/gui/rocket-info.lua @@ -127,7 +127,7 @@ local silo_cords = :on_click(function(player, element, _) local rocket_silo_name = element.parent.caption local rocket_silo = Rockets.get_silo_entity(rocket_silo_name) - player.zoom_to_world(rocket_silo.position, 2) + player.set_controller{ type = defines.controllers.remote, position = rocket_silo.position, surface = rocket_silo.surface } end) --- Base element for each rocket in the progress list diff --git a/exp_legacy/module/modules/gui/vlayer.lua b/exp_legacy/module/modules/gui/vlayer.lua index 6389947a..43304337 100644 --- a/exp_legacy/module/modules/gui/vlayer.lua +++ b/exp_legacy/module/modules/gui/vlayer.lua @@ -369,14 +369,10 @@ local vlayer_gui_control_see = if target and vlayer_control_type_list[target] and n > 0 then local i = vlayer.get_interfaces() - - if i and i[vlayer_control_type_list[target]] and i[vlayer_control_type_list[target]][n] then - local pos = i[vlayer_control_type_list[target]][n].position - - if pos then - player.zoom_to_world(pos, 2) - player.print{ "vlayer.result-interface-location", { "vlayer.control-type-" .. vlayer_control_type_list[target]:gsub("_", "-") }, pos_to_gps_string(pos) } - end + local entity = i[vlayer_control_type_list[target]][n] + if entity and entity.valid then + player.set_controller{ type = defines.controllers.remote, position = entity.position, surface = entity.surface } + player.print{ "vlayer.result-interface-location", { "vlayer.control-type-" .. vlayer_control_type_list[target]:gsub("_", "-") }, pos_to_gps_string(entity.position) } end end end) diff --git a/exp_legacy/module/modules/gui/warp-list.lua b/exp_legacy/module/modules/gui/warp-list.lua index e0bdb0d5..9872c623 100644 --- a/exp_legacy/module/modules/gui/warp-list.lua +++ b/exp_legacy/module/modules/gui/warp-list.lua @@ -230,8 +230,7 @@ local warp_label = :on_click(function(player, element, _) local warp_id = element.parent.caption local warp = Warps.get_warp(warp_id) - local position = warp.position - player.zoom_to_world(position, 1.5) + player.set_controller{ type = defines.controllers.remote, position = warp.position, surface = warp.surface } end) :static_name(Gui.unique_static_name) From 96de82c3cfffeac24f34a94206b7657e8e9ead9a Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Tue, 31 Dec 2024 04:35:33 +0900 Subject: [PATCH 2/8] Add checks for nil cursor stack (#341) --- exp_legacy/module/modules/control/selection.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/exp_legacy/module/modules/control/selection.lua b/exp_legacy/module/modules/control/selection.lua index 5f746e36..7c026292 100644 --- a/exp_legacy/module/modules/control/selection.lua +++ b/exp_legacy/module/modules/control/selection.lua @@ -153,7 +153,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.is_selection_tool then return end + if player.cursor_stack and player.cursor_stack.is_selection_tool then return end Selection.stop(player) end) @@ -161,7 +161,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.is_selection_tool and inventory then + if player.cursor_stack and player.cursor_stack.is_selection_tool and inventory then player.hand_location = { inventory = inventory.index, slot = #inventory } end end) From e02e50a17ba902d438d41bc5e9a70ec25bb8b3fc Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Tue, 31 Dec 2024 04:36:45 +0900 Subject: [PATCH 3/8] Remove rocket requirement for auto research (#342) --- exp_scenario/module/commands/research.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exp_scenario/module/commands/research.lua b/exp_scenario/module/commands/research.lua index d6673193..56a5b569 100644 --- a/exp_scenario/module/commands/research.lua +++ b/exp_scenario/module/commands/research.lua @@ -71,7 +71,7 @@ local function on_research_finished(event) if not research.res_queue_enable then return end local force = event.research.force - if force.rockets_launched > 0 and force.technologies[config.bonus_inventory.res[config.mod_set].name].level > config.bonus_inventory.res[config.mod_set].level then + if force.technologies[config.bonus_inventory.res[config.mod_set].name].level > config.bonus_inventory.res[config.mod_set].level then module.res_queue(force, event.by_script) end end From 60e9aaee16d1080bf587886ed093b5c8772b353a Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Tue, 31 Dec 2024 04:38:22 +0900 Subject: [PATCH 4/8] Change collision layer name (#343) --- exp_legacy/module/modules/gui/warp-list.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exp_legacy/module/modules/gui/warp-list.lua b/exp_legacy/module/modules/gui/warp-list.lua index 9872c623..e96de051 100644 --- a/exp_legacy/module/modules/gui/warp-list.lua +++ b/exp_legacy/module/modules/gui/warp-list.lua @@ -95,7 +95,7 @@ local add_new_warp = local position = player.physical_position -- Check if the warp is too close to water - local water_tiles = surface.find_tiles_filtered{ collision_mask = "water-tile", radius = config.standard_proximity_radius + 1, position = position } + local water_tiles = surface.find_tiles_filtered{ collision_mask = "water_tile", radius = config.standard_proximity_radius + 1, position = position } if #water_tiles > 0 then player.print( { "expcore-commands.command-fail", { "warp-list.too-close-to-water", config.standard_proximity_radius + 1 } }, From 114c9e4153e41ae823945936241f4847844271f6 Mon Sep 17 00:00:00 2001 From: Cooldude2606 <25043174+Cooldude2606@users.noreply.github.com> Date: Mon, 30 Dec 2024 19:42:11 +0000 Subject: [PATCH 5/8] Handle server ups missing label --- exp_legacy/module/modules/gui/server-ups.lua | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/exp_legacy/module/modules/gui/server-ups.lua b/exp_legacy/module/modules/gui/server-ups.lua index 592d8755..fc0bd3d2 100644 --- a/exp_legacy/module/modules/gui/server-ups.lua +++ b/exp_legacy/module/modules/gui/server-ups.lua @@ -57,6 +57,10 @@ Commands.new("server-ups", { "server-ups.description" }) local function set_location(event) local player = game.players[event.player_index] local label = player.gui.screen[server_ups.name] + if not label then + label = server_ups(player.gui.screen) + label.visible = UsesServerUps:get(player) + end local res = player.display_resolution local uis = player.display_scale -- below ups and clock @@ -65,12 +69,7 @@ local function set_location(event) end -- Draw the label when the player joins -Event.add(defines.events.on_player_created, function(event) - local player = game.players[event.player_index] - local label = server_ups(player.gui.screen) - label.visible = false - set_location(event) -end) +Event.add(defines.events.on_player_created, set_location) -- Update the caption for all online players -- percentage of game speed From 47da1b8578f9352e142893d12dc3095c760f0c58 Mon Sep 17 00:00:00 2001 From: Cooldude2606 <25043174+Cooldude2606@users.noreply.github.com> Date: Mon, 30 Dec 2024 19:54:15 +0000 Subject: [PATCH 6/8] Fix rocket silo auto launch --- exp_legacy/module/modules/gui/rocket-info.lua | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/exp_legacy/module/modules/gui/rocket-info.lua b/exp_legacy/module/modules/gui/rocket-info.lua index 5355591e..f7d452a4 100644 --- a/exp_legacy/module/modules/gui/rocket-info.lua +++ b/exp_legacy/module/modules/gui/rocket-info.lua @@ -138,12 +138,14 @@ local rocket_entry = local player = Gui.get_player_from_element(parent) -- Add the toggle auto launch if the player is allowed it - if check_player_permissions(player, "toggle_active") then + -- Auto launch was removed from the api and no 2.0 equivalent was added + -- https://forums.factorio.com/viewtopic.php?f=28&t=118065&p=656502 + --[[if check_player_permissions(player, "toggle_active") then local flow = parent.add{ type = "flow", name = "toggle-" .. silo_name } local button = toggle_launch(flow) button.tooltip = silo_data.toggle_tooltip button.sprite = silo_data.toggle_sprite - end + end]] -- Add the remote launch if the player is allowed it if check_player_permissions(player, "remote_launch") then @@ -246,7 +248,7 @@ local function get_progress_data(force_name) -- Get the toggle button data local toggle_tooltip = { "rocket-info.toggle-rocket-tooltip-disabled" } local toggle_sprite = "utility/play" - if rocket_silo.auto_launch then + if false --[[rocket_silo.auto_launch]] then toggle_tooltip = { "rocket-info.toggle-rocket-tooltip" } toggle_sprite = "utility/stop" end From 4ece0c0e9af7b878b3c87ff0ce85d349c160c690 Mon Sep 17 00:00:00 2001 From: Cooldude2606 <25043174+Cooldude2606@users.noreply.github.com> Date: Mon, 30 Dec 2024 20:40:55 +0000 Subject: [PATCH 7/8] Change rocket launch to cargo pod ascended --- exp_legacy/module/modules/addons/logging.lua | 13 +++++++------ exp_legacy/module/modules/control/rockets.lua | 2 +- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/exp_legacy/module/modules/addons/logging.lua b/exp_legacy/module/modules/addons/logging.lua index 331e6415..103a47a5 100644 --- a/exp_legacy/module/modules/addons/logging.lua +++ b/exp_legacy/module/modules/addons/logging.lua @@ -13,12 +13,13 @@ local function add_log(data) write_file(config.file_name, "\n", true, 0) end -Event.add(defines.events.on_rocket_launched, function(event) - if event and event.rocket and event.rocket.force and event.rocket.force.rockets_launched then - if event.rocket.force.rockets_launched >= config.rocket_launch_display_rate and event.rocket.force.rockets_launched % config.rocket_launch_display_rate == 0 then - add_log("[ROCKET] " .. event.rocket.force.rockets_launched .. " rockets launched") - elseif config.rocket_launch_display[event.rocket.force.rockets_launched] then - add_log("[ROCKET] " .. event.rocket.force.rockets_launched .. " rockets launched") +Event.add(defines.events.on_cargo_pod_finished_ascending, function(event) + if event and event.launched_by_rocket then + local force = event.cargo_pod.force + if force.rockets_launched >= config.rocket_launch_display_rate and force.rockets_launched % config.rocket_launch_display_rate == 0 then + add_log("[ROCKET] " .. force.rockets_launched .. " rockets launched") + elseif config.rocket_launch_display[force.rockets_launched] then + add_log("[ROCKET] " .. force.rockets_launched .. " rockets launched") end end end) diff --git a/exp_legacy/module/modules/control/rockets.lua b/exp_legacy/module/modules/control/rockets.lua index 195ac670..1b53946a 100644 --- a/exp_legacy/module/modules/control/rockets.lua +++ b/exp_legacy/module/modules/control/rockets.lua @@ -148,7 +148,7 @@ function Rockets.get_rolling_average(force_name, count) end --- Event used to update the stats and the hui when a rocket is launched -Event.add(defines.events.on_rocket_launched, function(event) +Event.add(defines.events.on_cargo_pod_finished_ascending, function(event) local entity = event.rocket_silo local silo_data = Rockets.get_silo_data(entity) local force = event.rocket_silo.force From ac2f09add023736280fb24c2cfd08f3e63b9b497 Mon Sep 17 00:00:00 2001 From: Cooldude2606 <25043174+Cooldude2606@users.noreply.github.com> Date: Mon, 30 Dec 2024 20:50:35 +0000 Subject: [PATCH 8/8] Revert one case back to rocket launched --- exp_legacy/module/modules/control/rockets.lua | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/exp_legacy/module/modules/control/rockets.lua b/exp_legacy/module/modules/control/rockets.lua index 1b53946a..528a4363 100644 --- a/exp_legacy/module/modules/control/rockets.lua +++ b/exp_legacy/module/modules/control/rockets.lua @@ -148,12 +148,13 @@ function Rockets.get_rolling_average(force_name, count) end --- Event used to update the stats and the hui when a rocket is launched -Event.add(defines.events.on_cargo_pod_finished_ascending, function(event) +--- @param event EventData.on_rocket_launched +Event.add(defines.events.on_rocket_launched, function(event) local entity = event.rocket_silo local silo_data = Rockets.get_silo_data(entity) local force = event.rocket_silo.force local force_name = force.name - local rockets_launched = force.rockets_launched + local rockets_launched = force.rockets_launched + 1 -- Hasn't updated when this event fires --- Handles updates to the rocket stats local stats = rocket_stats[force_name]