Advertisement
HarvDad

tree

Apr 7th, 2014
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.30 KB | None | 0 0
  1. -- tree
  2. -- Cut down a single tree directly in front of turtle
  3. -- Trees must be 1x1 trunks with no branches
  4. -- Program assumes turtle is pre-fueled
  5. -- Written by HarvDad, April 2014
  6.  
  7. args = {...}
  8. nArgs = #args
  9.  
  10. version = "tree: Rev 0.1"
  11. mission = "Cut down a single tree"
  12.  
  13. usage = "tree"
  14.  
  15. x = 0
  16. y = 0
  17. z = 0
  18. face = 0
  19. missionMessage = "Mission complete."
  20. abort = false
  21. local currentFuelLevel = turtle.getFuelLevel()
  22.  
  23. -- The following 'face' directions are relative to the starting position of the turtle in this program
  24. north = 0
  25. west = 1
  26. south = 2
  27. east = 3
  28.  
  29. areaCovered = 1
  30. currentSlot = 2
  31. materialSlot = 1
  32. maxSlot = 16
  33.  
  34. nextTurn = "left"
  35.  
  36. function setFace(f)
  37. if f == 0 then
  38. if face == 0 then return end
  39. if face == 1 then right() return end
  40. if face == 2 then right() right() return end
  41. if face == 3 then left() return end
  42. end
  43.  
  44. if f == 1 then
  45. if face == 0 then left() return end
  46. if face == 1 then return end
  47. if face == 2 then right() return end
  48. if face == 3 then right() right() return end
  49. end
  50.  
  51. if f == 2 then
  52. if face == 0 then left() left() return end
  53. if face == 1 then left() return end
  54. if face == 2 then return end
  55. if face == 3 then right() return end
  56. end
  57.  
  58. if f == 3 then
  59. if face == 0 then right() return end
  60. if face == 1 then left() left() return end
  61. if face == 2 then left() return end
  62. if face == 3 then return end
  63. end
  64. end
  65.  
  66. function forward()
  67. for i=1,10 do -- This loop trys to handle pests (mob) that might be in the way
  68. if turtle.forward() then
  69. break
  70. end
  71. turtle.attack()
  72. sleep(2)
  73. end
  74. areaCovered = areaCovered + 1
  75.  
  76. if face == 0 then z = z+1 return end
  77. if face == 1 then x = x-1 return end
  78. if face == 2 then z = z-1 return end
  79. if face == 3 then x = x+1 return end
  80. end
  81.  
  82. function left()
  83. if face == 0 then face = 1 turtle.turnLeft() return end
  84. if face == 1 then face = 2 turtle.turnLeft() return end
  85. if face == 2 then face = 3 turtle.turnLeft() return end
  86. if face == 3 then face = 0 turtle.turnLeft() return end
  87. print("function left\(\): Bad face value: ", face)
  88. end
  89.  
  90. function right()
  91. if face == 0 then face = 3 turtle.turnRight() return end
  92. if face == 1 then face = 0 turtle.turnRight() return end
  93. if face == 2 then face = 1 turtle.turnRight() return end
  94. if face == 3 then face = 2 turtle.turnRight() return end
  95. print("function right\(\): Bad face value: ", face)
  96. end
  97.  
  98. function up()
  99. for i=1,10 do
  100. if not turtle.up() then
  101. if turtle.detectUp() then
  102. digUp()
  103. else
  104. turtle.attackUp()
  105. sleep(2)
  106. end
  107. else
  108. break
  109. end
  110. end
  111. y = y+1
  112. end
  113.  
  114. function down()
  115. for i=1,10 do
  116. if not turtle.down() then
  117. if turtle.detectDown() then
  118. digDown()
  119. else
  120. turtle.attackDown()
  121. sleep(2)
  122. end
  123. else
  124. break
  125. end
  126. end
  127. y = y-1
  128. end
  129.  
  130. function chopTree()
  131. turtle.dig()
  132. forward()
  133. while turtle.detectUp() do
  134. turtle.digUp()
  135. turtle.up()
  136. end
  137.  
  138. while not turtle.detectDown() do
  139. turtle.suckDown()
  140. turtle.down()
  141. end
  142. end
  143.  
  144. function replantTree()
  145. if turtle.getItemCount(saplingSlot) > 0 then
  146. left()
  147. left()
  148. turtle.select(saplingSlot)
  149. turtle.place()
  150. left()
  151. left()
  152. end
  153. end
  154.  
  155. -- Main program
  156.  
  157. chopTree()
  158. replantTree()
  159.  
  160. if abort then
  161. print("Mission aborted")
  162. end
  163. print(missionMessage)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement