Add on_rightclick(pos, node, clicker) callback for nodes
This commit is contained in:
parent
f264cf9833
commit
42e67c79c1
|
@ -231,9 +231,19 @@ function minetest.item_place_object(itemstack, placer, pointed_thing)
|
||||||
end
|
end
|
||||||
|
|
||||||
function minetest.item_place(itemstack, placer, pointed_thing)
|
function minetest.item_place(itemstack, placer, pointed_thing)
|
||||||
|
-- Call on_rightclick if the pointed node defines it
|
||||||
|
if pointed_thing.type == "node" then
|
||||||
|
local n = minetest.env:get_node(pointed_thing.under)
|
||||||
|
local nn = n.name
|
||||||
|
if minetest.registered_nodes[nn] and minetest.registered_nodes[nn].on_rightclick then
|
||||||
|
minetest.registered_nodes[nn].on_rightclick(pointed_thing.under, n, placer)
|
||||||
|
return
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
if itemstack:get_definition().type == "node" then
|
if itemstack:get_definition().type == "node" then
|
||||||
return minetest.item_place_node(itemstack, placer, pointed_thing)
|
return minetest.item_place_node(itemstack, placer, pointed_thing)
|
||||||
else
|
elseif itemstack:get_definition().type ~= "none" then
|
||||||
return minetest.item_place_object(itemstack, placer, pointed_thing)
|
return minetest.item_place_object(itemstack, placer, pointed_thing)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -375,6 +385,7 @@ minetest.nodedef_default = {
|
||||||
can_dig = nil,
|
can_dig = nil,
|
||||||
|
|
||||||
on_punch = redef_wrapper(minetest, 'node_punch'), -- minetest.node_punch
|
on_punch = redef_wrapper(minetest, 'node_punch'), -- minetest.node_punch
|
||||||
|
on_rightclick = nil,
|
||||||
on_dig = redef_wrapper(minetest, 'node_dig'), -- minetest.node_dig
|
on_dig = redef_wrapper(minetest, 'node_dig'), -- minetest.node_dig
|
||||||
|
|
||||||
on_receive_fields = nil,
|
on_receive_fields = nil,
|
||||||
|
@ -464,7 +475,7 @@ minetest.noneitemdef_default = { -- This is used for the hand and unknown items
|
||||||
tool_capabilities = nil,
|
tool_capabilities = nil,
|
||||||
|
|
||||||
-- Interaction callbacks
|
-- Interaction callbacks
|
||||||
on_place = nil,
|
on_place = redef_wrapper(minetest, 'item_place'),
|
||||||
on_drop = nil,
|
on_drop = nil,
|
||||||
on_use = nil,
|
on_use = nil,
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue