From 1ed559bd2418dc34689160df09af8f779300ee9f Mon Sep 17 00:00:00 2001 From: Matthew I Date: Mon, 30 Jul 2012 09:45:26 -0400 Subject: Allow digging of unknown nodes This allows the removal of nodes with unknown types. get_item_callback() (C++) would fail if a node has an unknown type. Now it will try using the callback from minetest.nodedef_default in this case. Also, minetest.node_dig() (Lua) was altered to always allow digging when the node definition is empty (i.e. unknown node). --- builtin/item.lua | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'builtin') diff --git a/builtin/item.lua b/builtin/item.lua index 1b4b4d25a..4ed20e4f1 100644 --- a/builtin/item.lua +++ b/builtin/item.lua @@ -262,7 +262,8 @@ function minetest.node_dig(pos, node, digger) minetest.debug("node_dig") local def = ItemStack({name=node.name}):get_definition() - if not def.diggable or (def.can_dig and not def.can_dig(pos,digger)) then + -- Check if def ~= 0 because we always want to be able to remove unknown nodes + if #def ~= 0 and not def.diggable or (def.can_dig and not def.can_dig(pos,digger)) then minetest.debug("not diggable") minetest.log("info", digger:get_player_name() .. " tried to dig " .. node.name .. " which is not diggable " -- cgit v1.2.3