Guest User

GetLava42

a guest
May 25th, 2015
233
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 4.67 KB | None | 0 0
  1. args = {...}
  2. Horizontal = 0
  3. if args[1] ~= nil then
  4.   Horizontal = tonumber(args[1])
  5. end
  6. if args[1] == nil then
  7.   print("Proper usage: getlavaNN numLeftRightStart")
  8.   return
  9. end
  10.  
  11. X = 0
  12. Y = 0
  13. Z = 0
  14.  
  15. FarthestXThisRun = 0
  16.  
  17. function UseBucket()
  18.   turtle.select(2)
  19.   if turtle.placeDown() == true then
  20.     return true
  21.   else
  22.     return false
  23.   end
  24. end
  25.  
  26. function MoveForward()
  27.   if turtle.forward() == true then
  28.     X=X+1
  29.     if X > FarthestXThisRun then
  30.       FarthestXThisRun = X
  31.     end
  32.     return true
  33.   else
  34.     return false
  35.   end
  36. end
  37.  
  38. function MoveBack()
  39.   if turtle.back() == true then
  40.     X=X-1
  41.     return true
  42.   else
  43.     return false
  44.   end
  45. end
  46.  
  47. function MoveDown()
  48.   if turtle.down() == true then
  49.     Z=Z-1
  50.     return true
  51.   else
  52.     return false
  53.   end
  54. end
  55.  
  56. function MoveUp()
  57.   if turtle.up() == true then
  58.     Z=Z+1
  59.     return true
  60.   else
  61.     return false
  62.   end
  63. end
  64.  
  65. function rewind()
  66.   while Z < 0 do
  67.     if MoveUp() == false then
  68.         print("ceiling issue")
  69.     end
  70.   end
  71.   while X > 0 do
  72.     if MoveBack() == false then
  73.        print("backboard issue")
  74.     end
  75.   end
  76. end
  77.  
  78. function forwardwind()
  79.   for i=0, FarthestXThisRun, 1 do
  80.     MoveForward()
  81.   end
  82. end
  83.  
  84. function useFuel()
  85.   turtle.select(1)
  86.   turtle.transferTo(16,2)
  87.   turtle.select(16)
  88.   turtle.refuel()
  89. end
  90.  
  91. function refuel()
  92.   if turtle.getFuelLevel() < 10000 then
  93.     turtle.select(1)
  94.     if turtle.getItemCount() > 4 then
  95.       useFuel()
  96.     else
  97.       print("Out of fuel!")
  98.       rewind()
  99.       UnHorizon()
  100.       pitStop()
  101.       print("All refueled.")
  102.       AdjustHorizontal()
  103.       forwardwind()
  104.     end
  105.   end
  106. end
  107.  
  108. function gotbuckets()
  109.   turtle.select(2)
  110.   if turtle.getItemCount() < 2 then
  111.     return false
  112.   else
  113.     return true
  114.   end
  115. end
  116.  
  117. function sort()
  118.   for i=1, 2, 1 do
  119.     turtle.select(i)
  120.     for b=3, 16, 1 do
  121.       if turtle.compareTo(b) == true then
  122.         turtle.select(b)
  123.         turtle.transferTo(i)
  124.         turtle.select(i)
  125.       end
  126.     end
  127.   end
  128. end
  129.  
  130. function SortSuck()
  131.   for i=3, 16, 1 do
  132.     turtle.suck()
  133.   end
  134.   sort()
  135.   for i=3, 16, 1 do
  136.     turtle.select(i)
  137.     turtle.drop()
  138.   end
  139. end
  140.  
  141. function GotSpace()
  142.   local rem = turtle.getSelectedSlot()
  143.   turtle.select(15)
  144.   if turtle.getItemCount() > 0 then
  145.     turtle.select(rem)
  146.     return false
  147.   else
  148.     turtle.select(rem)
  149.     return true
  150.   end
  151. end
  152.  
  153. function AdjustHorizontal()
  154.   turtle.forward()
  155.   turtle.forward()
  156.   turtle.forward()
  157.   if Horizontal >= 0 then
  158.     turtle.turnRight()
  159.     for i=0, Horizontal, 1 do
  160.       turtle.forward()
  161.     end
  162.     turtle.turnLeft()
  163.   end
  164.   if Horizontal < 0 then
  165.     turtle.turnLeft()
  166.     for i=0, (Horizontal*(-1)), 1 do
  167.       turtle.forward()
  168.     end
  169.     turtle.turnRight()
  170.   end
  171. end
  172.  
  173. function UnHorizon()
  174.   if Horizontal > 0 then
  175.     turtle.turnLeft()
  176.     for i=0, Horizontal, 1 do
  177.       turtle.forward()
  178.     end
  179.     turtle.turnRight()
  180.   end
  181.   if Horizontal < 0 then
  182.     turtle.turnRight()
  183.     for i=0, (Horizontal*(-1)), 1 do
  184.       turtle.forward()
  185.     end
  186.     turtle.turnLeft()
  187.   end
  188.   turtle.back()
  189.   turtle.back()
  190.   turtle.back()
  191. end
  192.  
  193. function pitStop()
  194.     turtle.turnRight()
  195.     SortSuck()
  196.     turtle.turnLeft()
  197.     turtle.turnLeft()
  198.     SortSuck()
  199.     turtle.turnRight()
  200.     refuel()
  201. end
  202.  
  203. pitStop()
  204.  
  205. while turtle.getFuelLevel() < 200 do
  206.   refuel()
  207. end
  208.  
  209. while turtle.getFuelLevel() > 100 do
  210.   AdjustHorizontal()
  211.   forwardwind()
  212.  
  213.   while GotSpace() == true and gotbuckets() == true do
  214.     while turtle.getFuelLevel() < 200 do refuel() end
  215.     UseBucket()
  216.     if MoveDown() == false then
  217.       while Z < 0 do MoveUp() end
  218.       if MoveForward() == false then
  219.         print("BRICK WALL!")
  220.         print("Old Horizontal:", Horizontal)
  221.         rewind()
  222.         if Horizontal >= 0 then
  223.           Horizontal = Horizontal + 1
  224.           turtle.turnRight()
  225.           if turtle.forward() == false then
  226.             print("End of run reached.")
  227.             turtle.turnLeft()
  228.             UnHorizon()
  229.             pitStop()
  230.             print("All done!")
  231.             return
  232.           end
  233.           turtle.turnLeft()
  234.         end
  235.         if Horizontal < 0 then
  236.         Horizontal = Horizontal - 1
  237.           turtle.turnLeft()
  238.           if turtle.forward() == false then
  239.             print("End of run reached.")
  240.             turtle.turnRight()
  241.             UnHorizon()
  242.             pitStop()
  243.             print("All done!")
  244.             return
  245.           end
  246.           turtle.turnRight()
  247.         end
  248.         print("New Horizontal:", Horizontal)
  249.         FarthestXThisRun = 0
  250.       end
  251.     end
  252.   end
  253.  
  254.   rewind()
  255.   UnHorizon()
  256.   pitStop()
  257. end
  258.  
  259. rewind()
  260. UnHorizon()
Add Comment
Please, Sign In to add comment