Advertisement
Guest User

Untitled

a guest
May 21st, 2019
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.14 KB | None | 0 0
  1. ---
  2. --- Created by deathsgun.
  3. --- DateTime: 2019-05-21 15:01
  4. ---
  5.  
  6. local length, height, width = ...
  7. local delay = 0.25
  8.  
  9. if length == nil or height == nil or width == nil then
  10. print("Usage: miner <length> <height> <width>")
  11. return false
  12. end
  13.  
  14. X = 0;
  15. Y = 0;
  16. Z = 0;
  17. ORIENTATION = 0;
  18.  
  19. function left()
  20. turtle.turnLeft()
  21. if ORIENTATION == 0 then
  22. ORIENTATION = 3
  23. else
  24. ORIENTATION = ORIENTATION - 1
  25. end
  26. end
  27.  
  28. function right()
  29. turtle.turnRight()
  30. if ORIENTATION == 3 then
  31. ORIENTATION = 0
  32. else
  33. ORIENTATION = ORIENTATION + 1
  34. end
  35. end
  36.  
  37. function up()
  38. while not turtle.up() do
  39. digUp()
  40. sleep(delay)
  41. end
  42. Y = Y + 1
  43. end
  44.  
  45. function down()
  46. while not turtle.down() do
  47. digDown()
  48. sleep(delay)
  49. end
  50. Y = Y - 1
  51. end
  52.  
  53. function forward()
  54. while not turtle.forward() do
  55. turtle.dig()
  56. turtle.attack()
  57. sleep(delay)
  58. end
  59. if ORIENTATION == 0 then
  60. X = X + 1
  61. elseif ORIENTATION == 1 then
  62. Z = Z + 1
  63. elseif ORIENTATION == 2 then
  64. X = X - 1
  65. elseif ORIENTATION == 3 then
  66. Z = Z - 1
  67. end
  68. end
  69.  
  70. function orient(arg1)
  71. for _ =1, arg1 do
  72. right()
  73. end
  74. end
  75.  
  76. function dig()
  77. while turtle.detect() do
  78. turtle.dig()
  79. sleep(delay)
  80. end
  81. end
  82.  
  83. function digUp()
  84. while turtle.detectUp() do
  85. turtle.digUp()
  86. sleep(delay)
  87. end
  88. end
  89.  
  90. function digDown()
  91. while turtle.detectDown() do
  92. turtle.digDown()
  93. sleep(delay)
  94. end
  95. end
  96.  
  97. function go(lx,ly,lz)
  98. print("going to "..lx.."/"..ly.."/"..lz)
  99. if X < lx then
  100. orient(0)
  101. for _ =1,(lx-X) do
  102. forward()
  103. end
  104. end
  105.  
  106. if X > lx then
  107. orient(2)
  108. for _ =1,X-lx do
  109. forward()
  110. end
  111. end
  112.  
  113. if Y < ly then
  114. for _ =1,ly-Y do
  115. up()
  116. end
  117. end
  118.  
  119. if Y > ly then
  120. for _ =1,Y-ly do
  121. down()
  122. end
  123. end
  124.  
  125. if Z < lz then
  126. orient(1)
  127. for _ =1,lz-Z do
  128. forward()
  129. end
  130. end
  131.  
  132. if Z > lz then
  133. orient(3)
  134. for _ =1,Z-lz do
  135. forward()
  136. end
  137. end
  138. end
  139.  
  140. function deposit()
  141. for i=2,16 do
  142. turtle.select(i)
  143. while not turtle.drop() and turtle.getItemCount() ~= 0 do -- Waits until turtle can deposit item
  144. sleep(1)
  145. end
  146. turtle.drop()
  147. end
  148. turtle.select(1)
  149. return true
  150. end
  151.  
  152. function check()
  153. if turtle.getItemCount(15) == 0 then
  154. return false
  155. else
  156. return true
  157. end
  158. end
  159.  
  160. print("Creating a tunnel "..height.." x "..width.." "..length.." long!")
  161.  
  162. lx = X
  163. ly = Y
  164. lz = Z
  165. for _ = 1, length do
  166. forward()
  167. lx = X
  168. ly = Y
  169. lz = Z
  170. for _ = 1, width do
  171. forward()
  172. for _ = 1, height do
  173. up()
  174. end
  175. go(X, ly, Z)
  176. if _ == 1 then
  177. right()
  178. end
  179. end
  180. go(lx, ly, lz)
  181. end
  182.  
  183. go(0, 0, 0)
  184. orient(2)
  185. deposit()
  186. orient(0)
  187. print("Finished task!")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement