MatthiGamer

[WIP] Mining Turtle Hollow X + Y

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