Advertisement
asweigart

farmwheat

Jul 31st, 2016
646
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.19 KB | None | 0 0
  1. --[[Wheat Farming program by Al Sweigart
  2. Plants and harvests wheat.
  3. Assumes a field is in front and
  4. to the right of the turtle,
  5. with a chest behind it.]]
  6.  
  7. os.loadAPI('hare')
  8.  
  9. -- handle command line arguments
  10. local cliArgs = {...}
  11. local length = tonumber(cliArgs[1])
  12. local width = tonumber(cliArgs[2])
  13.  
  14. -- display "usage" info
  15. if length == nil or width == nil or cliArgs[1] == '?' then
  16. print('Usage: farmwheat <length> <width>')
  17. return
  18. end
  19.  
  20. print('Hold Ctrl-T to stop.')
  21.  
  22. -- check that chest is there
  23. if not hare.findBlock('minecraft:chest') then
  24. error('Must start next to a chest.')
  25. end
  26.  
  27. -- face field
  28. turtle.turnLeft()
  29. turtle.turnLeft()
  30.  
  31.  
  32. -- checkWheatCrop() harvests mature wheat
  33. -- and plants seeds
  34. function checkWheatCrop()
  35. local result, block = turtle.inspectDown()
  36.  
  37. if not result then
  38. turtle.digDown() -- till the soil
  39. plantWheatSeed()
  40. elseif block ~= nil and block['name'] == 'minecraft:wheat' and block['metadata'] == 7 then
  41. -- collect wheat and replant
  42. turtle.digDown()
  43. print('Collected wheat.')
  44. plantWheatSeed()
  45. end
  46. end
  47.  
  48.  
  49. -- plantWheatSeed() attempts to plant
  50. -- a wheat seed below the turtle
  51. function plantWheatSeed()
  52. if not hare.selectItem('minecraft:wheat_seeds') then
  53. print('Warning: Low on seeds.')
  54. else
  55. turtle.placeDown() -- plant a seed
  56. print('Planted seed.')
  57. end
  58. end
  59.  
  60.  
  61. -- storeWheat() puts all wheat into an
  62. -- adjacent chest
  63. function storeWheat()
  64. -- face the chest
  65. if not hare.findBlock('minecraft:chest') then
  66. error('Could not find chest.')
  67. end
  68.  
  69. -- store wheat in chest
  70. while hare.selectItem('minecraft:wheat') do
  71. print('Dropping off ' .. turtle.getItemCount() .. ' wheat...')
  72. if not turtle.drop() then
  73. error('Wheat chest is full!')
  74. end
  75. end
  76.  
  77. -- face field again
  78. turtle.turnLeft()
  79. turtle.turnLeft()
  80. end
  81.  
  82.  
  83. -- begin farming
  84. while true do
  85. -- check fuel
  86. if turtle.getFuelLevel() < (length * width + length + width) then
  87. error('Turtle needs more fuel!')
  88. end
  89.  
  90. -- farm wheat
  91. print('Sweeping field...')
  92. hare.sweepField(length, width, checkWheatCrop)
  93. storeWheat()
  94.  
  95. print('Sleeping for 10 minutes...')
  96. os.sleep(600)
  97. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement