Update tele formspecs on removal of tele
parent
f7fad2e16d
commit
a3538225f8
13
init.lua
13
init.lua
|
@ -103,7 +103,6 @@ function teleports.do_teleporting(pos1, pos2, playername)
|
||||||
minetest.after(3.0, teleports.teleportate, {pos1, pos2, playername})
|
minetest.after(3.0, teleports.teleportate, {pos1, pos2, playername})
|
||||||
end
|
end
|
||||||
teleports.set_formspec = function(pos, shown_teleports)
|
teleports.set_formspec = function(pos, shown_teleports)
|
||||||
minetest.log("error", tostring(dump(pos)))
|
|
||||||
local meta = minetest.get_meta(pos)
|
local meta = minetest.get_meta(pos)
|
||||||
local node = minetest.get_node(pos)
|
local node = minetest.get_node(pos)
|
||||||
|
|
||||||
|
@ -223,12 +222,22 @@ minetest.register_node("teleports:teleport", {
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
on_destruct = function(pos)
|
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
|
for i, EachTeleport in ipairs(teleports.teleports) do
|
||||||
if vector.equals(EachTeleport.pos, pos) then
|
if vector.equals(EachTeleport.pos, pos) then
|
||||||
table.remove(teleports.teleports, i)
|
table.remove(teleports.teleports, i)
|
||||||
teleports:save()
|
|
||||||
end
|
end
|
||||||
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,
|
end,
|
||||||
on_receive_fields = teleports.on_receive_fields,
|
on_receive_fields = teleports.on_receive_fields,
|
||||||
allow_metadata_inventory_put = teleports.allow_metadata_inventory_put,
|
allow_metadata_inventory_put = teleports.allow_metadata_inventory_put,
|
||||||
|
|
Loading…
Reference in New Issue