Advertisement
oblinger

Stip Mine

Apr 17th, 2014
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.07 KB | None | 0 0
  1. --Startup
  2. tArgs = {...}
  3. sides = {"right","left","bottom","top","front"}
  4. location = true
  5.  
  6. for i = 1,#sides do
  7. if peripheral.getType(sides[i]) == "modem" then
  8. modem = true
  9. rednet.open(sides[i])
  10. break
  11. else
  12. modem = false
  13. end
  14. end
  15.  
  16. if not modem then
  17. print("Could not find a modem")
  18. error()
  19. end
  20.  
  21. if not tArgs[1] or not tonumber(tArgs[1]) then
  22. print("Usage: shaft <length>")
  23. error(
  24. else
  25. length = tonumber(tArgs[1])
  26. end
  27.  
  28. x,y,z = gps.locate()
  29. if y ~= nil then
  30. backupy = y
  31. path = y - 14
  32. print("Current Y is "..y..". Going "..path.." blocks down")
  33. else
  34. print("Could not determine y cord")
  35. error()
  36. end
  37.  
  38. --Functions
  39. function dig()
  40. if turtle.detect() then
  41. while not turtle.dig() do
  42. turtle.attack()
  43. end
  44. end
  45. end
  46.  
  47. function digUp()
  48. if turtle.detectUp() then
  49. while not turtle.digUp() do
  50. turtle.attackUp()
  51. end
  52. end
  53. end
  54.  
  55. function digDown()
  56. if turtle.detectDown() then
  57. while not turtle.digDown() do
  58. turtle.attackDown()
  59. end
  60. end
  61. end
  62.  
  63.  
  64. function forward()
  65. while not turtle.forward() do
  66. turtle.dig()
  67. turtle.attack()
  68. end
  69. end
  70.  
  71. function up()
  72. while not turtle.up() do
  73. turtle.digUp()
  74. turtle.attackUp()
  75. end
  76. end
  77.  
  78. function down()
  79. while not turtle.down() do
  80. turtle.digDown()
  81. turtle.attackDown()
  82. end
  83. end
  84.  
  85. function right()
  86. turtle.turnRight()
  87. end
  88.  
  89. function left()
  90. turtle.turnLeft()
  91. end
  92.  
  93. function back()
  94. while not turtle.back() do
  95. turtle.turnRight()
  96. turtle.turnRight()
  97. repeat until not turtle.dig() and not turtle.attack()
  98. turtle.turnLeft()
  99. turtle.turnLeft()
  100. end
  101. end
  102.  
  103. function checkInv()
  104. if turtle.getItemCount(16) then
  105. return true
  106. end
  107. end
  108.  
  109. function dig()
  110. if turtle.detect() then
  111. while not turtle.dig() do
  112. turtle.attack()
  113. end
  114. end
  115. end
  116.  
  117. function getPos()
  118. x,y,z = nil
  119. x,y,z = gps.locate()
  120. if y == nil then
  121. return false
  122. else
  123. return y
  124. end
  125. end
  126.  
  127. function stair()
  128. time = 0
  129. repeat
  130. for i = 1,4 do
  131. if location then
  132. y = getPos()
  133. if not y then
  134. print("Could not determine location. Relying on backup y")
  135. y = backupy
  136. location = false
  137. else
  138. location = true
  139. end
  140. else
  141. y = backupy
  142. end
  143.  
  144. turtle.digDown()
  145. turtle.down()
  146. backupy = backupy - 1
  147. dig()
  148. forward()
  149. digDown()
  150. digUp()
  151. right()
  152. dig()
  153. forward()
  154. digDown()
  155. digUp()
  156. back()
  157. if time == 4 then
  158. turtle.select(1)
  159. turtle.place()
  160. left()
  161. time = 0
  162. else
  163. left()
  164. time = time + 1
  165. end
  166. if y < 16 then
  167. break
  168. end
  169. end
  170. until y < 16
  171. end
  172.  
  173. function shaft()
  174. for i = 1,length do
  175. for i = 1,2 do
  176. dig()
  177. forward()
  178. digUp()
  179. right()
  180. dig()
  181. forward()
  182. digUp()
  183. back()
  184. left()
  185. end
  186. dig()
  187. forward()
  188. digUp()
  189. right()
  190. dig()
  191. forward()
  192. digUp()
  193. for i = 1,3 do
  194. dig()
  195. forward()
  196. digUp()
  197. end
  198.  
  199. for i = 1,4 do
  200. back()
  201. end
  202. left()
  203. left()
  204. for i = 1,3 do
  205. dig()
  206. forward()
  207. digUp()
  208. end
  209.  
  210. for i = 1,3 do
  211. back()
  212. end
  213. right()
  214. end
  215. end
  216.  
  217. stair()
  218. shaft()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement