summaryrefslogtreecommitdiff
path: root/builtin
diff options
context:
space:
mode:
authorMatthew I <matttpt@gmail.com>2012-07-30 09:45:26 -0400
committerPerttu Ahola <celeron55@gmail.com>2012-08-12 16:04:18 +0300
commit1ed559bd2418dc34689160df09af8f779300ee9f (patch)
tree35ba0943ed8c1fe5aafd5c27c760b7c30bb65393 /builtin
parente3b831e97505a6bd6a07813b2a0b8608637a3cd9 (diff)
downloadminetest-1ed559bd2418dc34689160df09af8f779300ee9f.tar.gz
minetest-1ed559bd2418dc34689160df09af8f779300ee9f.tar.bz2
minetest-1ed559bd2418dc34689160df09af8f779300ee9f.zip
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).
Diffstat (limited to 'builtin')
-rw-r--r--builtin/item.lua3
1 files changed, 2 insertions, 1 deletions
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 "