Advertisement
Guest User

oc_adv_inscribers.lua

a guest
Sep 19th, 2018
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.31 KB | None | 0 0
  1. local component = require("component")
  2. local sides = require("sides")
  3.  
  4. local lsched = require("lsched")
  5.  
  6. local tp =
  7. {
  8.     { tp_proxy = component.proxy("c47adbaa-de6e-4b20-8caf-5accdb262513"), in_side = sides.east, ex_sides = { sides.up, sides.north, sides.down, sides.south }},
  9.     { tp_proxy = component.proxy("9823a6de-bc83-4799-a078-37659f77f205"), in_side = sides.west, ex_sides = { sides.up, sides.north, sides.down, sides.south }}
  10. }
  11.  
  12. local function transfer(tp_proxy, in_side, ex_side)
  13.   local items = tp_proxy.getAllStacks(in_side)
  14.  
  15.   for _, slot in pairs({1, 2, 3}) do
  16.     local ex_slot
  17.     if items[slot].label == "Redstone" then ex_slot = 2
  18.     elseif items[slot].label == "Printed Silicon" then ex_slot = 3
  19.     else ex_slot = 1
  20.     end
  21.  
  22.     while not tp_proxy.transferItem(in_side, ex_side, items[slot].size, slot, ex_slot) do lsched.true_sleep(0.1) end
  23.   end
  24. end
  25.  
  26. local function ender_sched(tps)
  27.   local tp_idx, ex_idx = 1, 1
  28.   while true do
  29.     while lsched.is_empty(tp[tp_idx].tp_proxy, tp[tp_idx].in_side, {1, 2, 3}) do lsched.true_sleep(0.1) end
  30.     transfer(tp[tp_idx].tp_proxy, tp[tp_idx].in_side, tp[tp_idx].ex_sides[ex_idx])
  31.  
  32.     ex_idx = ex_idx + 1
  33.     if ex_idx > #tp[tp_idx].ex_sides then
  34.       ex_idx = 1
  35.       tp_idx = tp_idx + 1
  36.       if tp_idx > #tp then
  37.         tp_idx = 1
  38.       end
  39.     end
  40.   end
  41. end
  42.  
  43. main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement