Advertisement
MatthiGamer

[WIP] Mining Turtle Hollow squared

May 18th, 2019 (edited)
219
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 4.10 KB | None | 0 0
  1. local tArgs = {...}
  2.  
  3. if #tArgs ~= 1 then
  4.   print("Usage: Hollow <diameter>")
  5.   return
  6. end
  7.  
  8. local size = tonumber(tArgs[1])
  9.  
  10. if size < 1 then
  11.   print("Diameter must be positive!")
  12.   return
  13. end
  14.  
  15. local dist = 0
  16. local dist2 = 0
  17. local dist3 = 0
  18. local dist4 = 0
  19. local depth = - 1
  20. local continuingSize = size - 1
  21. local totalDist = 1
  22.  
  23. --TODO
  24. --Disable ItemOverflow
  25.  
  26. --Unload all collected Items
  27. local function unloadItems()
  28.  
  29.   for i = 0, depth, 1 do
  30.     turtle.up()
  31.   end
  32.  
  33.   print("Unloading items while waiting for fuel...")
  34.  
  35.   for i = 1, 16, 1 do
  36.     turtle.select(i)
  37.     turtle.drop()
  38.   end
  39.  
  40.   turtle.select(1)
  41.  
  42.   print("All items unloaded.")
  43.  
  44.   return
  45. end  
  46.  
  47. --Moving Back
  48. local function moveDist(distance)
  49.   for i = 0, distance, 1 do
  50.     turtle.forward()
  51.   end
  52. end
  53.  
  54. local function move2()
  55.   moveDist(dist2)
  56.   turtle.turnRight()
  57.   moveDist(dist)
  58. end  
  59.  
  60. local function move3()
  61.   moveDist(dist3)
  62.   turtle.turnRight()
  63.   moveDist(dist2)
  64.   turtle.turnRight()
  65.   moveDist(dist)
  66. end  
  67.  
  68. local function move4()
  69.   moveDist(dist4)
  70.   turtle.turnRight()
  71.   moveDist(dist3)
  72.   turtle.turnRight()
  73.   moveDist(dist2)
  74.   turtle.turnRight()
  75.   moveDist(dist)
  76. end  
  77.  
  78. --Checks for fuel
  79. local function checkForFuel()
  80.   for i = 1, 16, 1 do
  81.     turtle.select(i)
  82.     if turtle.getFuelLevel() <= totalDist and turtle.refuel() == true then
  83.       print("Refuelled successfully!")
  84.       turtle.refuel()
  85.     end  
  86.   end
  87.   turtle.select(1)
  88. end
  89.  
  90. if turtle.getFuelLevel() < 1 and turtle.refuel() == false then
  91.   print("I need fuel!")
  92.   return
  93. elseif turtle.getFuelLevel() < 1 then
  94.   print("First refuel.")
  95.   turtle.refuel()
  96.   print(turtle.getFuelLevel())
  97. else
  98. print("Digging...")
  99. end
  100.  
  101. --Goes until Bedrock
  102. while turtle.digDown() == true do
  103.   turtle.digDown()
  104.   turtle.down()
  105.   depth = depth + 1
  106.   totalDist = totalDist + 1
  107.   write("Going down. Depth: ")
  108.   print(depth)
  109.  
  110.   --First Lane
  111.  
  112.   for i = 1, continuingSize, 1 do
  113.     turtle.dig()
  114.     turtle.forward()
  115.  
  116.     if depth < 1 then
  117.       dist = dist + 1
  118.       totalDist = totalDist + 1
  119.     end
  120.  
  121.     if turtle.getFuelLevel() <= totalDist then
  122.       print("Trying to refuel.")
  123.       checkForFuel()
  124.  
  125.       if turtle.getFuelLevel() <= totalDist then
  126.         print("Not enough fuel...going back.")
  127.  
  128.         turtle.turnLeft()
  129.         turtle.turnLeft()
  130.  
  131.         moveDist(dist)
  132.  
  133.         unloadItems()
  134.         return
  135.       end
  136.     end
  137.   end
  138.  
  139.   turtle.turnLeft()
  140.  
  141.   --Second Lane
  142.  
  143.   for i = 1, continuingSize, 1 do
  144.  
  145.     turtle.dig()
  146.     turtle.forward()
  147.  
  148.     if depth < 1 then
  149.       dist2 = dist2 + 1
  150.       totalDist = totalDist + 1
  151.     end  
  152.  
  153.     if turtle.getFuelLevel() <= totalDist then
  154.       print("Trying to refuel.")
  155.       checkForFuel()
  156.  
  157.       if turtle.getFuelLevel() <= totalDist then
  158.         print("Not enough fuel...going back.")
  159.  
  160.         turtle.turnLeft()
  161.         turtle.turnLeft()
  162.  
  163.         move2()
  164.  
  165.         unloadItems()
  166.         return
  167.       end
  168.     end
  169.   end
  170.  
  171.   turtle.turnLeft()
  172.  
  173.   --Third Lane
  174.  
  175.   for i = 1, continuingSize, 1 do
  176.  
  177.     turtle.dig()
  178.     turtle.forward()
  179.  
  180.     if depth < 1 then
  181.       dist3 = dist3 + 1
  182.       totalDist = totalDist + 1
  183.     end  
  184.  
  185.     if turtle.getFuelLevel() <= totalDist then
  186.       print("Trying to refuel.")
  187.       checkForFuel()
  188.  
  189.       if turtle.getFuelLevel() <= totalDist then
  190.         print("Not enough fuel...going back.")
  191.  
  192.         turtle.turnLeft()
  193.         turtle.turnLeft()
  194.  
  195.         move3()
  196.  
  197.         unloadItems()
  198.         return
  199.       end
  200.     end
  201.   end
  202.  
  203.   turtle.turnLeft()
  204.  
  205.   --Forth Lane
  206.  
  207.   for i = 1, continuingSize, 1 do
  208.  
  209.     turtle.dig()
  210.     turtle.forward()
  211.  
  212.     if depth < 1 then
  213.       dist4 = dist4 + 1
  214.       totalDist = totalDist + 1
  215.     end
  216.  
  217.     if turtle.getFuelLevel() <= totalDist then
  218.       print("Trying to refuel.")
  219.       checkForFuel()
  220.  
  221.       if turtle.getFuelLevel() <= totalDist then
  222.         print("Not enough fuel...going back.")
  223.  
  224.         turtle.turnLeft()
  225.         turtle.turnLeft()
  226.  
  227.         move4()
  228.  
  229.         unloadItems()
  230.         return
  231.       end
  232.     end  
  233.   end
  234.  
  235.   turtle.turnLeft()  
  236. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement