From e3a8f95f59c557a34b7500d1391128b2c629ed20 Mon Sep 17 00:00:00 2001 From: rubenwardy Date: Sun, 17 Mar 2019 03:32:15 +0000 Subject: [PATCH] Add ctf_map.get_team_relative_z() and ctf_map.can_cross() --- mods/ctf/ctf_map/barrier.lua | 14 ++++---------- mods/ctf/ctf_map/init.lua | 11 +++++++++++ 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/mods/ctf/ctf_map/barrier.lua b/mods/ctf/ctf_map/barrier.lua index 6743538..8c77f12 100644 --- a/mods/ctf/ctf_map/barrier.lua +++ b/mods/ctf/ctf_map/barrier.lua @@ -246,16 +246,10 @@ if minetest.get_modpath("ctf") then end for _, player in pairs(minetest.get_connected_players()) do - local name = player:get_player_name() - local tname = ctf.player(name).team - local pos = player:get_pos() - local privs = minetest.get_player_privs(name) - if tname and not privs.fly and privs.interact then - if (tname == "blue" and pos.z >= 0) or - (tname == "red" and pos.z <= 0) then - minetest.chat_send_player(name, "Match hasn't started yet!") - ctf.move_to_spawn(name) - end + if ctf_map.get_team_relative_z(player) < 0 and not ctf_map.can_cross(player) then + local name = player:get_player_name() + minetest.chat_send_player(name, "Match hasn't started yet!") + ctf.move_to_spawn(name) end end diff --git a/mods/ctf/ctf_map/init.lua b/mods/ctf/ctf_map/init.lua index 1120b58..f3c9386 100644 --- a/mods/ctf/ctf_map/init.lua +++ b/mods/ctf/ctf_map/init.lua @@ -1,5 +1,16 @@ ctf_map = {} +function ctf_map.get_team_relative_z(player) + local name = player:get_player_name() + local tname = ctf.player(name).team + return (tname == "red" and 1 or -1) * player:get_pos().z +end + +-- Overridden by server mods +function ctf_map.can_cross(player) + return false +end + dofile(minetest.get_modpath("ctf_map") .. "/nodes.lua") dofile(minetest.get_modpath("ctf_map") .. "/emerge.lua") dofile(minetest.get_modpath("ctf_map") .. "/barrier.lua")