aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--builtin/item.lua23
1 files changed, 15 insertions, 8 deletions
diff --git a/builtin/item.lua b/builtin/item.lua
index 678a5cdac..440236fbe 100644
--- a/builtin/item.lua
+++ b/builtin/item.lua
@@ -276,6 +276,13 @@ function minetest.node_dig(pos, node, digger)
end
end
+-- This is used to allow mods to redefine minetest.item_place and so on
+local function redef_wrapper(table, name)
+ return function(...)
+ return table[name](...)
+ end
+end
+
--
-- Item definition defaults
--
@@ -295,12 +302,12 @@ minetest.nodedef_default = {
tool_capabilities = nil,
-- Interaction callbacks
- on_place = minetest.item_place,
- on_drop = minetest.item_drop,
+ on_place = redef_wrapper(minetest, 'item_place'), -- minetest.item_place
+ on_drop = redef_wrapper(minetest, 'item_drop'), -- minetest.item_drop
on_use = nil,
- on_punch = minetest.node_punch,
- on_dig = minetest.node_dig,
+ on_punch = redef_wrapper(minetest, 'node_punch'), -- minetest.node_punch
+ on_dig = redef_wrapper(minetest, 'node_dig'), -- minetest.node_dig
-- Node properties
drawtype = "normal",
@@ -346,8 +353,8 @@ minetest.craftitemdef_default = {
tool_capabilities = nil,
-- Interaction callbacks
- on_place = minetest.item_place,
- on_drop = minetest.item_drop,
+ on_place = redef_wrapper(minetest, 'item_place'), -- minetest.item_place
+ on_drop = redef_wrapper(minetest, 'item_drop'), -- minetest.item_drop
on_use = nil,
}
@@ -364,8 +371,8 @@ minetest.tooldef_default = {
tool_capabilities = nil,
-- Interaction callbacks
- on_place = minetest.item_place,
- on_drop = minetest.item_drop,
+ on_place = redef_wrapper(minetest, 'item_place'), -- minetest.item_place
+ on_drop = redef_wrapper(minetest, 'item_drop'), -- minetest.item_drop
on_use = nil,
}