Merge remote-tracking branch 'upstream/master'

This commit is contained in:
2021-03-12 12:34:26 +01:00
65 changed files with 830 additions and 1038 deletions

View File

@ -1,19 +1,19 @@
local storage = minetest.get_mod_storage()
local teleporters = minetest.deserialize(storage:get_string("teleporters")) or {}
local teleporters_rids = minetest.deserialize(storage:get_string("teleporters_rids")) or {}
local jammers = minetest.deserialize(storage:get_string("jammers")) or {}
local teleporters_rids = moremesecons.load_MapDataStorage_legacy(storage,
"teleporters_rids_v2", "teleporters_rids")
local function update_mod_storage()
storage:set_string("teleporters", minetest.serialize(teleporters))
storage:set_string("teleporters_rids", minetest.serialize(teleporters_rids))
storage:set_string("teleporters_rids_v2", teleporters_rids:serialize())
end
local function register(pos)
if not vector.get_data_from_pos(teleporters_rids, pos.z,pos.y,pos.x) then
if not teleporters_rids:getAt(pos) then
table.insert(teleporters, pos)
vector.set_data_to_pos(teleporters_rids, pos.z,pos.y,pos.x, #teleporters)
teleporters_rids:setAt(pos, #teleporters)
update_mod_storage()
end
end
@ -24,12 +24,12 @@ local function teleport_nearest(pos)
-- Search for the nearest player
local nearest = nil
local min_distance = MAX_PLAYER_DISTANCE
local min_distance_player = MAX_PLAYER_DISTANCE
local players = minetest.get_connected_players()
for index, player in pairs(players) do
for _, player in pairs(players) do
local distance = vector.distance(pos, player:getpos())
if distance <= min_distance then
min_distance = distance
if distance <= min_distance_player then
min_distance_player = distance
nearest = player
end
end
@ -89,10 +89,10 @@ minetest.register_node("moremesecons_teleporter:teleporter", {
sounds = default.node_sound_stone_defaults(),
on_construct = register,
on_destruct = function(pos)
local RID = vector.get_data_from_pos(teleporters_rids, pos.z,pos.y,pos.x)
local RID = teleporters_rids:getAt(pos)
if RID then
table.remove(teleporters, RID)
vector.remove_data_from_pos(teleporters_rids, pos.z,pos.y,pos.x)
teleporters_rids:removeAt(pos)
update_mod_storage()
end
end,