From 07a5e59ae72cca5a8e58dca7210e5992d8e9d527 Mon Sep 17 00:00:00 2001 From: Perttu Ahola Date: Mon, 9 Apr 2012 21:14:16 +0300 Subject: [PATCH] Allow redefining minetest.item_place and the like --- builtin/item.lua | 23 +++++++++++++++-------- 1 file 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, }