From cb7f00cd1100a913767f06e3a1bc7dc531b2106c Mon Sep 17 00:00:00 2001 From: rubenwardy Date: Tue, 14 Jul 2015 15:16:27 +0100 Subject: [PATCH] Make ctf_flag.collect_claimed() return a value, fix a bug --- mods/capturetheflag/ctf_chat/init.lua | 3 --- mods/capturetheflag/ctf_flag/flag_func.lua | 10 +++++----- mods/capturetheflag/ctf_flag/init.lua | 15 ++++++++------- mods/capturetheflag/ctf_flash/init.lua | 5 ++--- 4 files changed, 15 insertions(+), 18 deletions(-) diff --git a/mods/capturetheflag/ctf_chat/init.lua b/mods/capturetheflag/ctf_chat/init.lua index 6c157f8..b72920d 100644 --- a/mods/capturetheflag/ctf_chat/init.lua +++ b/mods/capturetheflag/ctf_chat/init.lua @@ -117,9 +117,6 @@ minetest.register_chatcommand("ctf_clean", { func = function(name, param) ctf.log("chat", "Cleaning CTF...") ctf.clean_player_lists() - if ctf_flag and ctf_flag.collect_claimed then - ctf_flag.collect_claimed() - end if ctf_flag and ctf_flag.assert_flags then ctf_flag.assert_flags() end diff --git a/mods/capturetheflag/ctf_flag/flag_func.lua b/mods/capturetheflag/ctf_flag/flag_func.lua index 44c4cb3..497b874 100644 --- a/mods/capturetheflag/ctf_flag/flag_func.lua +++ b/mods/capturetheflag/ctf_flag/flag_func.lua @@ -66,7 +66,6 @@ local function do_capture(attname, flag, returned) end end - ctf_flag.collect_claimed() ctf.needs_save = true end @@ -155,10 +154,11 @@ ctf_flag = { end end, _flagret = function(name) - for i = 1, #ctf_flag.claimed do - if ctf_flag.claimed[i].claimed.player == name then - do_capture(name, ctf_flag.claimed[i], true) - ctf_flag.collect_claimed() + local claimed = ctf_flag.collect_claimed() + for i = 1, #claimed do + local flag = claimed[i] + if flag.claimed.player == name then + do_capture(name, flag, true) end end end, diff --git a/mods/capturetheflag/ctf_flag/init.lua b/mods/capturetheflag/ctf_flag/init.lua index 1380516..3c152f0 100644 --- a/mods/capturetheflag/ctf_flag/init.lua +++ b/mods/capturetheflag/ctf_flag/init.lua @@ -71,27 +71,28 @@ function ctf_flag.register_on_pick_up(func) end function ctf_flag.collect_claimed() - ctf.log("utils", "Collecting claimed locations") - ctf_flag.claimed = {} + ctf.log("flag", "Collecting claimed locations") + local claimed = {} for _, team in pairs(ctf.teams) do for i = 1, #team.flags do if team.flags[i].claimed then - table.insert(ctf_flag.claimed, team.flags[i]) + table.insert(claimed, team.flags[i]) end end end + return claimed end -ctf_flag.collect_claimed() function ctf_flag.player_drop_flag(name) if not name then return end - for i = 1, #ctf_flag.claimed do - local flag = ctf_flag.claimed[i] + + local claimed = ctf_flag.collect_claimed() + for i = 1, #claimed do + local flag = claimed[i] if flag.claimed.player == name then flag.claimed = nil - ctf_flag.collect_claimed() local flag_name = "" if flag.name then diff --git a/mods/capturetheflag/ctf_flash/init.lua b/mods/capturetheflag/ctf_flash/init.lua index bcead7a..cc659be 100644 --- a/mods/capturetheflag/ctf_flash/init.lua +++ b/mods/capturetheflag/ctf_flash/init.lua @@ -10,11 +10,10 @@ local function safe_place(pos, node) end end -ctf_flag.collect_claimed() -for i, flag in pairs(ctf_flag.claimed) do +local claimed = ctf_flag.collect_claimed() +for i, flag in pairs(claimed) do flag.claimed = nil end -ctf_flag.collect_claimed() minetest.register_on_joinplayer(function(player) if ctf.team(ctf.player(player:get_player_name()).team) then