Advertisement
Nesltay

Mining Turtle - Quarry_Sattelite

Feb 23rd, 2021 (edited)
253
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.57 KB | None | 0 0
  1. -- Turtle Position
  2. posX, posY, posZ = gps.locate()
  3. posY = PosY - 1
  4. depth = 0
  5. startDepth = 0
  6.  
  7. -- Y-Level to stop At
  8. stopY = -57
  9.  
  10. -- Chest info
  11. cardinalChest = ""
  12.  
  13. -- Direction to mine
  14. turtleTurn = ""
  15.  
  16. -- Distance to mine
  17. length = 0
  18.  
  19. -- Amount of strips to mine
  20. width = 0
  21.  
  22. -- Torch & Line Count
  23. count = 0
  24. lineCount = 0
  25.  
  26. term.clear()
  27. print("Existing parameters include:")
  28. print("1) You must have the turtle and chest on one of the same axes.")
  29. print("2) The turtle must be moving in the same direction that the chest opens.")
  30. print("3) Place at least 1 coal in the 1st slot.")
  31. print("4) You must enter an even number for width.")
  32. print("---------------------------------------")
  33. local x = term.write("Press [Enter] to Continue")
  34. x = read()
  35. term.clear()
  36.  
  37. --[[
  38. term.write("What is the turtle's X? ")
  39. posX = read()
  40. term.write("What is the turtle's Z? ")
  41. posZ = read()
  42.  
  43. term.write("What is the chest's X? ")
  44. chestX = read()
  45. term.write("What is the chest's Z? ")
  46. chestZ = read()
  47.  
  48. term.write("Starting Y-Level: ")
  49. startY = tonumber(read())
  50. ]]--
  51.  
  52. term.write("Blocks beneath the chest? ")
  53. startDepth = read()
  54. if startDepth == nil or startDepth == '' then
  55. startDepth = 0
  56. end
  57. depth = depth + startDepth
  58.  
  59. term.write("Which way do you want to mine? ")
  60. print("Enter 'r' or 'l'")
  61. turtleTurn = read()
  62. if turtleTurn == "r" then
  63. cardinalChest = "l"
  64. else
  65. cardinalChest = "r"
  66. end
  67.  
  68. term.write("Width: ")
  69. width = tonumber(read())
  70.  
  71. term.write("Length: ")
  72. length = tonumber(read()) - 1
  73.  
  74. function turnBack()
  75. if turtleTurn == "r" then
  76. turtle.turnRight()
  77. while turtle.detect() == true do
  78. turtle.dig()
  79. sleep(0.5)
  80. end
  81. sleep(1)
  82. turtle.forward()
  83. turtle.digUp()
  84. sleep(1)
  85. turtle.turnRight()
  86. else
  87. turtle.turnLeft()
  88. while turtle.detect() == true do
  89. turtle.dig()
  90. sleep(0.5)
  91. end
  92. sleep(1)
  93. turtle.forward()
  94. turtle.digUp()
  95. sleep(1)
  96. turtle.turnLeft()
  97. end
  98. end
  99.  
  100. function turnForward()
  101. if turtleTurn == "r" then
  102. turtle.turnLeft()
  103. while turtle.detect() == true do
  104. turtle.dig()
  105. sleep(0.5)
  106. end
  107. turtle.forward()
  108. turtle.digUp()
  109. sleep(1)
  110. turtle.turnLeft()
  111. else
  112. turtle.turnRight()
  113. while turtle.detect() == true do
  114. turtle.dig()
  115. sleep(0.5)
  116. end
  117. sleep(1)
  118. turtle.forward()
  119. turtle.digUp()
  120. sleep(1)
  121. turtle.turnRight()
  122. end
  123. end
  124.  
  125. function tunnel()
  126. for i=1, length, 1 do
  127. turtle.dig()
  128. while turtle.detect() == true do
  129. turtle.dig()
  130. sleep(0.5)
  131. end
  132. turtle.forward()
  133. turtle.digUp()
  134. sleep(0.5)
  135. end
  136. end
  137.  
  138. function drop()
  139. coal = turtle.getItemCount(1)
  140. --[[if coal > 1 then
  141. halfCoal = math.floor(coal / 2)
  142. turtle.drop(halfCoal)
  143. end]]--
  144. for i=2, 16, 1 do
  145. turtle.select(i)
  146. turtle.drop()
  147. end
  148. end
  149.  
  150. function moveForward()
  151. while turtle.detect() == false do
  152. turtle.forward()
  153. turtleSteps = turtleSteps + 1
  154. end
  155. local isBlock, data = turtle.inspect()
  156. if string.find(textutils.serialise(data.name), "chest") then
  157. drop()
  158. else
  159. turtle.dig()
  160. turtle.forward()
  161. turtle.digUp()
  162. turtleSteps = turtleSteps + 1
  163. moveForward()
  164. end
  165. end
  166.  
  167. function chest(width, depth)
  168. turtleSteps = 0
  169. if cardinalChest == "r" then
  170. turtle.turnRight()
  171. else
  172. turtle.turnLeft()
  173. end
  174. for i=1, depth, 1 do
  175. turtle.up()
  176. end
  177. moveForward()
  178. if turtleSteps >= width - 1 then
  179. if cardinalChest == "r" then
  180. turtle.turnLeft()
  181. else
  182. turtle.turnRight()
  183. end
  184. for i=1, depth + 2, 1 do
  185. turtle.digDown()
  186. turtle.down()
  187. end
  188. else
  189. for i=1, depth, 1 do
  190. turtle.down()
  191. end
  192. turtle.turnRight()
  193. turtle.turnRight()
  194. for i=1, turtleSteps, 1 do
  195. turtle.forward()
  196. end
  197. if cardinalChest == "r" then
  198. turtle.turnRight()
  199. else
  200. turtle.turnLeft()
  201. end
  202. end
  203. end
  204.  
  205. function refuel()
  206. turtle.select(1)
  207. fuel = turtle.getItemCount(1)
  208. if fuel > 1 then
  209. turtle.refuel(fuel - 1)
  210. end
  211. local fuel = 0
  212. local fuel = turtle.getFuelLevel()
  213. print("Fuel remaining:")
  214. print(fuel)
  215. end
  216.  
  217. timeStart = os.time("utc") * 3600
  218.  
  219. while true do
  220. linesCompleted = 0
  221. for i=1, (width / 2), 1 do
  222. tunnel()
  223. turnBack()
  224. tunnel()
  225. if linesCompleted ~= width - 2 then
  226. turnForward()
  227. else
  228. turtle.turnLeft()
  229. turtle.turnLeft()
  230. end
  231. chest(width, depth)
  232. refuel()
  233. print("Currently on level: "..posY - 1)
  234. linesCompleted = linesCompleted + 2
  235. end
  236. depth = depth + 2
  237. if posY <= stopY then
  238. if cardinalChest == "r" then
  239. turtle.turnRight()
  240. else
  241. turtle.turnLeft()
  242. end
  243. for i=1, depth, 1 do
  244. turtle.up()
  245. end
  246. break
  247. end
  248. posY = posY - 2
  249. end
  250. timeEnd = os.time("utc") * 3600
  251. totalTime = math.ceil((timeEnd - timeStart) / 60)
  252. print("The turtle took: " .. totalTime .. " minutes to complete")
  253. print("Turtle has reached level -57 and completed the quarry")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement