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
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
|