Advertisement
skypop

CC Conveyor

Jul 23rd, 2018
160
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. -- Conveyor
  2. -- by SukaiPoppuGo
  3. -- require mod Plethora
  4. -- Usage:
  5. -- Conveyor <from:string> <to:string>
  6. --
  7. -- Ex:
  8. -- Conveyor south north
  9.  
  10. local from, to = ...
  11. local delay = 20
  12.  
  13. os.setComputerLabel("Conveyor")
  14.  
  15. local inv = {}
  16.  
  17. local function hasMethod(name,method)
  18.     for _,m in pairs(peripheral.getMethods(name)) do
  19.         if m == method then
  20.             return true
  21.         end
  22.     end
  23.     return false
  24. end
  25.  
  26. for _,name in pairs(peripheral.getNames()) do
  27.     if hasMethod(name, "pushItems") then
  28.         table.insert(inv, peripheral.wrap(name))
  29.     end
  30. end
  31.  
  32. local function suck(container)
  33.     local slot = 1
  34.     while true do
  35.         print(string.format("Suck slot %s from %s", slot, from))
  36.         if not pcall(container.pullItems, from, slot) then
  37.             return
  38.         end
  39.         slot = slot+1
  40.     end
  41. end
  42.  
  43. local function dump(container)
  44.     for slot, item in pairs(container.list()) do
  45.         print(string.format("Dump slot %s to %s", slot, to))
  46.         if not container.pushItems(to, slot) then
  47.             print(string.format("Fail to dump slot %s to %s", slot, to))
  48.             return
  49.         end
  50.     end
  51. end
  52.  
  53. while true do
  54.     for _, container in pairs(inv) do
  55.         dump(container)
  56.         sleep()
  57.         suck(container)
  58.         sleep()
  59.         dump(container)
  60.         sleep()
  61.     end
  62.     print("pause")
  63.     sleep(delay)
  64. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement