diff --git a/util.lua b/util.lua index e857e79..7763e5a 100644 --- a/util.lua +++ b/util.lua @@ -71,6 +71,7 @@ digtron.mark_diggable = function(pos, nodes_dug, player) elseif (targetdef.diggable or targetdef.buildable_to) and (targetdef.can_dig == nil or targetdef.can_dig(pos, player)) and targetdef.on_dig == minetest.nodedef_default.on_dig and + not targetdef.preserve_metadata and target.name ~= "air" then nodes_dug:set(pos.x, pos.y, pos.z, true) local in_known_group = false @@ -94,16 +95,7 @@ digtron.mark_diggable = function(pos, nodes_dug, player) end end - local drops = minetest.get_node_drops(target.name, "") - - if targetdef.preserve_metadata ~= nil then - local targetmeta = minetest.get_meta(pos):to_table() - -- preserve_metadata may modify all its parameters, but - -- we only care about the modified drops, anyway - targetdef.preserve_metadata(pos, target, targetmeta.fields, drops) - end - - return material_cost, drops + return material_cost, minetest.get_node_drops(target.name, "") end return 0 end