Use diglib and lua_async

This commit is contained in:
Elias Fleckenstein 2021-11-24 17:28:40 +01:00
parent ac41c2259f
commit 2f419d8606
No known key found for this signature in database
GPG Key ID: 06927A5199D6C9B2
3 changed files with 21 additions and 8 deletions

View File

@ -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")

View File

@ -1,3 +1,4 @@
name = digcustom
author = Fleckenstein
description = A dragonfire CSM to automatically dig customizable nodes
depends = diglib, lua_async

View File

@ -1,2 +1,9 @@
# Enable DigCustom
digcustom (DigCustom) bool false
# Nodes to dig, comma separated
digcustom_nodes (DigCustom Nodes) string
# Maximum time to spend on digging a node.
# -1 means no limit
digcustom_max_time (DigCustom Max Time) int -1