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
|
-- Run callback
|
||||||
if def.after_place_node then
|
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 place_to_copy = {x=place_to.x, y=place_to.y, z=place_to.z}
|
||||||
local pointed_thing_copy = {
|
local pointed_thing_copy = {
|
||||||
type = pointed_thing.type,
|
type = pointed_thing.type,
|
||||||
under = pointed_thing.under,
|
under = {
|
||||||
above = pointed_thing.above
|
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,
|
if def.after_place_node(place_to_copy, placer, itemstack,
|
||||||
pointed_thing_copy) then
|
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 n = minetest.get_node(pointed_thing.under)
|
||||||
local nn = n.name
|
local nn = n.name
|
||||||
if minetest.registered_nodes[nn] and minetest.registered_nodes[nn].on_rightclick then
|
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
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -278,7 +278,7 @@ if minetest then
|
||||||
local undef = minetest.registered_nodes[unode.name]
|
local undef = minetest.registered_nodes[unode.name]
|
||||||
if undef and undef.on_rightclick then
|
if undef and undef.on_rightclick then
|
||||||
undef.on_rightclick(pointed_thing.under, node, placer,
|
undef.on_rightclick(pointed_thing.under, node, placer,
|
||||||
itemstack)
|
itemstack, pointed_thing)
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
local pitch = placer:get_look_pitch()
|
local pitch = placer:get_look_pitch()
|
||||||
|
|
Loading…
Reference in New Issue