diff --git a/ctf/gui.lua b/ctf/gui.lua index 64a7816..c1b5da3 100644 --- a/ctf/gui.lua +++ b/ctf/gui.lua @@ -18,6 +18,10 @@ function ctf.gui.register_tab(name, title, func) title = title, func = func } + + if ctf._defsettings and ctf._defsettings["gui.tab." .. name] == nil then + ctf._set("gui.tab." .. name, true) + end end function ctf.gui.show(name, tab, team) diff --git a/ctf_flag/init.lua b/ctf_flag/init.lua index 3c152f0..51e81b7 100644 --- a/ctf_flag/init.lua +++ b/ctf_flag/init.lua @@ -5,7 +5,6 @@ ctf.register_on_init(function() ctf._set("flag.capture_take", false) ctf._set("flag.names", true) ctf._set("flag.protect_distance", 25) - ctf._set("gui.tab.flags", true) ctf._set("gui.team.teleport_to_flag", true) ctf._set("gui.team.teleport_to_spawn", false) ctf._set("flag.capture_mode", "take") diff --git a/ctf_match/depends.txt b/ctf_match/depends.txt deleted file mode 100644 index d8c974d..0000000 --- a/ctf_match/depends.txt +++ /dev/null @@ -1,2 +0,0 @@ -ctf -ctf_flag diff --git a/ctf_match/init.lua b/ctf_match/init.lua deleted file mode 100644 index 9011e71..0000000 --- a/ctf_match/init.lua +++ /dev/null @@ -1,131 +0,0 @@ -ctf.register_on_init(function() - ctf._set("endgame.destroy_team", false) - ctf._set("endgame.break_alliances", true) - ctf._set("endgame.reset_on_winner", false) - ctf._set("newgame.teams", "") - ctf._set("newgame.clear_inv", false) -end) - -ctf_flag.register_on_capture(function(attname, flag) - if not ctf.setting("endgame.destroy_team") then - return - end - - local fl_team = ctf.team(flag.team) - if fl_team and #fl_team.flags == 0 then - ctf.action("endgame", flag.team .. " was defeated.") - ctf.remove_team(flag.team) - minetest.chat_send_all(flag.team .. " has been defeated!") - end - - if ctf.setting("endgame.reset_on_winner") then - local winner = nil - for name, team in pairs(ctf.teams) do - if winner then - return - end - winner = name - end - - -- Only one team left! - ctf.action("endgame", winner .. " won!") - minetest.chat_send_all("Team " .. winner .. " won!") - minetest.chat_send_all("Resetting the map, this may take a few moments...") - minetest.after(0.5, function() - --minetest.delete_area(vector.new(-16*4, -16*4, -16*4), vector.new(16*4, 16*4, 16*4)) - - minetest.after(1, function() - ctf.reset() - end) - end) - end -end) - -local function safe_place(pos, node) - ctf.log("flash", "attempting to place...") - minetest.get_voxel_manip(pos, { x = pos.x + 1, y = pos.y + 1, z = pos.z + 1}) - minetest.set_node(pos, node) - if minetest.get_node(pos).name ~= node.name then - ctf.error("flash", "failed to place node, retrying...") - minetest.after(0.5, function() - safe_place(pos, node) - end) - end -end - -local claimed = ctf_flag.collect_claimed() -for i, flag in pairs(claimed) do - flag.claimed = nil -end - -ctf.register_on_new_game(function() - local teams = ctf.setting("newgame.teams") - if teams:trim() == "" then - return - end - ctf.log("flash", "Setting up new game!") - - teams = teams:split(";") - local pos = {} - for i, v in pairs(teams) do - local team = v:split(",") - if #team == 5 then - local name = team[1]:trim() - local color = team[2]:trim() - local x = tonumber(team[3]:trim()) - local y = tonumber(team[4]:trim()) - local z = tonumber(team[5]:trim()) - pos[name] = { - x = x, - y = y, - z = z - } - - ctf.team({ - name=name, - color=color, - add_team=true - }) - - ctf_flag.add(name, pos[name]) - else - ctf.warning("flash", "Invalid team setup: " .. dump(v)) - end - end - - minetest.after(0, function() - for name, p in pairs(pos) do - safe_place(p, {name="ctf_flag:flag"}) - ctf_flag.update(p) - end - end) - - for i, player in pairs(minetest.get_connected_players()) do - local name = player:get_player_name() - local alloc_mode = tonumber(ctf.setting("allocate_mode")) - local team = ctf.autoalloc(name, alloc_mode) - - if alloc_mode ~= 0 and team then - ctf.log("autoalloc", name .. " was allocated to " .. team) - ctf.join(name, team) - end - - team = ctf.player(name).team - if ctf.team(team) then - local spawn = ctf.get_spawn(team) - if spawn then - player:moveto(spawn, false) - end - end - - if ctf.setting("newgame.clear_inv") then - local inv = player:get_inventory() - inv:set_list("main", {}) - inv:set_list("craft", {}) - give_initial_stuff(player) - end - - player:set_hp(20) - end - minetest.chat_send_all("Next round!") -end) diff --git a/ctf_turret/depends.txt b/ctf_turret/depends.txt deleted file mode 100644 index a7176f2..0000000 --- a/ctf_turret/depends.txt +++ /dev/null @@ -1 +0,0 @@ -ctf \ No newline at end of file diff --git a/ctf_turret/init.lua b/ctf_turret/init.lua deleted file mode 100644 index a1b6cdd..0000000 --- a/ctf_turret/init.lua +++ /dev/null @@ -1,147 +0,0 @@ -ctf.register_on_init(function() - ctf.log("turrets", "Initialising...") - - ctf._set("turrets", true) -end) - -if ctf.setting("turrets") then - ARROW_DAMAGE = 2 - ARROW_VELOCITY = 2 - minetest.register_node("ctf_turret:turret", { - description = "Team Turret", - tiles = { - "default_stone.png", - "default_stone.png", - "default_stone.png", - "default_stone.png", - "default_stone.png", - "default_stone.png", - }, - drawtype="nodebox", - groups={attached_node=1}, - paramtype = "light", - node_box = { - type = "fixed", - fixed = { - {-0.500000,-0.500000,-0.500000,0.500000,0.000000,0.500000}, --NodeBox 1 - {-0.437500,0.000000,-0.437500,0.431250,0.187500,0.431250}, --NodeBox 2 - {-0.187500,0.187500,-0.187500,0.187500,0.500000,0.187500}, --NodeBox 3 - } - }, - groups = {cracky=3, stone=1}, - on_construct = function(pos) - local meta = minetest.get_meta(pos) - meta:set_string("infotext", "Unowned turret") - end, - after_place_node = function(pos, placer) - local meta = minetest.get_meta(pos) - - if meta and ctf.players and ctf.player(placer:get_player_name()) and ctf.player(placer:get_player_name()).team then - local team = ctf.player(placer:get_player_name()).team - meta:set_string("team", team) - meta:set_string("infotext", "Owned by "..team) - else - minetest.set_node(pos,{name="air"}) - end - end - }) - - minetest.register_abm({ - nodenames = {"ctf_turret:turret"}, - interval = 0.25, - chance = 4, - action = function(pos, node) - local meta = minetest.get_meta(pos) - if not meta then - return - end - - local team = meta:get_string("team") - if not team then - return - end - - local app = ctf.get_territory_owner(pos) - if app and app~=team then - team = app - meta:set_string("team",team) - meta:set_string("infotext", "Owned by "..team) - end - - if not team then - return - end - - local objects = minetest.get_objects_inside_radius(pos, 15) - for _,obj in ipairs(objects) do - if ( - obj:is_player() and - ctf.players and - ctf.player(obj:get_player_name()) and - ctf.player(obj:get_player_name()).team ~= team - )then - -- Calculate stuff - local obj_p = obj:getpos() - local calc = { - x=obj_p.x - pos.x, - y=obj_p.y+1 - pos.y, - z=obj_p.z - pos.z - } - - -- Create bullet entity - local bullet=minetest.add_entity({x=pos.x,y=pos.y+0.5,z=pos.z}, "ctf_turret:arrow_entity") - - -- Set velocity - bullet:setvelocity({x=calc.x * ARROW_VELOCITY,y=calc.y * ARROW_VELOCITY,z=calc.z * ARROW_VELOCITY}) - - -- Play sound - minetest.sound_play("laser", {pos = pos, gain = 1.0, max_hear_distance = 50,}) - end - end - end - }) - - -- The Arrow Entity - THROWING_ARROW_ENTITY={ - physical = false, - timer=0, - visual_size = {x=0.2, y=0.2}, - textures = {"bullet.png"}, - lastpos={}, - collisionbox = {-0.17,-0.17,-0.17,0.17,0.17,0.17}, - on_step = function(self, dtime) - self.timer=self.timer+dtime - local pos = self.object:getpos() - if self.timer > 2 then - self.object:remove() - end - - if self.timer > 0.2 then - local objs = minetest.get_objects_inside_radius({x=pos.x,y=pos.y,z=pos.z}, 1.5) - for k, obj in pairs(objs) do - if obj:is_player() then - obj:set_hp(obj:get_hp() - ARROW_DAMAGE) - self.object:remove() - end - end - end - - local node = minetest.get_node(pos) - if node.name ~= "air" and node.name ~= "ctf_turret:turret" then - --minetest.add_item(self.lastpos, "throwing:arrow") - self.object:remove() - end - end - } - - minetest.register_entity("ctf_turret:arrow_entity", THROWING_ARROW_ENTITY) - - minetest.register_craft({ - output = "ctf_turret:turret", - recipe = { - {"default:mese_crystal", "default:gold_ingot", "default:mese_crystal"}, - {"default:gold_ingot", "default:mese_crystal", "default:gold_ingot"}, - {"default:mese_crystal", "default:gold_ingot", "default:mese_crystal"} - } - }) -end diff --git a/ctf_turret/sounds/Where to get sound.txt b/ctf_turret/sounds/Where to get sound.txt deleted file mode 100644 index b68d937..0000000 --- a/ctf_turret/sounds/Where to get sound.txt +++ /dev/null @@ -1 +0,0 @@ -http://freesound.org/people/aust_paul/sounds/30935/ \ No newline at end of file diff --git a/ctf_turret/sounds/laser.ogg b/ctf_turret/sounds/laser.ogg deleted file mode 100644 index d59bfc2..0000000 Binary files a/ctf_turret/sounds/laser.ogg and /dev/null differ diff --git a/ctf_turret/textures/bullet.png b/ctf_turret/textures/bullet.png deleted file mode 100644 index b21af53..0000000 Binary files a/ctf_turret/textures/bullet.png and /dev/null differ