Advertisement
crawfeesh

farmer 1.10

Feb 28th, 2020
610
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.21 KB | None | 0 0
  1. local arg1, arg2 = ...
  2. limX = tonumber(arg1)
  3. limZ = tonumber(arg2)
  4. area = limX * limZ
  5. relX = 0
  6. relZ = 0
  7. facing = 0
  8.  
  9. function plant()
  10. if turtle.detectDown()
  11. then
  12. return false
  13. end
  14. turtle.down()
  15. seeds = selectSeeds()
  16. if not seeds
  17. then
  18. return false
  19. end
  20. turtle.placeDown()
  21. return true
  22. end
  23.  
  24. function selectSeeds()
  25. for i = 1, 16, 1
  26. do
  27. turtle.select(i)
  28. name = turtle.getItemDetail().name
  29. if name == "minecraft:seeds"
  30. then
  31. return true
  32. end
  33. end
  34. return false
  35. end
  36.  
  37. function harvest()
  38. if turtle.detectDown()
  39. then
  40. local success, data = turtle.inspectDown()
  41. if data.name == "minecraft:wheat"
  42. then
  43. if data.metadata == 7
  44. then
  45. turtle.digDown()
  46. end
  47. end
  48. end
  49. end
  50.  
  51. function turnTo(dir)
  52. if facing > dir
  53. then
  54. turtle.turnRight()
  55. dir = dir - 1
  56. turnTo(dir)
  57. end
  58. if facing < dir
  59. then
  60. turtle.turnLeft()
  61. dir = dir + 1
  62. turnTo(dir)
  63. end
  64. if facing == dir
  65. then
  66. return
  67. end
  68. end
  69.  
  70. function goUp()
  71. turnTo(0)
  72. turtle.forward()
  73. relZ = relZ + 1
  74. end
  75.  
  76. function goDown()
  77. turnTo(2)
  78. turtle.forward()
  79. relZ = relZ - 1
  80. end
  81.  
  82. function goLeft()
  83. turnTo(1)
  84. turtle.forward()
  85. relX = relX - 1
  86. end
  87.  
  88. function goRight()
  89. turnTo(3)
  90. turtle.forward()
  91. relX = relX + 1
  92. end
  93.  
  94. function walkField()
  95. while relZ <= limZ
  96. do
  97. goUp()
  98. while relX <= limX
  99. do
  100. goRight()
  101. harvest()
  102. plant()
  103. end
  104. goUp()
  105. while relX > 1
  106. do
  107. goLeft()
  108. harvest()
  109. plant()
  110. end
  111. end
  112. end
  113.  
  114. function returnToOrigin()
  115. while relX > 0
  116. do
  117. goLeft()
  118. end
  119. while relY > 0
  120. do
  121. goDown()
  122. end
  123. end
  124.  
  125. function depositItems()
  126. for i = 1, 16, 1
  127. do
  128. turtle.drop()
  129. end
  130. end
  131.  
  132. function grabSeeds()
  133. i = 1
  134. remaining = area
  135. while remaining > 64
  136. do
  137. turtle.select(i)
  138. turtle.suckDown(64)
  139. i = i + 1
  140. remaining = remaining - 64
  141. end
  142. turtle.suckDown(remaining)
  143. end
  144.  
  145. function feedFuel()
  146. turnTo(3)
  147. while (getFuelLevel() < 2000)
  148. do
  149. turtle.suck(4)
  150. turtle.refuel(4)
  151. end
  152. end
  153.  
  154. function execute()
  155. feedFuel()
  156. grabSeeds()
  157. walkField()
  158. returnToOrigin()
  159. depositItems()
  160. turnTo(0)
  161. end
  162.  
  163. function main()
  164. while (true)
  165. do
  166. if redstone.getInput("left")
  167. then
  168. execute()
  169. end
  170. end
  171. end
  172.  
  173. main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement