KaylebJay
2020-06-27 00618d13b5b17c7fd93f097397410dee5905ccd1
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.
2 files modified
8 ■■■■■ changed files
technic/tools/mining_drill.lua 6 ●●●●● patch | view | raw | blame | history
technic/tools/mining_lasers.lua 2 ●●● patch | view | raw | blame | history
technic/tools/mining_drill.lua
@@ -51,13 +51,15 @@
        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)
technic/tools/mining_lasers.lua
@@ -46,7 +46,7 @@
        })
        return
    end
    minetest.node_dig(pos, node, player)
    def.on_dig(pos, node, player)
end
local keep_node = {air = true}