Deepcopy pointed_thing for after_place_node, give it to on_rightclick too.
This commit is contained in:
parent
d36ae912e7
commit
0d4128330e
|
@ -270,12 +270,18 @@ function minetest.item_place_node(itemstack, placer, pointed_thing, param2)
|
|||
|
||||
-- Run callback
|
||||
if def.after_place_node then
|
||||
-- Copy place_to because callback can modify it
|
||||
-- Deepcopy place_to and pointed_thing because callback can modify it
|
||||
local place_to_copy = {x=place_to.x, y=place_to.y, z=place_to.z}
|
||||
local pointed_thing_copy = {
|
||||
type = pointed_thing.type,
|
||||
under = pointed_thing.under,
|
||||
above = pointed_thing.above
|
||||
under = {
|
||||
x = pointed_thing.under.x,
|
||||
y = pointed_thing.under.y,
|
||||
z = pointed_thing.under.z},
|
||||
above = {
|
||||
x = pointed_thing.above.x,
|
||||
y = pointed_thing.above.y,
|
||||
z = pointed_thing.above.z}
|
||||
}
|
||||
if def.after_place_node(place_to_copy, placer, itemstack,
|
||||
pointed_thing_copy) then
|
||||
|
@ -317,7 +323,8 @@ function minetest.item_place(itemstack, placer, pointed_thing, param2)
|
|||
local n = minetest.get_node(pointed_thing.under)
|
||||
local nn = n.name
|
||||
if minetest.registered_nodes[nn] and minetest.registered_nodes[nn].on_rightclick then
|
||||
return minetest.registered_nodes[nn].on_rightclick(pointed_thing.under, n, placer, itemstack) or itemstack, false
|
||||
return minetest.registered_nodes[nn].on_rightclick(pointed_thing.under, n,
|
||||
placer, itemstack, pointed_thing) or itemstack, false
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -278,7 +278,7 @@ if minetest then
|
|||
local undef = minetest.registered_nodes[unode.name]
|
||||
if undef and undef.on_rightclick then
|
||||
undef.on_rightclick(pointed_thing.under, node, placer,
|
||||
itemstack)
|
||||
itemstack, pointed_thing)
|
||||
return
|
||||
end
|
||||
local pitch = placer:get_look_pitch()
|
||||
|
|
Loading…
Reference in New Issue