EphemeralKap

Untitled

Nov 1st, 2018
161
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.99 KB | None | 0 0
  1. -- Kap's Lumberjack Turtle ver 1.0, 01/11/18
  2. local tArgs = {...}
  3. local runs = tonumber(tArgs[1])
  4.  
  5. local trees = 7
  6. local treeRows = 4
  7. local spacing = 1
  8. local direction = true
  9.  
  10. local height = 1
  11. local maxHeight = 5
  12.  
  13. function ChopTree()
  14. turtle.dig()
  15. turtle.forward()
  16. turtle.digDown()
  17. Plant()
  18.  
  19. while turtle.detectUp() do
  20. if height >= maxHeight then break end
  21. turtle.digUp()
  22. turtle.up()
  23. height = height + 1
  24. os.sleep(1)
  25. end
  26.  
  27. while not turtle.detectDown() do
  28. turtle.down()
  29. height = height - 1
  30. end
  31. end
  32.  
  33.  
  34. function Plant()
  35. turtle.select(2)
  36. turtle.placeDown()
  37. end
  38.  
  39.  
  40. function Return()
  41. direction = true
  42. turtle.turnLeft()
  43. for i=1, (treeRows + (spacing * 2)) do
  44. turtle.forward()
  45. end
  46. turtle.turnLeft()
  47. OffloadWood()
  48. end
  49.  
  50. function OffloadWood()
  51. turtle.turnLeft()
  52. turtle.turnLeft()
  53.  
  54. for i=3, 16 do
  55. turtle.select(i)
  56. turtle.drop()
  57. end
  58.  
  59. Restock()
  60. end
  61.  
  62. function Restock()
  63. turtle.down()
  64. turtle.select(2)
  65. turtle.suck(64 - turtle.getItemCount(2))
  66.  
  67. GrabFuel()
  68. end
  69.  
  70. function GrabFuel()
  71. turtle.select(1)
  72. turtle.suckDown(64 - turtle.getItemCount(1))
  73. turtle.up()
  74. end
  75.  
  76. function Refuel()
  77. if turtle.getFuelLevel(1) < 400 then
  78. turtle.select(1)
  79. turtle.refuel(1)
  80. end
  81. end
  82.  
  83. function FillFurnaces()
  84. -- pick up wood and update woodTable
  85. turtle.turnLeft()
  86. turtle.turnLeft()
  87. for i=3, 16 do
  88. turtle.select(i)
  89. turtle.suck()
  90. end
  91.  
  92. --move up to furnaces
  93. turtle.digUp()
  94. turtle.up()
  95. turtle.digUp()
  96. turtle.up()
  97. turtle.dig()
  98. turtle.forward()
  99.  
  100. -- Fill all furnaces
  101. for i=1, 4 do
  102. turtle.turnLeft()
  103. for j=3, 16 do
  104. turtle.select(j)
  105. if not turtle.drop() then break end
  106. end
  107. turtle.turnLeft()
  108. turtle.turnLeft()
  109. for j=3, 16 do
  110. turtle.select(j)
  111. if not turtle.drop() then break end
  112. end
  113. turtle.turnLeft()
  114. turtle.digUp()
  115. turtle.up()
  116. end
  117.  
  118. -- move back down and drop off leftover wood
  119. turtle.turnLeft()
  120. turtle.turnLeft()
  121. turtle.digDown()
  122. turtle.down()
  123. turtle.digDown()
  124. turtle.down()
  125. turtle.digDown()
  126. turtle.down()
  127. turtle.dig()
  128. turtle.forward()
  129. turtle.digDown()
  130. turtle.down()
  131. turtle.digDown()
  132. turtle.down()
  133. turtle.turnLeft()
  134. turtle.turnLeft()
  135.  
  136. for i=3, 16 do
  137. turtle.select(i)
  138. turtle.drop()
  139. end
  140.  
  141. -- now go pick up charcoal
  142. -- move up to furnaces
  143. turtle.digUp()
  144. turtle.up()
  145. turtle.digUp()
  146. turtle.up()
  147. turtle.dig()
  148. turtle.forward()
  149.  
  150. -- fetch from all furnaces
  151. for i=1, 4 do
  152. turtle.turnLeft()
  153. for j=3, 16 do
  154. turtle.select(j)
  155. if turtle.suck() then break end
  156. end
  157. turtle.turnLeft()
  158. turtle.turnLeft()
  159. for j=3, 16 do
  160. turtle.select(j)
  161. if turtle.suck() then break end
  162. end
  163. turtle.turnLeft()
  164. turtle.digUp()
  165. turtle.up()
  166. end
  167.  
  168. -- move back down and drop off charcoal
  169. turtle.turnLeft()
  170. turtle.turnLeft()
  171. turtle.digDown()
  172. turtle.down()
  173. turtle.digDown()
  174. turtle.down()
  175. turtle.digDown()
  176. turtle.down()
  177. turtle.dig()
  178. turtle.forward()
  179. turtle.digDown()
  180. turtle.down()
  181. turtle.digDown()
  182. turtle.down()
  183.  
  184. for i=3, 16 do
  185. turtle.select(i)
  186. turtle.dropDown()
  187. end
  188.  
  189. turtle.up()
  190. end
  191.  
  192. function FetchDrops()
  193. -- todo
  194. end
  195.  
  196.  
  197. -- movement and execution
  198. for x=1, runs do
  199. if x % 1 == 0 then
  200. FillFurnaces()
  201. end
  202.  
  203. for i=1, treeRows do
  204. Refuel()
  205. for j=1, trees do
  206. if turtle.detect() and not turtle.detectDown() then
  207. ChopTree()
  208. turtle.dig()
  209. turtle.forward()
  210. else
  211. turtle.forward()
  212. Plant()
  213. turtle.dig()
  214. turtle.forward()
  215. end
  216. end
  217. if i == treeRows then break end
  218. if direction then
  219. turtle.turnLeft()
  220. turtle.dig()
  221. turtle.forward()
  222. turtle.dig()
  223. turtle.forward()
  224. turtle.turnLeft()
  225. direction = false
  226. else
  227. turtle.turnRight()
  228. turtle.dig()
  229. turtle.forward()
  230. turtle.dig()
  231. turtle.forward()
  232. turtle.turnRight()
  233. direction = true
  234. end
  235. end
  236. Return()
  237.  
  238. if x % 1 == 0 then
  239. FillFurnaces()
  240. end
  241.  
  242. --if x % 10 == 0 then
  243. -- FetchDrops()
  244. --end
  245.  
  246. os.sleep(5)
  247. end
Advertisement
Add Comment
Please, Sign In to add comment