silo bugs fixed

This commit is contained in:
Joachim Stolberg 2020-07-10 20:18:10 +02:00
parent f7c3b8731f
commit d87ea392b1

View File

@ -26,14 +26,18 @@ local function allow_metadata_inventory_put(pos, listname, index, stack, player)
if minetest.is_protected(pos, player:get_player_name()) then if minetest.is_protected(pos, player:get_player_name()) then
return 0 return 0
end end
local nvm = techage.get_nvm(pos) -- check if it is powder
nvm.item_name = nil local ndef = minetest.registered_craftitems[stack:get_name()] or {}
local inv = minetest.get_meta(pos):get_inventory() if ndef.groups and ndef.groups.powder == 1 then
if inv:is_empty(listname) then local nvm = techage.get_nvm(pos)
return stack:get_count() nvm.item_name = nil
end local inv = minetest.get_meta(pos):get_inventory()
if inv:contains_item(listname, ItemStack(stack:get_name())) then if inv:is_empty(listname) then
return stack:get_count() return stack:get_count()
end
if inv:contains_item(listname, ItemStack(stack:get_name())) then
return stack:get_count()
end
end end
return 0 return 0
end end
@ -229,10 +233,21 @@ techage.register_node({"techage:ta3_silo", "techage:ta4_silo"}, {
end end
end, end,
on_push_item = function(pos, in_dir, stack) on_push_item = function(pos, in_dir, stack)
local inv = M(pos):get_inventory() -- check if it is powder
if inv:room_for_item("main", stack) then local name = stack:get_name()
inv:add_item("main", stack) local ndef = minetest.registered_craftitems[name] or {}
return true if ndef.groups and ndef.groups.powder == 1 then
local inv = M(pos):get_inventory()
if inv:is_empty("main") then
inv:add_item("main", stack)
return true
end
if inv:contains_item("main", name) and inv:room_for_item("main", stack) then
inv:add_item("main", stack)
return true
end
end end
return false return false
end, end,