From 00618d13b5b17c7fd93f097397410dee5905ccd1 Mon Sep 17 00:00:00 2001 From: KaylebJay <44441970+KaylebJay@users.noreply.github.com> Date: Sat, 27 Jun 2020 09:29:50 -0600 Subject: [PATCH] Drill and laser: call node-specific on_dig (#556) This properly digs nodes that have a custom on_dig function specified. For normal nodes, the behaviour is kept the same. --- technic/tools/mining_drill.lua | 6 ++++-- technic/tools/mining_lasers.lua | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/technic/tools/mining_drill.lua b/technic/tools/mining_drill.lua index e54e73d..09ebdf9 100644 --- a/technic/tools/mining_drill.lua +++ b/technic/tools/mining_drill.lua @@ -51,13 +51,15 @@ local function drill_dig_it0 (pos,player) minetest.record_protection_violation(pos, player:get_player_name()) return end - local node=minetest.get_node(pos) + local node = minetest.get_node(pos) if node.name == "air" or node.name == "ignore" then return end if node.name == "default:lava_source" then return end if node.name == "default:lava_flowing" then return end if node.name == "default:water_source" then minetest.remove_node(pos) return end if node.name == "default:water_flowing" then minetest.remove_node(pos) return end - minetest.node_dig(pos,node,player) + local def = minetest.registered_nodes[node.name] + if not def then return end + def.on_dig(pos, node, player) end local function drill_dig_it1 (player) diff --git a/technic/tools/mining_lasers.lua b/technic/tools/mining_lasers.lua index 208b719..e4dd178 100644 --- a/technic/tools/mining_lasers.lua +++ b/technic/tools/mining_lasers.lua @@ -46,7 +46,7 @@ local function laser_node(pos, node, player) }) return end - minetest.node_dig(pos, node, player) + def.on_dig(pos, node, player) end local keep_node = {air = true}