Advertisement
SamuelHurst

CC 2-High Cave Digger

Dec 29th, 2020 (edited)
846
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 3.88 KB | None | 0 0
  1. -- definitions
  2.  
  3. function checkLavaAndFuel()
  4.     local fuelLimit = turtle.getFuelLimit()
  5.     if turtle.getFuelLevel() < fuelLimit - 1000 then
  6.         turtle.select(15)
  7.         if turtle.place() then
  8.             if not turtle.refuel() then
  9.                 -- we picked up something other than lava (water, etc.)
  10.                 turtle.place()
  11.             end
  12.         end
  13.     end
  14. end
  15.  
  16. function autoRefuel()
  17.     checkLavaAndFuel()
  18.     local fuelLimit = turtle.getFuelLimit()
  19.     while turtle.getFuelLevel() < 80 do
  20.         turtle.select(16)
  21.         if turtle.refuel(0) then
  22.             -- we can refuel using slot 16
  23.             turtle.refuel(1)
  24.         end
  25.     end
  26. end
  27.  
  28. function isFull()
  29.     if turtle.getItemCount(12) > 0 then
  30.         return true
  31.     else
  32.         return false
  33.     end
  34. end
  35.  
  36. function dumpAndReturn(p_x, p_y)
  37.     temp_x = p_x
  38.     temp_y = p_y
  39.    
  40.     -- go to chest
  41.     turtle.turnLeft()
  42.     turtle.turnLeft()
  43.     while temp_y > 0 do
  44.         while turtle.detect() do
  45.             turtle.dig()
  46.         end
  47.         turtle.forward()
  48.         temp_y = temp_y - 1
  49.     end
  50.     turtle.turnLeft()
  51.     turtle.turnLeft()
  52.    
  53.     turtle.turnRight()
  54.     turtle.turnLeft()
  55.     turtle.turnLeft()
  56.     while temp_x > 0 do
  57.         while turtle.detect() do
  58.             turtle.dig()
  59.         end
  60.         turtle.forward()
  61.         temp_x = temp_x - 1
  62.     end
  63.     turtle.turnLeft()
  64.     turtle.turnLeft()
  65.    
  66.     -- drop stuff off
  67.     for i=1, 14 do
  68.         turtle.select(i)
  69.         turtle.dropDown()
  70.     end
  71.     turtle.select(1)
  72.    
  73.     -- return to spot left off
  74.     while temp_x ~= p_x do
  75.         turtle.forward()
  76.         temp_x = temp_x + 1
  77.     end
  78.     turtle.turnLeft()
  79.     while temp_y ~= p_y do
  80.         turtle.forward()
  81.         temp_y = temp_y + 1
  82.     end
  83. end
  84.  
  85. function finishedDump(p_x, p_y)
  86.     temp_x = p_x
  87.     temp_y = p_y
  88.    
  89.     -- go to chest
  90.     turtle.turnLeft()
  91.     turtle.turnLeft()
  92.     while temp_y > 0 do
  93.         while turtle.detect() do
  94.             turtle.dig()
  95.         end
  96.         turtle.forward()
  97.         temp_y = temp_y - 1
  98.     end
  99.     turtle.turnLeft()
  100.     turtle.turnLeft()
  101.    
  102.     turtle.turnRight()
  103.     turtle.turnLeft()
  104.     turtle.turnLeft()
  105.     while temp_x > 0 do
  106.         while turtle.detect() do
  107.             turtle.dig()
  108.         end
  109.         turtle.forward()
  110.         temp_x = temp_x - 1
  111.     end
  112.     turtle.turnLeft()
  113.     turtle.turnLeft()
  114.    
  115.     -- drop stuff off
  116.     for i=1, 14 do
  117.         turtle.select(i)
  118.         turtle.dropDown()
  119.     end
  120.     turtle.select(1)
  121.    
  122.     turtle.turnLeft()
  123. end
  124.  
  125. -- start
  126. print("Enter y size (how far forward):")
  127. y_size = read()
  128. print("Enter x size (how far to the right):")
  129. x_size = read()
  130. print("Starting...")
  131.  
  132. pos_x = 0
  133. pos_y = 0
  134.  
  135. for x=2, x_size do
  136.     -- forward
  137.     for y=2, y_size do
  138.         autoRefuel()
  139.         if isFull() then
  140.             dumpAndReturn(pos_x, pos_y)
  141.         end
  142.        
  143.         while turtle.detect() do
  144.             turtle.dig()
  145.         end
  146.         turtle.forward()
  147.         pos_y = pos_y + 1
  148.         while turtle.detectUp() do
  149.             turtle.digUp()
  150.         end
  151.     end
  152.     -- back
  153.     turtle.turnLeft()
  154.     turtle.turnLeft()
  155.     for y=2, y_size do
  156.         autoRefuel()
  157.         while turtle.detect() do
  158.             turtle.dig()
  159.         end
  160.         turtle.forward()
  161.         pos_y = pos_y - 1
  162.     end
  163.     turtle.turnLeft()
  164.     turtle.turnLeft()
  165.    
  166.     -- go to next column
  167.     autoRefuel()
  168.     turtle.turnRight()
  169.     while turtle.detect() do
  170.         turtle.dig()
  171.     end
  172.     turtle.forward()
  173.     pos_x = pos_x + 1
  174.     while turtle.detectUp() do
  175.         turtle.digUp()
  176.     end
  177.     turtle.turnLeft()
  178. end
  179.  
  180. -- one last forward
  181. for y=2, y_size do
  182.     autoRefuel()
  183.     if isFull() then
  184.         dumpAndReturn(pos_x, pos_y)
  185.     end
  186.    
  187.     while turtle.detect() do
  188.         turtle.dig()
  189.     end
  190.     turtle.forward()
  191.     pos_y = pos_y + 1
  192.     while turtle.detectUp() do
  193.         turtle.digUp()
  194.     end
  195. end
  196.  
  197. finishedDump(pos_x, pos_y)
  198. print("Finished.")
  199.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement