only reject part of itemtack from chest/machine/etc., 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)
| | |
| | | allow_metadata_inventory_take = technic.machine_inventory_take, |
| | | tube = { |
| | | can_insert = function (pos, node, stack, direction) |
| | | return minetest.get_meta(pos):get_inventory():room_for_item("src", stack) |
| | | local onestack = stack:peek_item(1) |
| | | return minetest.get_meta(pos):get_inventory():room_for_item("src", onestack) |
| | | end, |
| | | insert_object = function (pos, node, stack, direction) |
| | | return minetest.get_meta(pos):get_inventory():add_item("src", stack) |
| | |
| | | groups = {snappy=2, choppy=2, oddly_breakable_by_hand=2, tubedevice=1, tubedevice_receiver=1}, |
| | | tube = { |
| | | can_insert = function(pos, node, stack, direction) |
| | | return minetest.get_meta(pos):get_inventory():room_for_item("main",stack) |
| | | local onestack = stack:peek_item(1) |
| | | return minetest.get_meta(pos):get_inventory():room_for_item("main", onestack) |
| | | end, |
| | | insert_object = function(pos, node, stack, direction) |
| | | return minetest.get_meta(pos):get_inventory():add_item("main",stack) |
| | | return minetest.get_meta(pos):get_inventory():add_item("main", stack) |
| | | end, |
| | | connect_sides = {left=1, right=1, front=1, back=1, top=1, bottom=1}, |
| | | }, |
| | |
| | | end |
| | | local meta = minetest.get_meta(pos) |
| | | local inv = meta:get_inventory() |
| | | local onestack = stack:peek_item(1) |
| | | if direction.y > 0 then |
| | | return inv:room_for_item("src", stack) |
| | | return inv:room_for_item("src", onestack) |
| | | else |
| | | return inv:room_for_item("dst", stack) |
| | | return inv:room_for_item("dst", onestack) |
| | | end |
| | | end, |
| | | connect_sides = {left=1, right=1, back=1, top=1, bottom=1}, |
| | |
| | | can_insert = function(pos, node, stack, direction) |
| | | local meta = minetest.get_meta(pos) |
| | | local inv = meta:get_inventory() |
| | | return inv:room_for_item("src", stack) |
| | | local onestack = stack:peek_item(1) |
| | | return inv:room_for_item("src", onestack) |
| | | end, |
| | | connect_sides = {left=1, right=1, back=1, top=1, bottom=1}, |
| | | } |
| | |
| | | can_insert = function(pos, node, stack, direction) |
| | | local meta = minetest.get_meta(pos) |
| | | local inv = meta:get_inventory() |
| | | return inv:room_for_item("src", stack) |
| | | local onestack = stack:peek_item(1) |
| | | return inv:room_for_item("src", onestack) |
| | | end, |
| | | connect_sides = {left = 1, right = 1, back = 1, top = 1, bottom = 1}, |
| | | } |
| | |
| | | can_insert = function(pos, node, stack, direction) |
| | | local meta = minetest.get_meta(pos) |
| | | 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, |
| | | input_inventory = "main", |
| | | connect_sides = {left=1, right=1, front=1, back=1, top=1, bottom=1}, |