Advertisement
Guest User

farmer 1.2

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