Advertisement
awesome8digger

Computercraft WheatFarm

Jul 6th, 2018
182
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 8.63 KB | None | 0 0
  1. waitTime = 300 -- time to wait before reruning the program
  2.  
  3. function menu()
  4.     term.clear()
  5.     term.setCursorPos(1,1)
  6.     print("--------------------")
  7.     print("Welcome To FarmBotOS")
  8.     print("--------------------")
  9.     print("Press Enter To Start Farming")
  10.     print("Press RShift To Make A Farm")
  11.     print("Press H For Help")
  12.     print("Press Backspace To Cancel")
  13.     while true do
  14.         local event, key = os.pullEvent( "key" ) -- limit os.pullEvent to the 'key' event
  15.        
  16.         if key == keys.enter then -- if the key pressed was 'Enter'
  17.             farm()
  18.             break
  19.         end
  20.        
  21.         if key == keys.rightShift then -- if the key pressed was 'RShift'
  22.             makeFarm()
  23.             break
  24.         end
  25.        
  26.         if key == keys.h then -- if the key pressed was 'H'
  27.             term.clear()
  28.             term.setCursorPos(1,1)
  29.             helpPageOne()
  30.             break
  31.         end
  32.        
  33.         if key == keys.backspace then -- if the key pressed was 'Backspace'
  34.             term.clear()
  35.             term.setCursorPos(1,1)
  36.             break
  37.         end
  38.     end
  39. end
  40.  
  41. function helpPageOne()
  42.     print("----------------------")
  43.     print("Where Do You Put Items")
  44.     print("----------------------")
  45.     print("Slot 1: Fuel (DON'T USE LAVA!)")
  46.     print("For Making The Farm:")
  47.     print("Slot 13: Water Bucket")
  48.     print("Slot 14: Water Bucket")
  49.     print("Slot 15: Diamond Shovel (MUST BE DIAMOND!)")
  50.     print("Slot 16: 3 Chests")
  51.     print("Press -> For Next Page, Or Backspace To Cancel")
  52.     while true do
  53.         local event, key = os.pullEvent( "key" ) -- limit os.pullEvent to the 'key' event
  54.        
  55.         if key == keys.right then -- if the key pressed was '->'
  56.             term.clear()
  57.             term.setCursorPos(1,1)
  58.             helpPageTwo()
  59.             break
  60.         end
  61.        
  62.         if key == keys.backspace then -- if the key pressed was 'backspace'
  63.             term.clear()
  64.             term.setCursorPos(1,1)
  65.             menu()
  66.             break
  67.         end
  68.     end
  69. end
  70.  
  71. function helpPageTwo()
  72.     print("----------------------")
  73.     print("What Chests Hold What")
  74.     print("----------------------")
  75.     print("Chests Numbered From Left To Right Looking At The Backs Of The Chests")
  76.     print("Chest 1: Fuel")
  77.     print("Chest 2: Wheat")
  78.     print("Chest 3: Seeds")
  79.     print("Press Backspace To Cancel")
  80.     while true do
  81.         local event, key = os.pullEvent( "key" ) -- limit os.pullEvent to the 'key' event
  82.        
  83.         if key == keys.backspace then -- if the key pressed was 'backspace'
  84.             term.clear()
  85.             term.setCursorPos(1,1)
  86.             menu()
  87.             break
  88.         end
  89.     end
  90. end
  91.  
  92. function farm()
  93.     turtle.up()
  94.     turtle.forward()
  95.     turtle.turnRight()
  96.     inspectFarm()
  97.     for f = 1, 36 do
  98.         turtle.forward()
  99.     end
  100.     turtle.down()
  101.     refuelFromChest()
  102.     depositWheatAndSeeds()
  103.     turtle.turnRight()
  104.     turtle.forward()
  105.     turtle.forward()
  106.     turtle.turnRight()
  107.     os.sleep(waitTime)
  108.     farm()
  109. end
  110.  
  111. function inspectFarm()
  112.     inspectFarmSection()
  113.     turtle.turnRight()
  114.     turtle.forward()
  115.     turtle.turnRight()
  116.     inspectFarmSection()
  117.     turtle.turnRight()
  118.     turtle.forward()
  119.     turtle.turnRight()
  120.     inspectFarmSection()
  121.     turtle.turnRight()
  122.     turtle.forward()
  123.     turtle.turnRight()
  124.     inspectFarmSection()
  125.     turtle.turnLeft()
  126. end
  127.  
  128. function inspectFarmSection()
  129.     inspectRow()
  130.     turtle.turnLeft()
  131.     turtle.forward()
  132.     turtle.turnLeft()
  133.     inspectRow()
  134.     turtle.turnRight()
  135.     turtle.forward()
  136.     turtle.turnRight()
  137.     inspectRow()
  138.     turtle.turnLeft()
  139.     turtle.forward()
  140.     turtle.turnLeft()
  141.     inspectRow()
  142.     turtle.turnRight()
  143.     turtle.forward()
  144.     turtle.forward()
  145.     turtle.turnRight()
  146.     inspectRow()
  147.     turtle.turnLeft()
  148.     turtle.forward()
  149.     turtle.turnLeft()
  150.     inspectRow()
  151.     turtle.turnRight()
  152.     turtle.forward()
  153.     turtle.turnRight()
  154.     inspectRow()
  155.     turtle.turnLeft()
  156.     turtle.forward()
  157.     turtle.turnLeft()
  158.     inspectRow()
  159. end
  160.  
  161. function inspectRow()
  162.     for r = 1, 7 do
  163.         inspectWheat()
  164.         turtle.forward()
  165.     end
  166.     inspectWheat()
  167. end
  168.  
  169. function inspectWheat()
  170.     local success, data = turtle.inspectDown()
  171.     if success then
  172.         if data.name == "minecraft:wheat" then
  173.             if data.metadata == 7 then
  174.                 turtle.digDown()
  175.                 turtle.digDown()
  176.                 plantSeed()
  177.             end
  178.         end
  179.     else
  180.         turtle.digDown()
  181.         turtle.digDown()
  182.         plantSeed()
  183.     end
  184. end
  185.  
  186. function plantSeed()
  187.     for b = 1, 16 do
  188.         if turtle.getItemCount(b) ~= 0 then
  189.             if turtle.getItemDetail(b).name == "minecraft:wheat_seeds" then
  190.                 turtle.select(b)
  191.                 turtle.placeDown()
  192.                 return
  193.             end
  194.         end
  195.     end
  196. end
  197.  
  198. function refuelFromChest()
  199.     turtle.select(1)
  200.     while turtle.getFuelLevel() < 800 do
  201.         turtle.refuel(1)
  202.     end
  203.     while turtle.getItemSpace() > 32 do
  204.         turtle.suck(1)
  205.     end
  206.     return
  207. end
  208.  
  209. function depositWheatAndSeeds()
  210.     turtle.turnLeft() -- Move turtle toward the wheat chest
  211.     turtle.forward()
  212.     turtle.turnRight() -- face the wheat chest
  213.     turtle.select(1)
  214.     for s = 1, 16 do
  215.         if turtle.getItemCount(s) ~= 0 then
  216.             if turtle.getItemDetail(s).name == "minecraft:wheat" then
  217.                 turtle.select(s)
  218.                 turtle.drop()
  219.             end
  220.         end
  221.     end
  222.     turtle.turnLeft()
  223.     turtle.forward()
  224.     turtle.turnRight()
  225.     for v = 1, 16 do
  226.         if turtle.getItemCount(v) ~= 0 then
  227.             if turtle.getItemDetail(v).name == "minecraft:wheat_seeds" then
  228.                 turtle.select(v)
  229.                 turtle.drop()
  230.             end
  231.         end
  232.     end
  233. end
  234.  
  235. function makeFarm()
  236.     if turtle.getFuelLevel() < 800 then
  237.         print("[ERROR] Not Enough Fuel! Refuel Me To 800 Then Re-Run The Program")
  238.         return
  239.     end
  240.     turtle.select(16) -- select the chests
  241.     turtle.turnRight()
  242.     turtle.turnRight()
  243.     turtle.place() -- place the coal chest
  244.     turtle.turnLeft()
  245.     turtle.forward()
  246.     turtle.turnRight()
  247.     turtle.place() -- place the wheat chest
  248.     turtle.turnLeft()
  249.     turtle.forward()
  250.     turtle.turnRight()
  251.     turtle.place() -- place the seeds chest
  252.     turtle.turnRight()
  253.     turtle.forward()
  254.     turtle.forward()
  255.     turtle.turnRight() --  back at start position
  256.     turtle.select(15) -- select the diamond shovel
  257.     turtle.equipLeft() -- equip the shovel
  258.     turtle.forward()
  259.     turtle.forward()
  260.     turtle.forward()
  261.     turtle.forward()
  262.     turtle.forward()
  263.     turtle.turnRight() -- position turtle in front of water row
  264.     digAndFillWaterRow()
  265.     turtle.turnRight()
  266.     forward(9)
  267.     turtle.turnRight()
  268.     digAndFillWaterRow()
  269.     turtle.turnRight()
  270.     forward(9)
  271.     turtle.turnRight()
  272.     digAndFillWaterRow()
  273.     turtle.turnRight()
  274.     forward(9)
  275.     turtle.turnRight()
  276.     digAndFillWaterRow()
  277.     turtle.turnLeft()
  278.     turtle.select(15) -- select the hoe
  279.     turtle.equipLeft()
  280.     forward(34)
  281.     turtle.turnRight()
  282.     for c = 2, 16 do
  283.         turtle.select(c)
  284.         turtle.drop()
  285.     end
  286.     turtle.turnRight()
  287.     turtle.forward()
  288.     turtle.turnRight()
  289.     turtle.up()
  290.     tillFarm()
  291.     for f = 1, 36 do
  292.         turtle.forward()
  293.     end
  294.     turtle.down()
  295.     refuelFromChest()
  296.     depositWheatAndSeeds()
  297.     getSeeds()
  298.     turtle.turnRight()
  299.     turtle.forward()
  300.     turtle.forward()
  301.     turtle.turnRight()
  302.     farm()
  303. end
  304.  
  305. function digAndFillWaterRow()
  306.     for d = 1, 7 do
  307.         turtle.digDown()
  308.         turtle.forward()
  309.     end
  310.     turtle.digDown()
  311.     turtle.turnLeft()
  312.     turtle.turnLeft()
  313.    
  314.     turtle.select(14) -- select the water bucket
  315.     turtle.placeDown()
  316.     turtle.forward()
  317.     turtle.forward()
  318.     turtle.select(13)
  319.     turtle.placeDown()
  320.     turtle.back()
  321.     turtle.placeDown()
  322.     turtle.forward()
  323.     turtle.forward()
  324.     turtle.forward()
  325.     turtle.placeDown()
  326.     turtle.back()
  327.     turtle.placeDown()
  328.     turtle.forward()
  329.     turtle.forward()
  330.     turtle.forward()
  331.     turtle.placeDown()
  332.     turtle.back()
  333.     turtle.placeDown()
  334.     turtle.forward()
  335.     turtle.forward()
  336.     turtle.placeDown()
  337.     turtle.back()
  338.     turtle.select(14)
  339.     turtle.placeDown()
  340.     os.sleep(3)
  341.     turtle.select(13)
  342.     turtle.placeDown()
  343.     turtle.forward()
  344.     turtle.select(13)
  345. end
  346.  
  347. function tillFarm()
  348.     tillFarmSection()
  349.     turtle.turnRight()
  350.     turtle.forward()
  351.     turtle.turnRight()
  352.     tillFarmSection()
  353.     turtle.turnRight()
  354.     turtle.forward()
  355.     turtle.turnRight()
  356.     tillFarmSection()
  357.     turtle.turnRight()
  358.     turtle.forward()
  359.     turtle.turnRight()
  360.     tillFarmSection()
  361.     turtle.turnLeft()
  362. end
  363.  
  364. function tillFarmSection()
  365.     tillRow()
  366.     turtle.turnLeft()
  367.     turtle.forward()
  368.     turtle.turnLeft()
  369.     tillRow()
  370.     turtle.turnRight()
  371.     turtle.forward()
  372.     turtle.turnRight()
  373.     tillRow()
  374.     turtle.turnLeft()
  375.     turtle.forward()
  376.     turtle.turnLeft()
  377.     tillRow()
  378.     turtle.turnRight()
  379.     turtle.forward()
  380.     turtle.forward()
  381.     turtle.turnRight()
  382.     tillRow()
  383.     turtle.turnLeft()
  384.     turtle.forward()
  385.     turtle.turnLeft()
  386.     tillRow()
  387.     turtle.turnRight()
  388.     turtle.forward()
  389.     turtle.turnRight()
  390.     tillRow()
  391.     turtle.turnLeft()
  392.     turtle.forward()
  393.     turtle.turnLeft()
  394.     tillRow()
  395. end
  396.  
  397. function tillRow()
  398.     for r = 1, 7 do
  399.         turtle.digDown()
  400.         turtle.forward()
  401.     end
  402.     turtle.digDown()
  403. end
  404.  
  405. function getSeeds()
  406.     turtle.select(2)
  407.     while turtle.getItemSpace() > 0 do
  408.         turtle.suck(4)
  409.     end
  410.     turtle.select(3)
  411.     while turtle.getItemSpace() > 0 do
  412.         turtle.suck(4)
  413.     end
  414.     turtle.select(4)
  415.     while turtle.getItemSpace() > 0 do
  416.         turtle.suck(4)
  417.     end
  418.     turtle.select(5)
  419.     while turtle.getItemSpace() > 0 do
  420.         turtle.suck(4)
  421.     end
  422. end
  423.  
  424. function forward(d)
  425.     for i = 1, d do
  426.         turtle.forward()
  427.     end
  428. end
  429.  
  430. menu()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement