mirror of
https://github.com/mt-mods/pipeworks.git
synced 2024-12-29 17:17:29 +01:00
only reject part of itemtack from chest, if possible
(e.g. if there's room for 50 of some item, and you send a stack of 99, 50 are added to the chest and a stack of 49 is rejected and sent on to the next destination)
This commit is contained in:
parent
8d50c191c8
commit
cf97f02434
16
compat.lua
16
compat.lua
@ -26,12 +26,13 @@ minetest.override_item("default:furnace", {
|
|||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
can_insert = function(pos,node,stack,direction)
|
can_insert = function(pos,node,stack,direction)
|
||||||
|
local onestack = stack:peek_item(1)
|
||||||
local meta = minetest.get_meta(pos)
|
local meta = minetest.get_meta(pos)
|
||||||
local inv = meta:get_inventory()
|
local inv = meta:get_inventory()
|
||||||
if direction.y == 1 then
|
if direction.y == 1 then
|
||||||
return inv:room_for_item("fuel", stack)
|
return inv:room_for_item("fuel", onestack)
|
||||||
else
|
else
|
||||||
return inv:room_for_item("src", stack)
|
return inv:room_for_item("src", onestack)
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
input_inventory = "dst",
|
input_inventory = "dst",
|
||||||
@ -77,10 +78,11 @@ minetest.override_item("default:furnace_active", {
|
|||||||
can_insert = function(pos, node, stack, direction)
|
can_insert = function(pos, node, stack, direction)
|
||||||
local meta = minetest.get_meta(pos)
|
local meta = minetest.get_meta(pos)
|
||||||
local inv = meta:get_inventory()
|
local inv = meta:get_inventory()
|
||||||
|
local onestack = stack:peek_item(1)
|
||||||
if direction.y == 1 then
|
if direction.y == 1 then
|
||||||
return inv:room_for_item("fuel", stack)
|
return inv:room_for_item("fuel", onestack)
|
||||||
else
|
else
|
||||||
return inv:room_for_item("src", stack)
|
return inv:room_for_item("src", onestack)
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
input_inventory = "dst",
|
input_inventory = "dst",
|
||||||
@ -109,7 +111,8 @@ minetest.override_item("default:chest", {
|
|||||||
can_insert = function(pos, node, stack, direction)
|
can_insert = function(pos, node, stack, direction)
|
||||||
local meta = minetest.get_meta(pos)
|
local meta = minetest.get_meta(pos)
|
||||||
local inv = meta:get_inventory()
|
local inv = meta:get_inventory()
|
||||||
return inv:room_for_item("main", stack)
|
local onestack = stack:peek_item(1)
|
||||||
|
return inv:room_for_item("main", onestack)
|
||||||
end,
|
end,
|
||||||
input_inventory = "main",
|
input_inventory = "main",
|
||||||
connect_sides = {left = 1, right = 1, back = 1, front = 1, bottom = 1, top = 1}
|
connect_sides = {left = 1, right = 1, back = 1, front = 1, bottom = 1, top = 1}
|
||||||
@ -137,7 +140,8 @@ minetest.override_item("default:chest_locked", {
|
|||||||
can_insert = function(pos, node, stack, direction)
|
can_insert = function(pos, node, stack, direction)
|
||||||
local meta = minetest.get_meta(pos)
|
local meta = minetest.get_meta(pos)
|
||||||
local inv = meta:get_inventory()
|
local inv = meta:get_inventory()
|
||||||
return inv:room_for_item("main", stack)
|
local onestack = stack:peek_item(1)
|
||||||
|
return inv:room_for_item("main", onestack)
|
||||||
end,
|
end,
|
||||||
connect_sides = {left = 1, right = 1, back = 1, front = 1, bottom = 1, top = 1}
|
connect_sides = {left = 1, right = 1, back = 1, front = 1, bottom = 1, top = 1}
|
||||||
},
|
},
|
||||||
|
Loading…
Reference in New Issue
Block a user