diff --git a/moremesecons_teleporter/depends.txt b/moremesecons_teleporter/depends.txt index acaa924..9408116 100644 --- a/moremesecons_teleporter/depends.txt +++ b/moremesecons_teleporter/depends.txt @@ -1 +1,2 @@ mesecons +vector_extras diff --git a/moremesecons_teleporter/init.lua b/moremesecons_teleporter/init.lua index 001dafc..c58ce31 100644 --- a/moremesecons_teleporter/init.lua +++ b/moremesecons_teleporter/init.lua @@ -1,11 +1,12 @@ local teleporters = {} +local teleporters_rids = {} + local register = function(pos) - local meta = minetest.env:get_meta(pos) - local RID = meta:get_int("RID") - if teleporters[RID] == nil then + local RID = vector.get_data_from_pos(teleporters_rids, pos.z,pos.y,pos.x) + if not RID then table.insert(teleporters, pos) - meta:set_int("RID", #teleporters) + vector.set_data_to_pos(teleporters_rids, pos.z,pos.y,pos.x, #teleporters) end end @@ -65,9 +66,10 @@ minetest.register_node("moremesecons_teleporter:teleporter", { register(pos) end, on_destruct = function(pos) - local RID = minetest.get_meta(pos):get_int("RID") - if RID then + local RID = vector.get_data_from_pos(teleporters_rids, pos.z,pos.y,pos.x) + if RID then table.remove(teleporters, RID) + vector.remove_data_from_pos(teleporters_rids, pos.z,pos.y,pos.x) end end, }) diff --git a/moremesecons_wireless/init.lua b/moremesecons_wireless/init.lua index 6605da4..ca7a396 100644 --- a/moremesecons_wireless/init.lua +++ b/moremesecons_wireless/init.lua @@ -4,7 +4,7 @@ local wireless_rids = {} local register = function(pos) local RID = vector.get_data_from_pos(wireless_rids, pos.z,pos.y,pos.x) - if wireless[RID] == nil then + if not RID then table.insert(wireless, pos) vector.set_data_to_pos(wireless_rids, pos.z,pos.y,pos.x, #wireless) end