Desert229

minerL

Oct 6th, 2022 (edited)
29
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.00 KB | None | 0 0
  1. m = 0 --mining counter
  2. ds = 2 --drop slot selection
  3. ic = 0 --item count
  4. d = 0 --distance (length of tunnel)
  5. cl = 0 --current loop
  6. lt = 3 --loop target
  7. fl = turtle.getFuelLevel() --fuel level
  8. lat = 1 --layer target
  9. cla = 1 --current layer
  10. icf = 0 --item count fuel
  11.  
  12. --start the turtle on top of water stream it will go up by 1 more block
  13.  
  14. --hints
  15. print("1: Put Cobblestone/Deep Slate in my first inventory slot")
  16. print("2: Put fuel in my second inventory slot")
  17. print("3: Place me right above the water stream")
  18. print("Current fuel level is:", turtle.getFuelLevel())
  19.  
  20. --user inputs
  21. print("Enter length of tunnels:")
  22. local d = tonumber(io.read())
  23. print("Enter amount of loops:")
  24. local lt = tonumber(io.read())
  25. print("Enter amount of layers (upwards):")
  26. local lat = tonumber(io.read())
  27.  
  28. --checking starting parameters
  29.  
  30. if fl == 0 then
  31. print("ERROR: I need starter fuel")
  32. error()
  33. end
  34.  
  35. turtle.select(1)
  36. ic = turtle.getItemCount()
  37.  
  38. if ic < 1 then
  39. print("ERROR: Put Cobblestone/Deep Slate in my first inventory slot!")
  40. error()
  41. end
  42.  
  43.  
  44. --OPERATIONAL FUNCTIONS
  45.  
  46. --refuel function
  47. local function fuelCheck()
  48. fl = turtle.getFuelLevel()
  49. while fl <= 1000 do
  50. turtle.select(2)
  51. icf = turtle.getItemCount()
  52. if icf > 1 then
  53. turtle.refuel(1)
  54. print("I refuelled to", turtle.getFuelLevel())
  55. else
  56. print("I'm out of fuel!")
  57. error()
  58. end
  59. turtle.select(1)
  60. fl = turtle.getFuelLevel()
  61. end
  62. end
  63.  
  64.  
  65. --drop trash function
  66. function dropCobble(slot)
  67. turtle.select(slot)
  68. turtle.dropDown(turtle.getItemCount() - 1)
  69. end
  70.  
  71. --anti gravel function
  72. local function digUntilEmpty()
  73. while turtle.detect() do
  74. turtle.dig()
  75. end
  76. end
  77.  
  78. --dig straight line
  79. local function digForward()
  80. digUntilEmpty()
  81. turtle.forward()
  82. turtle.digDown()
  83. turtle.digUp()
  84. end
  85.  
  86.  
  87. --MINING OPERATION
  88.  
  89. --layer loop
  90. while cla <= lat do
  91.  
  92. --back and forth loop
  93. while cl < lt do
  94. cl = cl + 1
  95.  
  96. --move turtle up to mining level
  97. if cla > 1 then
  98. for i = 0, (cla-1)*3, 1 do
  99. turtle.digUp()
  100. turtle.up()
  101. turtle.digUp()
  102. end
  103. else
  104. turtle.digUp()
  105. turtle.up()
  106. turtle.digUp()
  107. end
  108.  
  109. --first straight
  110. while m < d do
  111. digForward()
  112. m = m + 1
  113. if m == 10 or m == 20 or m == 30 or m == 40 or m == 50 then
  114. dropCobble(1)
  115. end
  116. end
  117.  
  118. --turn around
  119. if m == d then
  120. turtle.turnLeft()
  121. digUntilEmpty()
  122. turtle.forward()
  123. turtle.digUp()
  124. turtle.digDown()
  125. turtle.turnLeft()
  126. fuelCheck()
  127. dropCobble(1)
  128. m = 0
  129. end
  130.  
  131. --second straight
  132. while m < d do
  133. digForward()
  134. m = m + 1
  135. if m == 10 or m == 20 or m == 30 or m == 40 or m == 50 then
  136. dropCobble(1)
  137. end
  138. end
  139.  
  140. --user information
  141. print("I just finished loop:", cl, "out of", lt)
  142. print("on layer:", cla, "out of", lat)
  143.  
  144. --item drop-off
  145.  
  146. if cla > 1 then
  147. for i = 0, (cla - 1) * 3, 1 do
  148. turtle.digDown()
  149. turtle.down()
  150. end
  151. else
  152. turtle.digDown()
  153. turtle.down()
  154. end
  155.  
  156. while ds < 16 do --dropping everything except slot 1 and 2
  157. ds = ds + 1
  158. turtle.select(ds)
  159. turtle.dropDown()
  160. end
  161.  
  162. ds = 2 --reset for next loop
  163. m = 0
  164. turtle.select(1)
  165.  
  166. --second turn around unless it's the last loop
  167. if cl < lt then
  168. turtle.turnRight()
  169. digUntilEmpty()
  170. turtle.forward()
  171. turtle.digDown()
  172. turtle.digUp()
  173. turtle.turnRight()
  174. end
  175. end --back and forth looping ends
  176. cl = 0 --reset current loop for next layer
  177.  
  178. --bring turtle back to layer starting pos
  179. turtle.turnLeft()
  180. for i = 0, lt*2-2, 1 do
  181. turtle.forward()
  182. end
  183. turtle.turnLeft()
  184. cla = cla + 1 --finished layer increase current layer
  185. end
  186.  
  187. --end info
  188. print("Fuel level after job:", turtle.getFuelLevel())
  189. print("Job's done!")
Advertisement
Add Comment
Please, Sign In to add comment