Skip to content

Commit

Permalink
Drop nodes as items when dugged and no room in inventory and dont rem…
Browse files Browse the repository at this point in the history
…ove dropped items when no room in inventory
  • Loading branch information
PilzAdam committed Feb 21, 2013
1 parent b29834a commit ef6b8be
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 2 deletions.
10 changes: 9 additions & 1 deletion builtin/item.lua
Expand Up @@ -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
Expand Down
5 changes: 4 additions & 1 deletion builtin/item_entity.lua
Expand Up @@ -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,
Expand Down

0 comments on commit ef6b8be

Please sign in to comment.