Advertisement
BillBodkin

BBCCitemSorter

Jun 3rd, 2015
370
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 5.29 KB | None | 0 0
  1. rednet.open("right")
  2.  
  3. minFuel = 200
  4. stuffToSort = true
  5. itemData = turtle.getItemDetail()
  6. storageServerId = 2
  7. senderId = 0
  8. finDistanceToGo = 0
  9. distanceOut = 0
  10. waiting = false
  11.  
  12. local success, blockData = turtle.inspect()
  13. if success then
  14.     turtle.turnLeft()
  15.     turtle.forward()
  16.     turtle.forward()
  17.     turtle.turnLeft()
  18. end
  19.  
  20. while turtle.getFuelLevel() < minFuel do
  21.     turtle.refuel(1)
  22.     turtle.refuel(2)
  23.     turtle.refuel(3)
  24.     turtle.refuel(4)
  25.     turtle.refuel(5)
  26.     turtle.refuel(6)
  27.     turtle.refuel(7)
  28.     turtle.refuel(8)
  29.     turtle.refuel(9)
  30.     turtle.refuel(10)
  31.     turtle.refuel(11)
  32.     turtle.refuel(12)
  33.     turtle.refuel(13)
  34.     turtle.refuel(14)
  35.     turtle.refuel(15)
  36.     turtle.refuel(16)
  37.     print("Fuel Level: "..turtle.getFuelLevel())
  38. end
  39.  
  40. while stuffToSort == true do
  41.     --check for chest amount in self
  42.     turtle.select(16)
  43.     itemData = turtle.getItemDetail()
  44.     if itemData then
  45.         if itemData.name == "minecraft:chest" then
  46.             print("got chests in slot 16")
  47.             if itemData.count < 2 then
  48.                 print("temData.count < 2")
  49.                 turtle.turnLeft()
  50.                 turtle.forward()
  51.                 turtle.forward()
  52.                 turtle.turnLeft()
  53.                 turtle.drop()
  54.                 turtle.turnLeft()
  55.                 turtle.forward()
  56.                 turtle.forward()
  57.                 turtle.turnLeft()
  58.                 turtle.forward()
  59.                 turtle.forward()
  60.                 turtle.forward()
  61.                 turtle.turnRight()
  62.                 turtle.suck()
  63.                 turtle.turnLeft()
  64.                 turtle.back()
  65.                 turtle.back()
  66.                 turtle.back()
  67.                 itemData = turtle.getItemDetail()
  68.                 while itemData.count < 2 do
  69.                     print("put chests in slot 16")
  70.                     itemData = turtle.getItemDetail()
  71.                 end
  72.             else
  73.                 print("there are enough chests in slot 16")
  74.             end
  75.         else
  76.             print("itemData.name ~= 'minecraft:chest'")
  77.             turtle.turnLeft()
  78.             turtle.forward()
  79.             turtle.forward()
  80.             turtle.turnLeft()
  81.             turtle.drop()
  82.             turtle.turnLeft()
  83.             turtle.forward()
  84.             turtle.forward()
  85.             turtle.turnLeft()
  86.             turtle.forward()
  87.             turtle.forward()
  88.             turtle.forward()
  89.             turtle.turnRight()
  90.             turtle.suck()
  91.             turtle.turnLeft()
  92.             turtle.back()
  93.             turtle.back()
  94.             turtle.back()
  95.             itemData = turtle.getItemDetail()
  96.             while itemData.count < 2 do
  97.                 print("put chests in slot 16")
  98.                 itemData = turtle.getItemDetail()
  99.             end
  100.         end
  101.     else
  102.         print("no data")
  103.         turtle.turnLeft()
  104.         turtle.forward()
  105.         turtle.forward()
  106.         turtle.turnLeft()
  107.         turtle.drop()
  108.         turtle.turnLeft()
  109.         turtle.forward()
  110.         turtle.forward()
  111.         turtle.turnLeft()
  112.         turtle.forward()
  113.         turtle.forward()
  114.         turtle.forward()
  115.         turtle.turnRight()
  116.         turtle.suck()
  117.         turtle.turnLeft()
  118.         turtle.back()
  119.         turtle.back()
  120.         turtle.back()
  121.         itemData = turtle.getItemDetail()
  122.         while itemData.count < 2 do
  123.             print("put chests in slot 16")
  124.             itemData = turtle.getItemDetail()
  125.         end
  126.     end
  127.     --check port 2 for stuff to store
  128.     turtle.turnLeft()
  129.     turtle.forward()
  130.     turtle.forward()
  131.     turtle.turnLeft()
  132.     turtle.select(1)
  133.     turtle.drop()
  134.     turtle.select(1)
  135.     turtle.drop()
  136.     turtle.select(2)
  137.     turtle.drop()
  138.     turtle.select(3)
  139.     turtle.drop()
  140.     turtle.select(4)
  141.     turtle.drop()
  142.     turtle.select(5)
  143.     turtle.drop()
  144.     turtle.select(6)
  145.     turtle.drop()
  146.     turtle.select(7)
  147.     turtle.drop()
  148.     turtle.select(8)
  149.     turtle.drop()
  150.     turtle.select(9)
  151.     turtle.drop()
  152.     turtle.select(10)
  153.     turtle.drop()
  154.     turtle.select(11)
  155.     turtle.drop()
  156.     turtle.select(12)
  157.     turtle.drop()
  158.     turtle.select(13)
  159.     turtle.drop()
  160.     turtle.select(14)
  161.     turtle.drop()
  162.     turtle.select(15)
  163.     turtle.drop()
  164.     turtle.select(1)
  165.     turtle.suck()
  166.     itemData = turtle.getItemDetail()
  167.     --get chest location and go there
  168.     if itemData then
  169.         turtle.turnLeft()
  170.         turtle.forward()
  171.         turtle.forward()
  172.         turtle.turnLeft()
  173.         print(itemData.name)
  174.         rednet.send(storageServerId, itemData.name)
  175.         senderId, message, protocol = rednet.receive()
  176.         if senderId == storageServerId then
  177.             finDistanceToGo = (tonumber(message) * 2)-1
  178.             print (finDistanceToGo)
  179.             while distanceOut < finDistanceToGo do
  180.                 while turtle.detect() do
  181.                     turtle.dig()
  182.                 end
  183.                 turtle.forward()
  184.                 distanceOut = distanceOut + 1
  185.             end
  186.             turtle.turnRight()
  187.             local success, blockData = turtle.inspect()
  188.             if success then
  189.                 print(blockData.name)
  190.                 if blockData.name == "minecraft:chest" then
  191.                     turtle.drop()
  192.                 else
  193.                     --build chest
  194.                     turtle.select(2)
  195.                     turtle.dig()
  196.                     turtle.forward()
  197.                     turtle.dig()
  198.                     turtle.digUp()
  199.                     turtle.forward()
  200.                     turtle.digUp()
  201.                     turtle.select(16)
  202.                     turtle.back()
  203.                     turtle.place()
  204.                     turtle.back()
  205.                     turtle.place()
  206.                     turtle.select(1)
  207.                     turtle.drop()
  208.                 end
  209.             else
  210.                 --build chest
  211.                 turtle.select(2)
  212.                 turtle.dig()
  213.                 turtle.forward()
  214.                 turtle.dig()
  215.                 turtle.digUp()
  216.                 turtle.forward()
  217.                 turtle.digUp()
  218.                 turtle.select(16)
  219.                 turtle.back()
  220.                 turtle.place()
  221.                 turtle.back()
  222.                 turtle.place()
  223.                 turtle.select(1)
  224.                 turtle.drop()
  225.             end
  226.             turtle.turnLeft()
  227.             while distanceOut > 0 do
  228.                 turtle.back()
  229.                 distanceOut = distanceOut - 1
  230.             end
  231.         end
  232.     else
  233.         --stuffToSort = false
  234.         turtle.select(1)
  235.         waiting = true
  236.         while waiting == true do
  237.             turtle.suck()
  238.             itemData = turtle.getItemDetail()
  239.             turtle.select(1)
  240.             if itemData then
  241.                 turtle.drop()
  242.                 waiting = false
  243.                 turtle.turnLeft()
  244.             turtle.forward()
  245.             turtle.forward()
  246.             turtle.turnLeft()
  247.             else
  248.                 print("Nothing to sort")
  249.             end
  250.         end
  251.     end
  252. end
  253.  
  254. rednet.close("right")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement