1
0
mirror of https://github.com/luanti-org/luanti.git synced 2025-10-24 05:15:22 +02:00

builtin: Return 'obj' from 'core.item_drop' (#15880)

This also includes a minor bugfix where 'itemstack' was cleared
even if the object placement failed.
This commit is contained in:
SmallJoker
2025-03-11 20:00:35 +01:00
committed by GitHub
parent afb15978d9
commit 23d0fb2d3f
3 changed files with 31 additions and 6 deletions

View File

@@ -360,13 +360,12 @@ end
function core.item_drop(itemstack, dropper, pos)
local dropper_is_player = dropper and dropper:is_player()
local p = table.copy(pos)
local cnt = itemstack:get_count()
if dropper_is_player then
p.y = p.y + 1.2
end
local item = itemstack:take_item(cnt)
local obj = core.add_item(p, item)
local obj = core.add_item(p, ItemStack(itemstack))
if obj then
itemstack:clear()
if dropper_is_player then
local dir = dropper:get_look_dir()
dir.x = dir.x * 2.9
@@ -375,7 +374,7 @@ function core.item_drop(itemstack, dropper, pos)
obj:set_velocity(dir)
obj:get_luaentity().dropped_by = dropper:get_player_name()
end
return itemstack
return itemstack, obj
end
-- If we reach this, adding the object to the
-- environment failed