jseely

Untitled

Nov 14th, 2012
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.84 KB | None | 0 0
  1. wood = 0
  2. nextColDir = "up"
  3. nextRowDir = "right"
  4.  
  5. function digTunnel(length)
  6. for i = 1, length, 1 do
  7. for k = 1, 4, 1 do
  8. if not digSide(nextColDir) then
  9. return false
  10. end
  11. swapColDirection()
  12. turn(nextRowDir)
  13. swapRowDirection()
  14. for j = 1, 3, 1 do
  15. if not digCenter(nextColDir) then
  16. return false
  17. end
  18. swapColDirection()
  19. end
  20. if not digSide(nextColDir) then
  21. return false
  22. end
  23. swapColDirection()
  24. turn(nextRowDir)
  25. end
  26. if not addSupports() then
  27. return false
  28. end
  29. end
  30. return true
  31. end
  32.  
  33. function addSupports()
  34. success = true
  35. turn(nextRowDir)
  36. forward()
  37. turn(nextRowDir)
  38. forward()
  39. turn(nextRowDir)
  40. success = placeBeams(nextColDir)
  41. swapColDirection()
  42. turn(nextRowDir)
  43. turn(nextRowDir)
  44. swapRowDirection()
  45. forward()
  46. if nextColDir == "up" then
  47. digDown()
  48. success = placeWood("down")
  49. up()
  50. up()
  51. success = placeWood("up")
  52. elseif nextColDir == "down" then
  53. success = placeWood("up")
  54. down()
  55. down()
  56. digDown()
  57. success = placeWood("down")
  58. end
  59. swapColDirection()
  60. forward()
  61. success = placeBeams(nextColDir)
  62. swapColDirection()
  63. turn(nextRowDir)
  64. swapRowDirection()
  65. forward()
  66. turn(nextRowDir)
  67. forward()
  68. swapRowDirection()
  69. turn(nextRowDir)
  70. return success
  71. end
  72.  
  73. function placeBeams(direction)
  74. success = true
  75. if direction == "up" then
  76. digDown()
  77. sucess = placeWood("down")
  78. sucess = placeWood("front")
  79. up()
  80. sucess = placeWood("front")
  81. up()
  82. sucess = placeWood("front")
  83. sucess = placeWood("up")
  84. elseif direction == "down" then
  85. sucess = placeWood("up")
  86. sucess = placeWood("front")
  87. down()
  88. sucess = placeWood("front")
  89. down()
  90. digDown()
  91. sucess = placeWood("front")
  92. sucess = placeWood("down")
  93. end
  94. return success
  95. end
  96.  
  97. function turn(direction)
  98. if direction == "right" then
  99. turtle.turnRight()
  100. elseif direction == "left" then
  101. turtle.turnLeft()
  102. end
  103. end
  104.  
  105. function swapRowDirection()
  106. if nextRowDir == "right" then
  107. nextRowDir = "left"
  108. else
  109. nextRowDir = "right"
  110. end
  111. end
  112.  
  113. function swapColDirection()
  114. if nextColDir == "up" then
  115. nextColDir = "down"
  116. else
  117. nextColDir = "up"
  118. end
  119. end
  120.  
  121. function digSide(direction)
  122. success = true
  123. dig()
  124. forward()
  125. if direction == "up" then
  126. digDown()
  127. success = placeWood("down")
  128. for i = 1, 2, 1 do
  129. digUp()
  130. up()
  131. end
  132. digUp()
  133. success = placeWood("up")
  134. else
  135. digUp()
  136. success = placeWood("up")
  137. for i = 1, 2, 1 do
  138. digDown()
  139. down()
  140. end
  141. digDown()
  142. success = placeWood("down")
  143. end
  144. return success
  145. end
  146.  
  147. function digCenter(direction)
  148. success = true
  149. dig()
  150. forward()
  151. if direction == "up" then
  152. digUp()
  153. up()
  154. digUp()
  155. up()
  156. digUp()
  157. else
  158. digUp()
  159. for i = 1, 2, 1 do
  160. digDown()
  161. down()
  162. end
  163. end
  164. return success
  165. end
  166.  
  167. function placeWood(direction)
  168. if wood > 0 then
  169. wood = wood - 1
  170. else
  171. wood = findWood()
  172. if wood == 0 then
  173. print("Out of wood! Please refill!")
  174. return false
  175. end
  176. end
  177. if direction == "front" then
  178. return turtle.place()
  179. elseif direction == "up" then
  180. return turtle.placeUp()
  181. elseif direction == "down" then
  182. return turtle.placeDown()
  183. end
  184. end
  185.  
  186. function findWood()
  187. for i = 1, 15, 1 do
  188. turtle.select(i)
  189. if turtle.compareTo(16) then
  190. return turtle.getItemCount(i)
  191. end
  192. end
  193. return 0
  194. end
  195.  
  196. function digUp()
  197. while turtle.detectUp() do
  198. turtle.digUp()
  199. end
  200. end
  201.  
  202. function dig()
  203. while turtle.detect() do
  204. turtle.dig()
  205. end
  206. end
  207.  
  208. function digDown()
  209. while turtle.detectDown() do
  210. turtle.digDown()
  211. end
  212. end
  213.  
  214. function forward()
  215. done = false
  216. while not done do
  217. dig()
  218. done = turtle.forward()
  219. end
  220. end
  221.  
  222. function up()
  223. done = false
  224. while not done do
  225. digUp()
  226. done = turtle.up()
  227. end
  228. end
  229.  
  230. function down()
  231. done = false
  232. while not done do
  233. digDown()
  234. done = turtle.down()
  235. end
  236. end
Advertisement
Add Comment
Please, Sign In to add comment