Guest User

startup

a guest
Jul 11th, 2014
270
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.03 KB | None | 0 0
  1. function compactInv()  
  2.   for i = 1,16 do
  3.     if turtle.getItemCount(i) > 0 and turtle.getItemCount(i) < 64 then
  4.       turtle.select(i)
  5.       for j = i+1,16 do
  6.         if turtle.compareTo(j) then
  7.           turtle.select(j)
  8.           turtle.transferTo(i)
  9.           turtle.select(i)
  10.         end
  11.       end
  12.     end
  13.   end
  14.      
  15.   for i = 1,16 do
  16.     if turtle.getItemCount(i) > 0 then
  17.       for j = 1,i do
  18.         if turtle.getItemCount(j) == 0 then
  19.           turtle.select(i)
  20.           turtle.transferTo(j)
  21.           break
  22.         end
  23.       end
  24.     end
  25.   end
  26. end
  27.  
  28. function nextSlot(slot)
  29.   if slot == 16 then
  30.     return 1
  31.   else
  32.     return slot + 1
  33.   end
  34. end
  35.  
  36. function sendStackToPackager(packager,slot,packetSize)
  37.   print("Sending slot "..slot.. " to packager in packets of "..packetSize.." items.")
  38.   waitBeforeNextSlot = not turtle.compareTo(nextSlot(slot))
  39.      
  40.   while turtle.getItemCount(slot) > 8 do
  41.     --print("  enough items left to package ("..turtle.getItemCount(slot)..").")
  42.     buffer = packager.getStackInSlot(1)
  43.     while buffer ~= null and buffer["qty"] > 54 do
  44.       print("--Packager Overflow : Waiting 3s ("..buffer["qty"].." items left).")
  45.       sleep(3)
  46.       buffer = packager.getStackInSlot(1)
  47.     end
  48.     print("--Packager OK : dropping down "..packetSize.." items from slot "..slot..".")
  49.     turtle.dropDown(packetSize)
  50.     sleep(0.2)
  51.   end
  52.  
  53.   if waitBeforeNextSlot then
  54.     buffer = packager.getStackInSlot(1)
  55.     while buffer ~= null and buffer["qty"] > 0 do
  56.       if bak == buffer["qty"] then
  57.         print("There seems to be a problem with the packager : buffer size("..bak..") doesn't change.")
  58.       end
  59.       bak = buffer["qty"]
  60.      
  61.       print("--Slot Transiton : waiting ...")
  62.       sleep(1.2)
  63.  
  64.       buffer = packager.getStackInSlot(1)
  65.     end
  66.   end
  67. end
  68.  
  69.  
  70. local packager = peripheral.wrap("bottom")
  71. while true do
  72.   print("Compacting ...")
  73.   compactInv()
  74.   for i=1,16 do
  75.     turtle.select(i)
  76.     sendStackToPackager(packager,i,9)
  77.     sleep(0.2)
  78.   end
  79.   sleep(2)
  80. end
Advertisement
Add Comment
Please, Sign In to add comment