]> git.lizzy.rs Git - killaura.git/commitdiff
Add interval
authorElias Fleckenstein <eliasfleckenstein@web.de>
Fri, 8 Jan 2021 17:08:30 +0000 (18:08 +0100)
committerElias Fleckenstein <eliasfleckenstein@web.de>
Fri, 8 Jan 2021 17:08:30 +0000 (18:08 +0100)
init.lua

index cf277e824a14d31a8b6acf282fe33a74395c273d..d3cc5fc03378b975713fb0904e589a5797717d1f 100644 (file)
--- a/init.lua
+++ b/init.lua
@@ -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)