Update tele formspecs on removal of tele

master
Wuzzy 2020-09-08 20:01:30 +02:00
parent f7fad2e16d
commit a3538225f8
1 changed files with 11 additions and 2 deletions

View File

@ -103,7 +103,6 @@ function teleports.do_teleporting(pos1, pos2, playername)
minetest.after(3.0, teleports.teleportate, {pos1, pos2, playername})
end
teleports.set_formspec = function(pos, shown_teleports)
minetest.log("error", tostring(dump(pos)))
local meta = minetest.get_meta(pos)
local node = minetest.get_node(pos)
@ -223,12 +222,22 @@ minetest.register_node("teleports:teleport", {
end
end,
on_destruct = function(pos)
-- Update list of teleports on destruction
local near_teleports = teleports:find_nearby(pos, 6)
for i, EachTeleport in ipairs(teleports.teleports) do
if vector.equals(EachTeleport.pos, pos) then
table.remove(teleports.teleports, i)
teleports:save()
end
end
teleports:save()
-- Update formspecs of affected teleports
for n=1, #near_teleports do
local pos2 = near_teleports[n].pos
local near_teleports2 = teleports:find_nearby(pos2, 6)
teleports.set_formspec(pos2, near_teleports2)
end
end,
on_receive_fields = teleports.on_receive_fields,
allow_metadata_inventory_put = teleports.allow_metadata_inventory_put,