Advertisement
Guest User

farmer 1.1

a guest
Feb 28th, 2020
255
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.83 KB | None | 0 0
  1. local arg1, arg2 = ...
  2. limX = arg1
  3. limZ = 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. turtle.placeDown()
  20. return true
  21.  
  22. function selectSeeds()
  23. for i = 0, 15, 1
  24. do
  25. turtle.select(i)
  26. name = turtle.getItemDetail().name
  27. if name == "minecraft:seeds"
  28. then
  29. return true
  30. end
  31. end
  32. return false
  33.  
  34. function harvest()
  35. if turtle.detectDown()
  36. then
  37. local success, data = turtle.inspectDown()
  38. if data.name == "minecraft:wheat"
  39. then
  40. if data.metadata == 7
  41. then
  42. turtle.digDown()
  43. end
  44. end
  45. end
  46.  
  47. function turnTo(dir)
  48. if facing > dir
  49. then
  50. turtle.turnRight()
  51. dir -= 1
  52. turnTo(dir)
  53. end
  54. if facing < dir
  55. then
  56. turtle.turnLeft()
  57. dir += 1
  58. turnTo(dir)
  59. end
  60. if facing == dir
  61. then
  62. return
  63. end
  64.  
  65. function goUp()
  66. turnTo(0)
  67. turtle.moveForward()
  68. relZ = relZ + 1
  69.  
  70. function goDown()
  71. turnTo(2)
  72. turtle.moveForward()
  73. relZ = relZ - 1
  74.  
  75. function goLeft()
  76. turnTo(1)
  77. turtle.moveForward()
  78. relX = relX - 1
  79.  
  80. function goRight()
  81. turnTo(3)
  82. turtle.moveForward()
  83. relX = relX + 1
  84.  
  85. function walkField()
  86. while relZ <= limZ
  87. do
  88. goUp()
  89. while relX <= limX
  90. do
  91. goRight()
  92. harvest()
  93. plant()
  94. end
  95. goUp()
  96. while relX > 1
  97. do
  98. goLeft()
  99. harvest()
  100. plant()
  101. end
  102. end
  103.  
  104. function returnToOrigin()
  105. while relX > 0
  106. do
  107. goLeft()
  108. end
  109. while relY > 0
  110. goDown()
  111. end
  112.  
  113. function depositItems()
  114. for i = 0, 15, 1
  115. do
  116. turtle.drop()
  117. end
  118.  
  119. function grabSeeds()
  120. turtle.suckDown(area)
  121.  
  122. function execute()
  123. walkField()
  124. returnToOrigin()
  125. depositItems()
  126. grabSeeds()
  127. turnTo(0)
  128.  
  129. function main()
  130. while (true)
  131. do
  132. if redstone.getInput("left")
  133. then
  134. execute()
  135. end
  136. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement