]> git.lizzy.rs Git - autotool.git/commitdiff
Fix endless digging time when should dig instantly
authorElias Fleckenstein <eliasfleckenstein@web.de>
Fri, 11 Dec 2020 17:40:34 +0000 (18:40 +0100)
committerElias Fleckenstein <eliasfleckenstein@web.de>
Fri, 11 Dec 2020 17:40:34 +0000 (18:40 +0100)
init.lua

index 2805986abad376baa19d18d1935d492ee1f2c860..c61db1609a7613e0a6da9e2de610c31fe4e2427c 100644 (file)
--- a/init.lua
+++ b/init.lua
@@ -32,20 +32,20 @@ local function find_best_tool(nodename)
                        new_index = index
                end
        end
-       return new_index
+       return new_index, best_time
 end
 
 function autotool.select_best_tool(nodename)
        minetest.localplayer:set_wield_index(find_best_tool(nodename))
 end
 
-local new_index, old_index, pointed_pos
+local new_index, old_index, pointed_pos, best_time
 
 minetest.register_on_punchnode(function(pos, node)
        if minetest.settings:get_bool("autotool") then
                pointed_pos = pos
                old_index = old_index or minetest.localplayer:get_wield_index()
-               new_index = find_best_tool(node.name)
+               new_index, best_time = find_best_tool(node.name)
        end
 end)
 
@@ -56,11 +56,14 @@ minetest.register_globalstep(function()
                local pt = minetest.get_pointed_thing()
                if pt and pt.type == "node" and vector.equals(minetest.get_pointed_thing_position(pt), pointed_pos) and player:get_control().dig then
                        player:set_wield_index(new_index)
+                       if best_time == 0 then
+                               minetest.dig_node(pointed_pos)
+                       end
                        return
                end
        end
        player:set_wield_index(old_index)
-       new_index, old_index, pointed_pos = nil
+       new_index, old_index, pointed_pos, best_time = nil
 end)
 
 minetest.register_cheat("AutoTool", "Inventory", "autotool")