diff --git a/mods/ctf/ctf_classes/melee.lua b/mods/ctf/ctf_classes/melee.lua index 2b33700..9302904 100644 --- a/mods/ctf/ctf_classes/melee.lua +++ b/mods/ctf/ctf_classes/melee.lua @@ -29,12 +29,12 @@ end, true) local sword_special_timer = {} -local SWORD_SPECIAL_COOLDOWN = 20 +local SWORD_SPECIAL_COOLDOWN = 40 local function sword_special_timer_func(pname, timeleft) sword_special_timer[pname] = timeleft - if timeleft - 2 >= 0 then - minetest.after(2, sword_special_timer_func, pname, timeleft - 2) + if timeleft - 10 >= 0 then + minetest.after(10, sword_special_timer_func, pname, timeleft - 10) else sword_special_timer[pname] = nil end @@ -57,8 +57,8 @@ minetest.register_tool("ctf_classes:sword_bronze", { local pname = placer:get_player_name() if not pointed_thing then return end - if sword_special_timer[pname] and placer:get_player_control().sneak then - minetest.chat_send_player(pname, "You have to wait "..sword_special_timer[pname].."s to place marker again") + if sword_special_timer[pname] then + minetest.chat_send_player(pname, "You can't place a marker yet (>"..sword_special_timer[pname].."s left)") if pointed_thing.type == "node" then return minetest.item_place(itemstack, placer, pointed_thing) @@ -102,8 +102,8 @@ minetest.register_tool("ctf_classes:sword_bronze", { -- Check if player is sneaking before placing marker if not placer:get_player_control().sneak then return end - sword_special_timer[pname] = 4 - sword_special_timer_func(pname, 4) + sword_special_timer[pname] = 20 + sword_special_timer_func(pname, 20) minetest.registered_chatcommands["m"].func(pname, "placed with sword") end, diff --git a/mods/ctf/ctf_map/ctf_map_core/nodes.lua b/mods/ctf/ctf_map/ctf_map_core/nodes.lua index c446752..601cadc 100644 --- a/mods/ctf/ctf_map/ctf_map_core/nodes.lua +++ b/mods/ctf/ctf_map/ctf_map_core/nodes.lua @@ -424,25 +424,6 @@ do sounds = default.node_sound_leaves_defaults() }) - minetest.register_node(":ctf_map:papyrus", { - description = "Indestructible Papyrus", - drawtype = "plantlike", - tiles = {"default_papyrus.png"}, - inventory_image = "default_papyrus.png", - wield_image = "default_papyrus.png", - paramtype = "light", - sunlight_propagates = true, - walkable = false, - selection_box = { - type = "fixed", - fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, 0.5, 6 / 16}, - }, - groups = {immortal = 1}, - sounds = default.node_sound_leaves_defaults(), - after_dig_node = function(pos, node, metadata, digger) - default.dig_up(pos, node, digger) - end, - }) minetest.register_node(":ctf_map:jungletree", { description = "Indestructible Jungle Tree", diff --git a/mods/other/hud_events/README.md b/mods/other/hud_events/README.md deleted file mode 100644 index dae8219..0000000 --- a/mods/other/hud_events/README.md +++ /dev/null @@ -1,57 +0,0 @@ -# `hud_events` - -Forked and edited from `hud_score` by ANAND (ClobberXD), licensed under the LGPLv2.1+ license. - -`hud_events` provides an API to display HUD event elements which can be used to -display various hints and messages. - -## Methods - -- `hud_event.new(name, event_def)`: Adds a new HUD event element to player `name`. - - `name` [string]: Player name - - `event_def` [table]: HUD event element definition. See below. - -## HUD event element definition - -HUD event element definition table, passed to `hud_event.new`. - -Example definition: - -```lua -{ - name = "ctf_bandages:healing", -- Can be any arbitrary string - color = "0x00FF00", -- Should be compatible with Minetest's HUD def - value = "x has healed y", -- The actual event to be displayed - -- Field `time` is automatically added by `hud_event.new` - -- to keep track of element expiry -} -``` - -## `players` table - -This is a table of tables, indexed by player names. This table holds the HUD -data of all online players. Each sub-table is a list of HUD event elements, -which are added by `hud_event.new`. - -```lua -local players = { - ["name"] = { - [1] = , - [2] = , - [3] = - ... - }, - ["name2"] = { - ... - }, - ... -} -``` - -## Changes - -Changes that have been made compared to the original `hud_score` mod. Lines mentioned underneath refer to the lines in the `hud_events`' init.lua file. -- replaced all occurences of `score` with `event` (10th March 2021) -- changed variables and arguments in the lines 5, 6 and 36 (10th march 2021) -- edited and added arguments in line 39 and 40 (10th march 2021) -- deleted an `if` statement after line 28 (10th march 2021) diff --git a/mods/other/hud_events/init.lua b/mods/other/hud_events/init.lua deleted file mode 100644 index b2fc3d8..0000000 --- a/mods/other/hud_events/init.lua +++ /dev/null @@ -1,125 +0,0 @@ -hud_event = {} -local hud = hudkit() - -local players = {} -local duration = 7 -local max = 3 -local next_check = 10000000 - -local function update(name) - local player = minetest.get_player_by_name(name) - if not player then - return - end - - -- Handle all elements marked for deletion - -- and rebuild table - local temp = {} - for _, def in ipairs(players[name]) do - if def.delete then - if hud:exists(player, def.name) then - hud:remove(player, def.name) - end - else - table.insert(temp, def) - end - end - - for i, def in ipairs(temp) do - local text = tostring(def.value) - if hud:exists(player, def.name) then - hud:change(player, def.name, "text", text) - hud:change(player, def.name, "offset", {x = 0, y = i * 20}) - else - hud:add(player, def.name, { - hud_elem_type = "text", - alignment = {x = 0, y = 0}, - position = {x = 0.5, y = 0.7}, - offset = {x = 0, y = i * 20}, - number = tonumber(def.color), - text = text, - z_index = -200 - }) - end - end - players[name] = temp -end - -function hud_event.new(name, def) - -- Verify HUD event element def - if not name or not def or type(def) ~= "table" or - not def.name or not def.value or not def.color then - error("hud_event: Invalid HUD event element definition", 2) - end - - local player = minetest.get_player_by_name(name) - if not player then - return - end - - -- Store element expiration time in def.time - -- and append event element def to players[name] - def.time = os.time() + duration - if next_check > duration then - next_check = duration - end - - -- If a HUD event element with the same name exists already, - -- reuse it instead of creating a new element - local is_new = true - for i, hud_event_spec in ipairs(players[name]) do - if hud_event_spec.name == def.name then - is_new = false - players[name][i] = def - break - end - end - - if is_new then - table.insert(players[name], def) - end - - -- If more than `max` active elements, mark oldest element for deletion - if #players[name] > max then - players[name][1].delete = true - end - - update(name) -end - -minetest.register_globalstep(function(dtime) - next_check = next_check - dtime - if next_check > 0 then - return - end - - next_check = 10000000 - - -- Loop through HUD score elements of all players - -- and remove them if they've expired - for name, hudset in pairs(players) do - local modified = false - for i, def in pairs(hudset) do - local rem = def.time - os.time() - if rem <= 0 then - def.delete = true - modified = true - elseif rem < next_check then - next_check = rem - end - end - - -- If a player's hudset was modified, update player's HUD - if modified then - update(name) - end - end -end) - -minetest.register_on_joinplayer(function(player) - players[player:get_player_name()] = {} -end) - -minetest.register_on_leaveplayer(function(player) - players[player:get_player_name()] = nil -end) diff --git a/mods/other/hud_events/mod.conf b/mods/other/hud_events/mod.conf deleted file mode 100644 index e91b4e4..0000000 --- a/mods/other/hud_events/mod.conf +++ /dev/null @@ -1,3 +0,0 @@ -name = hud_events -description = API for displaying events on HUD -depends = hudkit