+ Resetting is_resetting property on mods loaded

+ Code cleaning
master
Giov4 2020-11-04 14:44:30 +01:00
parent db07b76c1a
commit 701ef92c12
4 changed files with 31 additions and 32 deletions

View File

@ -1,6 +1,3 @@
-- This sets the map chests
local mod = "skywars"
local function fill_chest_inv() end
local function fill_chests() end
@ -13,22 +10,15 @@ end
function fill_chest_inv(chest, arena)
-- returns an itemstacks table that contains the chosen treasures
local treasures = skywars.select_random_treasures(chest, arena)
local meta = minetest.get_meta(chest.pos)
local inv = meta:get_inventory()
inv:set_list("main", {})
for i=1, #treasures do
inv:set_stack("main", i, treasures[i])
end
end
function fill_chests(arena)
for i=1, #arena.chests do
fill_chest_inv(arena.chests[i], arena)
for i, chest in pairs(arena.chests) do
local treasures = skywars.select_random_treasures(chest, arena)
local meta = minetest.get_meta(chest.pos)
local inv = meta:get_inventory()
inv:set_list("main", {})
for i=1, #treasures do
inv:set_stack("main", i, treasures[i])
end
end
end

View File

@ -165,7 +165,7 @@ function async_reset_map(arena, debug, recursive_data)
end
arena.is_resetting = false
-- Removing the original map nodes from the actual map to preserve eventual changes made
-- Removing the reset nodes from the actual map to preserve eventual changes made
-- to the latter during the reset.
local actual_maps = skywars.load_table("maps")
if not actual_maps[arena.name] or not actual_maps[arena.name].nodes then
@ -177,8 +177,9 @@ function async_reset_map(arena, debug, recursive_data)
local old_node = original_map_nodes[serialized_pos]
local pos = minetest.deserialize(serialized_pos)
local actual_node = minetest.get_node(pos)
local is_old_node_still_reset = (actual_node.name == old_node.name)
if old_node and actual_node.name == old_node.name then
if old_node and is_old_node_still_reset then
actual_map_nodes[serialized_pos] = nil
end
end

View File

@ -103,4 +103,12 @@ minetest.register_node("skywars:test_node", {
description = "Skywars test block, don't use it!",
groups = {crumbly=1, soil=1},
tiles = {"test_node.png"},
})
})
minetest.register_on_mods_loaded(function()
for i, arena in pairs(arena_lib.mods["skywars"].arenas) do
arena.is_resetting = false
end
end)

View File

@ -271,9 +271,9 @@ ChatCmdBuilder.new("skywars", function(cmd)
cmd:sub("copytreasures :fromarena :toarena",
function(sender, from, to)
local from_arena, from = get_valid_arena(from, sender)
local to_arena, to = get_valid_arena(to, sender, true)
function(sender, from_name, to_name)
local from_arena, from_name = get_valid_arena(from_name, sender)
local to_arena, to_name = get_valid_arena(to_name, sender, true)
if not to_arena or not from_arena then
return
@ -284,8 +284,8 @@ ChatCmdBuilder.new("skywars", function(cmd)
to_arena.treasures = table.copy(from_arena.treasures)
arena_lib.change_arena_property(sender, "skywars", to, "treasures", to_arena.treasures, false)
skywars.print_msg(sender, skywars.T("@1 treasures have been copied to @2!", from, to))
arena_lib.change_arena_property(sender, "skywars", to_name, "treasures", to_arena.treasures, false)
skywars.print_msg(sender, skywars.T("@1 treasures have been copied to @2!", from_name, to_name))
end)
@ -716,9 +716,9 @@ ChatCmdBuilder.new("skywars", function(cmd)
cmd:sub("copykits :fromarena :toarena",
function(sender, from, to)
local from_arena, from = get_valid_arena(from, sender)
local to_arena, to = get_valid_arena(to, sender, true)
function(sender, from_name, to_name)
local from_arena, from_name = get_valid_arena(from_name, sender)
local to_arena, to_name = get_valid_arena(to_name, sender, true)
if not from_arena or not to_arena then
return
@ -729,8 +729,8 @@ ChatCmdBuilder.new("skywars", function(cmd)
to_arena.kits = table.copy(from_arena.kits)
arena_lib.change_arena_property(sender, "skywars", to, "kits", to_arena.kits, false)
skywars.print_msg(sender, skywars.T("@1 kits have been copied to @2!", from, to))
arena_lib.change_arena_property(sender, "skywars", to_name, "kits", to_arena.kits, false)
skywars.print_msg(sender, skywars.T("@1 kits have been copied to @2!", from_name, to_name))
end)