mirror of
https://github.com/luanti-org/luanti.git
synced 2025-09-15 18:57:08 +00:00
Deepcopy pointed_thing for after_place_node, give it to on_rightclick too.
This commit is contained in:
parent
3bbd280336
commit
e21b29f422
3 changed files with 16 additions and 7 deletions
|
@ -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
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue