From 2f419d86060c106a4c3fdce758311d5d2ab8737f Mon Sep 17 00:00:00 2001 From: Elias Fleckenstein Date: Wed, 24 Nov 2021 17:28:40 +0100 Subject: Use diglib and lua_async --- init.lua | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) (limited to 'init.lua') diff --git a/init.lua b/init.lua index 59b80dd..f305ad8 100644 --- 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") -- cgit v1.2.3