From 1a4adfb71b9db979f46298dd77bd467176600981 Mon Sep 17 00:00:00 2001 From: Wuzzy Date: Sun, 22 Feb 2015 09:07:59 +0100 Subject: [PATCH] Optimize mana regeneration for slow servers Slow servers are servers which call globalstep in a lower frequency than specified by the mana tick. --- init.lua | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/init.lua b/init.lua index 50e77fa..c27750f 100644 --- a/init.lua +++ b/init.lua @@ -240,16 +240,17 @@ mana.regen_timer = 0 minetest.register_globalstep(function(dtime) mana.regen_timer = mana.regen_timer + dtime if mana.regen_timer >= mana.settings.regen_timer then + local factor = math.floor(mana.regen_timer / mana.settings.regen_timer) local players = minetest.get_connected_players() for i=1, #players do local name = players[i]:get_player_name() if mana.playerlist[name] ~= nil then if players[i]:get_hp() > 0 then - mana.add_up_to(name, mana.playerlist[name].regen) + mana.add_up_to(name, mana.playerlist[name].regen * factor) end end end - mana.regen_timer = 0 + mana.regen_timer = mana.regen_timer % mana.settings.regen_timer end end)