You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

49 lines
1.4 KiB

local component = require('component')
local event = require('event')
local serialization = require('serialization')
local sides = require('sides')
local transposer = component.proxy(component.get("260", "transposer"))
IN_DIR = sides.south
OUT_DIR = sides.north
while true do
local up = transposer.getAllStacks(IN_DIR)
local stack = up()
local slot = 1
while stack do
if stack.name then
print(serialization.serialize(stack))
-- find the first empty slot
local output = transposer.getAllStacks(OUT_DIR)
local output_stack = output()
local dest_slot = 1
while output_stack do
-- find stack that matches item
if not output_stack.name then
break
end
dest_slot = dest_slot + 1
output_stack = output()
end
if dest_slot > transposer.getInventorySize(OUT_DIR) then
print("Bottom inventory full")
break
end
local result = transposer.transferItem(IN_DIR, OUT_DIR, stack.size, slot, dest_slot)
print(result)
-- todo handle if not everything was transfered
end
stack = up()
slot = slot + 1
end
-- "sleep"
if event.pull(2, "interrupted") then
break
end
end