2023-11-30 21:35:35 +01:00

26 lines
902 B
Lua

rp_attached = {}
-- Detach all specially attached nodes from the node at pos.
-- * pos: Position: Node at which nodes are attached to
-- * digger: optional player object. Specify this if the detaching of
-- nodes should be treated as being dug by digger
rp_attached.detach_from_node = function(pos, digger)
local below = vector.add(pos, vector.new(0,-1,0))
local belownode = minetest.get_node(below)
local at = minetest.get_item_group(belownode.name, "_attached_node_top") == 1
if at then
util.dig_down(pos, belownode, digger)
return
end
local above = vector.add(pos, vector.new(0,1,0))
local abovenode = minetest.get_node(above)
local ab = minetest.get_item_group(abovenode.name, "_attached_node_bottom") == 1
if ab then
util.dig_up(pos, abovenode, digger)
end
end
minetest.register_on_dignode(function(pos, oldnode, digger)
rp_attached.detach_from_node(pos, digger)
end)