aboutsummaryrefslogtreecommitdiff
path: root/builtin
diff options
context:
space:
mode:
Diffstat (limited to 'builtin')
-rw-r--r--builtin/item.lua10
-rw-r--r--builtin/item_entity.lua5
2 files changed, 13 insertions, 2 deletions
diff --git a/builtin/item.lua b/builtin/item.lua
index 69c4bd0bb..1349fdf63 100644
--- a/builtin/item.lua
+++ b/builtin/item.lua
@@ -290,7 +290,15 @@ function minetest.handle_node_drops(pos, drops, digger)
if digger:get_inventory() then
local _, dropped_item
for _, dropped_item in ipairs(drops) do
- digger:get_inventory():add_item("main", dropped_item)
+ local left = digger:get_inventory():add_item("main", dropped_item)
+ if not left:is_empty() then
+ local p = {
+ x = pos.x + math.random()/2-0.25,
+ y = pos.y + math.random()/2-0.25,
+ z = pos.z + math.random()/2-0.25,
+ }
+ minetest.env:add_item(p, left)
+ end
end
end
end
diff --git a/builtin/item_entity.lua b/builtin/item_entity.lua
index 46415e538..1699cb03c 100644
--- a/builtin/item_entity.lua
+++ b/builtin/item_entity.lua
@@ -109,7 +109,10 @@ minetest.register_entity("__builtin:item", {
on_punch = function(self, hitter)
if self.itemstring ~= '' then
- hitter:get_inventory():add_item("main", self.itemstring)
+ local left = hitter:get_inventory():add_item("main", self.itemstring)
+ if not left:is_empty() then
+ return
+ end
end
self.object:remove()
end,