bmm115

9x9_farm_setup

Dec 21st, 2018
38
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. --[[
  2. This program is designed to setup a 9x9 farm on a level surface with a
  3. water source block in the middle. These dimensions account for the
  4. maximum range a tilled dirt can be from water. If you would prefer to
  5. have the farm level with your terrain rather than raised one above it
  6. you need only clear a 9x9 hole in the ground and ensure your turtle is
  7. placed at the block height you want the farm built at. This program
  8. can handle wheat, carrots, and potatoes. A farming turtle will require
  9. the following items in it's inventory slots:
  10.  
  11. 1) 64 dirt
  12. 2) 16 dirt
  13. 4) bucket of water
  14. 5) 64 seeds, carrots, or potatoes
  15. 6) 16 seeds, carrots, or potatoes
  16. 16) Fuel (preferably coal, charcoal, or a lava bucket)
  17.  
  18. Future versions will support pumpkins and melons along with
  19. harvesting/replanting code.
  20. ]]--
  21.  
  22. local step = 1 --used to track progression
  23. local count = 64 --used to track inventory slots
  24. local n = 1 --used to track slot selection
  25.  
  26. function fuel()
  27.   if turtle.getFuelLevel() < 10 then
  28.     select(16)
  29.     turtle.refuel(1)
  30.   end
  31. end
  32.  
  33. --assorted functions to shorten/tidy my actual code
  34. function left(reps)
  35.   for x=1,reps do
  36.    turtle.turnLeft()
  37.   end
  38. end
  39.  
  40. function right(reps)
  41.   for x=1,reps do
  42.    turtle.turnRight()
  43.   end
  44. end
  45.  
  46. function back(reps)
  47.   for x=1,reps do
  48.    fuel()
  49.    turtle.back()
  50.   end
  51. end
  52.  
  53. function forward(reps)
  54.   for x=1,reps do
  55.    fuel()
  56.    turtle.forward()
  57.   end
  58. end
  59.  
  60. function up(reps)
  61.   for x=1,reps do
  62.    fuel()
  63.    turtle.up()
  64.   end
  65. end
  66.  
  67. function down(reps)
  68.   for x=1,reps do
  69.    fuel()
  70.    turtle.down()
  71.   end
  72. end
  73.  
  74. function pDown()
  75.   turtle.placeDown()
  76. end
  77.  
  78. function pUp()
  79.   turtle.placeUp()
  80. end
  81.  
  82. function place()
  83.   turtle.place()
  84. end
  85.  
  86. function dDown()
  87.   turtle.digDown()
  88. end
  89.  
  90. function select(slot)
  91.   turtle.select(slot)
  92. end
  93.  
  94. --Turtle positions itself and begins creating the farm
  95. up(1)
  96. right(2)
  97. back(1)
  98. select(1)
  99. pDown()
  100. count = count - 1
  101.  
  102. --Turtle creates the farm when z == 1 and then tills and plants when z == 2
  103. for z=1,2 do
  104.   for x=1,9 do
  105.     for y=1,8 do
  106.       if z == 1 then
  107.         if count > 0 then
  108.           n=1
  109.         else
  110.           n=2
  111.         end
  112.       else
  113.         if count > 0 then
  114.           n=5
  115.         else
  116.           n=6
  117.         end
  118.       end
  119.       if turtle.getItemCount(1) == 24 and count == 24 then --tracks for water placement
  120.         back(2)
  121.         down(1)
  122.         select(4)
  123.         place()
  124.         up(1)
  125.         forward(1)
  126.       else
  127.         back(1)
  128.         select(n)
  129.         pDown()
  130.       end    
  131.       count = count - 1
  132.     end
  133.     if step == 1 then
  134.       select(n)
  135.       pDown()
  136.       right(1)
  137.       back(1)
  138.       right(1)
  139.       if not pDown() then
  140.         select(n+1)
  141.         pDown()
  142.       end
  143.       step = 2
  144.       count = count - 2
  145.     else
  146.       select(n)
  147.       pDown()
  148.       left(1)
  149.       back(1)
  150.       left(1)
  151.       if not pDown() then
  152.         select(n+1)
  153.         pDown()
  154.       end
  155.       step = 1
  156.       count = count - 2
  157.     end
  158.   end
  159.   for a=1,2 do
  160.     right(1)
  161.     forward(1)
  162.   end
  163.   up(1)
  164.   count = 64
  165. end
Add Comment
Please, Sign In to add comment