From 74fc233f1a64211dc03914f55253e4f82545bf90 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Thu, 16 Jan 2025 05:37:34 +0900 Subject: [PATCH] Fix GPS tag for vlayer interfaces (#355) * Update vlayer.lua * Update vlayer.lua * Update vlayer.lua * Update vlayer.lua * Update vlayer.lua * Update vlayer.lua --- exp_legacy/module/config/vlayer.lua | 2 +- exp_legacy/module/modules/control/vlayer.lua | 11 ++++++----- exp_legacy/module/modules/gui/vlayer.lua | 12 ++++++------ 3 files changed, 13 insertions(+), 12 deletions(-) diff --git a/exp_legacy/module/config/vlayer.lua b/exp_legacy/module/config/vlayer.lua index d79cc9f5..c008c41a 100644 --- a/exp_legacy/module/config/vlayer.lua +++ b/exp_legacy/module/config/vlayer.lua @@ -54,7 +54,7 @@ return { ["landfill"] = { starting_value = 0, required_area = 0, - surface_area = 8, -- Tiles + surface_area = 20, -- Tiles }, ["wood"] = { starting_value = 0, diff --git a/exp_legacy/module/modules/control/vlayer.lua b/exp_legacy/module/modules/control/vlayer.lua index 1fce06fe..cff7aea8 100644 --- a/exp_legacy/module/modules/control/vlayer.lua +++ b/exp_legacy/module/modules/control/vlayer.lua @@ -706,11 +706,12 @@ function vlayer.remove_interface(surface, position) -- Get the details which will be returned if #entities == 0 then - return nil, nil + return nil, nil, nil end local interface = entities[1] local name = interface.name + local sur = interface.surface local pos = interface.position -- Return the type of interface removed and do some clean up @@ -725,7 +726,7 @@ function vlayer.remove_interface(surface, position) table.remove_element(vlayer_data.entity_interfaces.storage_input, interface) interface.destroy() - return "storage-input", pos + return "storage-input", sur, pos elseif name == "requester-chest" then local inventory = assert(interface.get_inventory(defines.inventory.chest)) ExpUtil.transfer_inventory_to_surface{ @@ -737,18 +738,18 @@ function vlayer.remove_interface(surface, position) table.remove_element(vlayer_data.entity_interfaces.storage_output, interface) interface.destroy() - return "storage-output", pos + return "storage-output", sur, pos elseif name == "constant-combinator" then table.remove_element(vlayer_data.entity_interfaces.circuit, interface) interface.destroy() - return "circuit", pos + return "circuit", sur, pos elseif name == "electric-energy-interface" then vlayer_data.storage.energy = vlayer_data.storage.energy + interface.energy table.remove_element(vlayer_data.entity_interfaces.energy, interface) interface.destroy() - return "energy", pos + return "energy", sur, pos end end diff --git a/exp_legacy/module/modules/gui/vlayer.lua b/exp_legacy/module/modules/gui/vlayer.lua index 974570fb..44409c24 100644 --- a/exp_legacy/module/modules/gui/vlayer.lua +++ b/exp_legacy/module/modules/gui/vlayer.lua @@ -32,8 +32,8 @@ local vlayer_control_type_list = { [4] = "storage_output", } -local function pos_to_gps_string(pos) - return "[gps=" .. string.format("%.1f", pos.x) .. "," .. string.format("%.1f", pos.y) .. "]" +local function pos_to_gps_string(pos, surface_name) + return "[gps=" .. string.format("%.1f", pos.x) .. "," .. string.format("%.1f", pos.y) .. "," .. surface_name .. "]" end local function format_energy(amount, unit) @@ -127,7 +127,7 @@ Selection.on_selection(SelectionConvertArea, function(event) vlayer.create_output_interface(event.surface, e_pos, e_circ, player) end - game.print{ "vlayer.interface-result", player.name, pos_to_gps_string(e_pos), { "vlayer.result-build" }, { "vlayer.control-type-" .. target:gsub("_", "-") } } + game.print{ "vlayer.interface-result", player.name, pos_to_gps_string(e_pos, event.surface.name), { "vlayer.result-build" }, { "vlayer.control-type-" .. target:gsub("_", "-") } } end) --- Display label for the number of solar panels @@ -373,7 +373,7 @@ local vlayer_gui_control_see = 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) } + player.print{ "vlayer.result-interface-location", { "vlayer.control-type-" .. vlayer_control_type_list[target]:gsub("_", "-") }, pos_to_gps_string(entity.position, entity.surface.name) } end end end) @@ -415,10 +415,10 @@ local vlayer_gui_control_remove = local i = vlayer.get_interfaces() if i and i[vlayer_control_type_list[target]] then - local interface_type, interface_position = vlayer.remove_interface(i[vlayer_control_type_list[target]][n].surface, i[vlayer_control_type_list[target]][n].position) + local interface_type, interface_surface, interface_position = vlayer.remove_interface(i[vlayer_control_type_list[target]][n].surface, i[vlayer_control_type_list[target]][n].position) if interface_type then - game.print{ "vlayer.interface-result", player.name, pos_to_gps_string(interface_position), { "vlayer.result-remove" }, { "vlayer.control-type-" .. interface_type } } + game.print{ "vlayer.interface-result", player.name, pos_to_gps_string(interface_position, interface_surface.name), { "vlayer.result-remove" }, { "vlayer.control-type-" .. interface_type } } end end end