]> git.lizzy.rs Git - digcustom.git/blobdiff - init.lua
Use diglib and lua_async
[digcustom.git] / init.lua
index 59b80dd56425a937787c688aeffae29bee5f71e2..f305ad8004a8f1b6a26c8547076ca02f565fba43 100644 (file)
--- a/init.lua
+++ b/init.lua
@@ -1,13 +1,18 @@
-minetest.register_globalstep(function()
-       if minetest.settings:get_bool("digcustom") then
-               local list = (minetest.settings:get("digcustom_nodes") or ""):split(",")
-               local positions = minetest.find_nodes_near(minetest.localplayer:get_pos(), 5, list, true)
-               for i, pos in ipairs(positions) do
-                       if i > 5 then break end
-                       minetest.dig_node(pos)
+async(function()
+       while true do
+               if minetest.settings:get_bool("digcustom") and minetest.localplayer then
+                       local list = (minetest.settings:get("digcustom_nodes") or ""):split(",")
+                       local node_pos = minetest.find_node_near(minetest.localplayer:get_pos(), 5, list, true)
+                       local max_time = tonumber(minetest.settings:get("digcustom_max_time")) or -1
+
+                       if node_pos then
+                               await(diglib.dig_node(node_pos, max_time))
+                       end
                end
+
+               lua_async.yield()
        end
-end)
+end)()
 
 minetest.register_list_command("digcustom", "Configue custom autodig nodes", "digcustom_nodes")