From 92fd201b4263b6427be3111e9bb19a47127b8215 Mon Sep 17 00:00:00 2001 From: Starbeamrainbowlabs Date: Sat, 1 Jul 2023 01:11:56 +0100 Subject: [PATCH] pos_marker_lua: add last_reset to properly clear huge regions --- .../core/entities/pos_marker_wall.lua | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/worldeditadditions_core/core/entities/pos_marker_wall.lua b/worldeditadditions_core/core/entities/pos_marker_wall.lua index 4fcde5b..54a50b3 100644 --- a/worldeditadditions_core/core/entities/pos_marker_wall.lua +++ b/worldeditadditions_core/core/entities/pos_marker_wall.lua @@ -7,6 +7,8 @@ local anchor local entity_wall_size = 10 local collision_thickness = 0.2 +local last_reset = tostring(wea_c.get_ms_time()) + local WEAPositionMarkerWall = { initial_properties = { visual = "cube", @@ -28,7 +30,12 @@ local WEAPositionMarkerWall = { }, on_activate = function(self, staticdata) - -- noop + if staticdata ~= last_reset then + print("DEBUG:marker_wall/remove staticdata", staticdata, "last_reset", last_reset) + self.object:remove() + else + print("DEBUG:marker_wall/ok staticdata", staticdata, "type", type(staticdata), "last_reset", last_reset, "type", type(last_reset)) + end end, on_punch = function(self, _) anchor.delete(self) @@ -102,8 +109,8 @@ local function create_single(player_name, pos1, pos2, side) local pos_centre = ((pos2 - pos1) / 2) + pos1 - local entity = minetest.add_entity(pos_centre, "worldeditadditions:marker_wall") - print("DEBUG:marker_wall create_single --> START player_name", player_name, "pos1", pos1, "pos2", pos2, "side", side, "SPAWN", pos_centre) + local entity = minetest.add_entity(pos_centre, "worldeditadditions:marker_wall", last_reset) + print("DEBUG:marker_wall create_single --> START player_name", player_name, "pos1", pos1, "pos2", pos2, "side", side, "SPAWN", pos_centre, "last_reset", last_reset) entity:get_luaentity().player_name = player_name @@ -431,9 +438,14 @@ local function delete(entitylist) entity:remove() end + last_reset = tostring(wea_c.get_ms_time()) + print("DEBUG:marker_wall delete --> LAST_RESET is now", last_reset, "type", type(last_reset)) + anchor:emit("delete", { player_name = player_name }) + + end anchor = EventEmitter.new({