From 107bff434c375e16e400ec7fed525e45d5d046f2 Mon Sep 17 00:00:00 2001 From: Patrick 'Quezler' Mounier Date: Wed, 6 Dec 2023 13:32:26 +0100 Subject: [PATCH] Revert back to selection tool It's just too much of a fucking mess to use `se--targeter` since remote view is so locked down --- mods/se-space-capsule-fast-travel/control.lua | 21 +++++++++------- mods/se-space-capsule-fast-travel/data.lua | 25 +++++++++++++------ mods/se-space-capsule-fast-travel/info.json | 2 +- 3 files changed, 30 insertions(+), 18 deletions(-) diff --git a/mods/se-space-capsule-fast-travel/control.lua b/mods/se-space-capsule-fast-travel/control.lua index 9bc09cde..9a67818c 100644 --- a/mods/se-space-capsule-fast-travel/control.lua +++ b/mods/se-space-capsule-fast-travel/control.lua @@ -1,11 +1,9 @@ local price = "se-space-capsule" -script.on_event("se--targeter", function(event) - local player = game.get_player(event.player_index) - local hand_stack = player.cursor_stack or player.cursor_ghost +script.on_event(defines.events.on_player_selected_area, function(event) + if event.item ~= "se-space-capsule-fast-travel-targeter" then return end - if not (hand_stack and hand_stack.valid_for_read) then return end - if hand_stack.name ~= "se-space-capsule-fast-travel-targeter" then return end + local player = game.get_player(event.player_index) -- local inventory = player.get_main_inventory() local inventory = remote.call("space-exploration", "get_player_character", {player = player}).get_main_inventory() @@ -16,9 +14,14 @@ script.on_event("se--targeter", function(event) inventory.remove({name = price, count = 1}) local left = inventory.get_item_count(price) - local container = player.surface.create_entity({ + local center = { + x = (event.area.left_top.x + event.area.right_bottom.x) / 2, + y = (event.area.left_top.y + event.area.right_bottom.y) / 2, + } + + local container = event.surface.create_entity({ name = "se-space-capsule-scorched", - position = event.cursor_position, + position = center, force = player.force, raise_built = true, -- uncomment to create a vehicle too (uncommented for the shadow, did it have any side-effects?) }) @@ -26,7 +29,7 @@ script.on_event("se--targeter", function(event) remote.call("space-exploration", "remote_view_stop", {player = player}) remote.call("jetpack", "stop_jetpack_immediate", {character = player.character}) player.driving = false - player.teleport({event.cursor_position.x - 2, event.cursor_position.y}, player.surface) + player.teleport({center.x - 2, center.y}, event.surface) -- player.driving = true -- having to exit the vehicle is not fast enough -- player.character.direction = defines.direction.south -- look down away from the capsule ladder @@ -38,6 +41,6 @@ script.on_event("se--targeter", function(event) player.create_local_flying_text({ text = string.format("%d [item=%s]'s left", left, price), - position = event.cursor_position, + create_at_cursor = true, }) end) diff --git a/mods/se-space-capsule-fast-travel/data.lua b/mods/se-space-capsule-fast-travel/data.lua index bcb1ddf1..497bfd6c 100644 --- a/mods/se-space-capsule-fast-travel/data.lua +++ b/mods/se-space-capsule-fast-travel/data.lua @@ -1,11 +1,21 @@ - -local targeter = table.deepcopy(data.raw["item"]["se-space-capsule-targeter"]) -targeter.name = "se-space-capsule-fast-travel-targeter" -targeter.icon = data.raw["item"]["se-space-capsule"].icon -table.insert(targeter.flags, "spawnable") -table.insert(targeter.flags, "not-stackable") - data:extend({ + { + type = "selection-tool", + name = "se-space-capsule-fast-travel-targeter", + icon = data.raw["item"]["se-space-capsule"].icon, + icon_mipmaps = 4, + icon_size = 64, + subgroup = "tool", + stack_size = 1, + selection_color = {r = 0, g = 0, b = 0}, + alt_selection_color = {r = 0, g = 0, b = 0}, + selection_mode = {"nothing"}, + alt_selection_mode = {"nothing"}, + selection_cursor_box_type = "entity", + alt_selection_cursor_box_type = "entity", + hidden = true, + flags = {"hidden", "only-in-cursor", "spawnable", "not-stackable"} + }, { type = "shortcut", name = "se-space-capsule-fast-travel", @@ -16,5 +26,4 @@ data:extend({ style = "default", icon = {filename = data.raw["item"]["se-space-capsule"].icon, size = 64, mipmap_count = 4}, }, - targeter }) diff --git a/mods/se-space-capsule-fast-travel/info.json b/mods/se-space-capsule-fast-travel/info.json index e6e0c313..186b6c81 100644 --- a/mods/se-space-capsule-fast-travel/info.json +++ b/mods/se-space-capsule-fast-travel/info.json @@ -2,7 +2,7 @@ "name": "se-space-capsule-fast-travel", "title": "Space Exploration - space capsule fast travel", "description": "Allows you to emergency burn anywhere using the shortcut, pretty much a teleport that damages your capsule.", - "version": "1.0.6", + "version": "1.0.7", "author": "Quezler", "factorio_version": "1.1", "dependencies": [