diff options
-rw-r--r-- | init.lua | 18 |
1 files changed, 18 insertions, 0 deletions
@@ -1,8 +1,22 @@ +local etime = 0 + minetest.register_globalstep(function(dtime) local player = minetest.localplayer if not player then return end + etime = etime + dtime local control = player:get_control() if minetest.settings:get_bool("killaura") or minetest.settings:get_bool("forcefield") and control.dig then + local interval_str = minetest.settings:get("killaura_interval") or "0" + local interval + if interval_str == "auto" then + interval = player:get_wielded_item():get_tool_capabilities().full_punch_interval + else + interval = tonumber(interval_str) or 0 + end + if etime < interval then + return + end + local punched_anything = false local friendlist = (minetest.settings:get("friendlist") or ""):split(",") for _, obj in ipairs(minetest.get_objects_inside_radius(player:get_pos(), 5)) do local do_attack = true @@ -18,8 +32,12 @@ minetest.register_globalstep(function(dtime) end if do_attack then obj:punch() + punched_anything = true end end + if punched_anything then + etime = 0 + end end end) |