Removed legacy support for serialized positions in the maps metadata
parent
79edaab56e
commit
5e045e9ca4
|
@ -257,7 +257,7 @@ function create_barrier_cage(player)
|
|||
}
|
||||
|
||||
player:set_physics_override({gravity=0, jump=0})
|
||||
player:add_player_velocity(vector.multiply(player:get_player_velocity(), -1))
|
||||
player:add_velocity(vector.multiply(player:get_velocity(), -1))
|
||||
|
||||
for _, relative_pos in pairs(glass_nodes) do
|
||||
local node_pos = vector.round(vector.add(original_pos, relative_pos))
|
||||
|
@ -303,7 +303,7 @@ function keep_teleporting(player, pos, seconds, current_second)
|
|||
if current_second > seconds then return end
|
||||
|
||||
minetest.after(step, function()
|
||||
player:add_player_velocity(vector.multiply(player:get_player_velocity(), -1))
|
||||
player:add_velocity(vector.multiply(player:get_velocity(), -1))
|
||||
player:set_pos(pos)
|
||||
keep_teleporting(player, pos, seconds, current_second + step)
|
||||
end)
|
||||
|
|
|
@ -1,15 +1,14 @@
|
|||
local function delete_drops() end
|
||||
local function async_reset_map() end
|
||||
local function reset_node_inventory() end
|
||||
local on_step = minetest.registered_entities["__builtin:item"].on_step
|
||||
minetest.registered_entities["__builtin:item"].match_id = -2
|
||||
minetest.registered_entities["__builtin:item"].last_age = 0
|
||||
local get_position_from_hash = minetest.get_position_from_hash
|
||||
local hash_node_position = minetest.hash_node_position
|
||||
local deserialize = minetest.deserialize
|
||||
local add_node = minetest.add_node
|
||||
local get_node = minetest.get_node
|
||||
local get_inventory = minetest.get_inventory
|
||||
local on_step = minetest.registered_entities["__builtin:item"].on_step
|
||||
minetest.registered_entities["__builtin:item"].match_id = -2
|
||||
minetest.registered_entities["__builtin:item"].last_age = 0
|
||||
|
||||
|
||||
function skywars.reset_map(arena, debug, debug_data)
|
||||
|
|
|
@ -3,7 +3,7 @@ local get_inventory = minetest.get_inventory
|
|||
local hash_node_position = minetest.hash_node_position
|
||||
|
||||
|
||||
minetest.register_on_placenode(function(pos, newnode, player, oldnode, itemstack, pointed_thing)
|
||||
minetest.register_on_placenode(function(pos, newnode, player, oldnode)
|
||||
local pl_name = player:get_player_name()
|
||||
local arena = arena_lib.get_arena_by_player(pl_name)
|
||||
if arena_lib.get_mod_by_player(pl_name) ~= "skywars" then return end
|
||||
|
@ -113,7 +113,7 @@ function save_node(arena, pos, node)
|
|||
if not arena then return end
|
||||
initialize_map_data(maps, arena)
|
||||
|
||||
-- If this block has not been changed yet then save it.
|
||||
-- If this node has not been changed yet then save it.
|
||||
if not maps[arena.name].changed_nodes[hash_pos] then
|
||||
maps[arena.name].changed_nodes[hash_pos] = node
|
||||
skywars.overwrite_table("maps", maps)
|
||||
|
@ -127,34 +127,4 @@ function initialize_map_data(maps, arena)
|
|||
if not maps[arena.name] then maps[arena.name] = {} end
|
||||
if not maps[arena.name].changed_nodes then maps[arena.name].changed_nodes = {} end
|
||||
if not maps[arena.name].always_to_be_reset_nodes then maps[arena.name].always_to_be_reset_nodes = {} end
|
||||
end
|
||||
|
||||
|
||||
|
||||
--
|
||||
-- ! LEGACY SUPPORT FOR SERIALIZED POSITIONS.
|
||||
-- Converting all the serialized positions into
|
||||
-- hashes.
|
||||
--
|
||||
local maps = skywars.load_table("maps")
|
||||
|
||||
for arena_name, map in pairs(maps) do
|
||||
initialize_map_data(maps, {name = arena_name})
|
||||
|
||||
for pos, node in pairs(map.changed_nodes) do
|
||||
if minetest.deserialize(pos) and pos then
|
||||
local hash_pos = minetest.hash_node_position(minetest.deserialize(pos))
|
||||
map.changed_nodes[pos] = nil
|
||||
map.changed_nodes[hash_pos] = node
|
||||
end
|
||||
end
|
||||
for pos, bool in pairs(map.always_to_be_reset_nodes) do
|
||||
if minetest.deserialize(pos) and pos then
|
||||
local hash_pos = minetest.hash_node_position(minetest.deserialize(pos))
|
||||
map.always_to_be_reset_nodes[pos] = nil
|
||||
map.always_to_be_reset_nodes[hash_pos] = bool
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
skywars.overwrite_table("maps", maps)
|
||||
end
|
Loading…
Reference in New Issue