Advertisement
BruceWplays

Farm V7

Sep 7th, 2022 (edited)
1,071
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. version = "5"
  2. term.clear()
  3. term.setCursorPos(1, 1)
  4. --print(version)
  5. sleep(3)
  6. done = 0
  7.  
  8. for l=1,10 do
  9. if fs.exists("farmapi/gt") == false then do
  10.     print("downloading goto api")
  11.     shell.run("mkdir","farmapi")
  12.     shell.run("cd","farmapi")
  13.     shell.run("pastebin","get","a3GBewNp","gt")
  14.     shell.run("cd","..")
  15.         if fs.exists("farmapi/gt") == true then
  16.             print("download complete")
  17.                 elseif fs.exists("farmapi/gt") == false then
  18.                     print("download failed")
  19.                 end
  20. end
  21.  
  22. else do
  23.            
  24.   term.clear()
  25.   term.setCursorPos(1, 1)                          
  26.  print("recentering")  
  27.  os.loadAPI("farmapi/gt")        
  28. while true do
  29. if done ~= 4 then do
  30.  
  31.  
  32.  
  33.                        
  34. ---------------------                        
  35. ---------------------                        
  36. ---------------------
  37. --CHANGE HERE START--
  38. ---------------------
  39. ---------------------                        
  40. ---------------------                        
  41.                        
  42.                        
  43. --"1" is Normal, "2" is Pumpkin/Melon/Probably Sugar Cane                    
  44. Mode = 2
  45.                        
  46. Farm_Lenth = 5
  47. Farm_Width = 7
  48.  
  49.  
  50.  
  51.                      
  52. -- sort for specific crop                        
  53.  
  54. --whether or not to sort, 1 is yes, 0 is no                        
  55. sortblock = 1  
  56. --name of the crop                        
  57. crop_name = "minecraft:pumpkin"                                        
  58.                        
  59. --max age of crop should probably be left at 7
  60. crop_max_age = 7                      
  61.                        
  62.                        
  63.                        
  64.                        
  65. --setup location
  66.   setuploc = {304, 66, 325, "n"}
  67.  
  68.                    
  69.                        
  70.                    
  71. --chest location                      
  72.       chestloc = {304, 65, 326, "s"}
  73.  
  74. --chest 2 = "up", 1 = "down", or 0 = "forward"                        
  75. chestdirection = 0                      
  76.                        
  77.     --misc
  78.                        
  79.                       --ignore if a crop has no age value should be set at 1 for Pumpkin/Melon and 0 for Normal
  80.                         Override_ignore_nil_age = 0
  81.                         ignore_nil_age = 1  
  82.                        
  83.                         override_stages = 0
  84.                         turnleftchest = 0
  85.                         totalstages = 1
  86.                        
  87.                        
  88. -------------------                        
  89. -------------------
  90. --CHANGE HERE END--
  91. -------------------        
  92. -------------------
  93.                        
  94.                        
  95.        
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125. --unused!!!! Recenter Values
  126. turn_right_recenter_times = 0
  127. forward_recenter_times = 0  
  128.  
  129. if Override_ignore_nil_age == 0 then
  130.    if Mode == 2 then                          
  131.          ignore_nil_age = 1
  132.    elseif Mode == 1 then                            
  133.          ignore_nil_age = 0                        
  134.    end                          
  135. end                    
  136.                        
  137. st_width = Farm_Width
  138. lenth = Farm_Lenth                      
  139. if override_stages == 1 then
  140. totalsteps = totalstages
  141.      if Mode == 2 then
  142.        grabstage = 5
  143.        elseif Mode == 1 then
  144.        grabstage = 2                        
  145.      end                              
  146. elseif Mode == 2 then
  147.    if override_stages == 0 then                        
  148.          grabstage = 5                  
  149.        totalstages = 1                    
  150.  totalsteps = 1  
  151.      end                                                      
  152.  elseif  Mode == 1 then
  153.    if override_stages == 0 then                        
  154.        grabstage = 2                    
  155.        totalstages = 2                    
  156.  totalsteps = 2  
  157.      end                          
  158.   end                      
  159. totalsteps = totalstages                                              
  160. endsteps = totalsteps + 1                    
  161. sub_lenth = lenth - 1                      
  162. function chest()                        
  163.  term.clear()
  164.         term.setCursorPos(1, 1)                                
  165.        print("going to chest")                        
  166.        gt.goto(chestloc)
  167.                          
  168.     if Mode == 2 then
  169.      chest = 1
  170.       elseif  Mode == 1 then                        
  171.     chest = 2
  172.                                     end
  173.         term.clear()
  174.         term.setCursorPos(1, 1)                          
  175.     print("putting in chest")
  176.     while chest <= 16 do
  177.     turtle.select(chest)
  178.   if chestdirection == 0 then  
  179.       turtle.drop()                              
  180.                                    
  181.         elseif chestdirection == 1 then
  182.                    
  183.     turtle.dropDown()
  184.     elseif chestdirection == 2 then                          
  185.       turtle.dropUp()
  186.             end                        
  187.                                    
  188.                                    
  189.     chest = chest + 1
  190.   end
  191.       if turnleftchest == 1 then
  192.           turtle.turnLeft()
  193.                                 end
  194.      term.clear()
  195.         term.setCursorPos(1, 1)                                
  196.        print("Resetting")                        
  197.    sleep(1)
  198.    os.reboot()                        
  199.  end                              
  200.                                
  201.                                
  202.                                
  203. function turn()
  204.  
  205.  
  206. if width >= 2 then                                  
  207.  
  208.   if right == 1 then
  209.  
  210.     turtle.turnRight()
  211.     turtle.forward()
  212.     turtle.turnRight()
  213.  
  214.     dist = sub_lenth
  215.     width = width - 1
  216.     right = 0
  217.   else
  218.  
  219.     turtle.turnLeft()
  220.     turtle.forward()
  221.     turtle.turnLeft()
  222.     dist = sub_lenth
  223.     width = width - 1
  224.     right = 1
  225. end
  226. elseif width < 2 then
  227.   dist = sub_lenth
  228.   width = width - 1
  229.   if width <= 0 then
  230.     turtle.turnLeft()
  231.     turtle.turnLeft()
  232.   end
  233. end
  234. end
  235.  
  236.                        
  237. function recenter()                            
  238. working_turn_right_recenter_times = turn_right_recenter_times
  239.                            
  240. working_forward_recenter_times = forward_recenter_times
  241.                            
  242. gt.goto(setuploc)
  243. if turn_right_recenter_times ~= 0 then
  244.     while working_turn_right_recenter_times ~= 0 do
  245.         turtle.turnRight()
  246.         working_turn_right_recenter_times = working_turn_right_recenter_times - 1      
  247.     end                                
  248. end                          
  249.                                    
  250. right = 1
  251. turtle.select(1)
  252. dist = lenth - 1
  253.   if forward_recenter_times ~= 0 then  
  254.      while working_forward_recenter_times ~= 0 do                          
  255.       turtle.forward()  
  256.       working_forward_recenter_times = working_forward_recenter_times - 1                              
  257.      end                        
  258.   end                              
  259.                                
  260. end
  261.                        
  262.  
  263.                        
  264.                        
  265. function stage1()    
  266.                            
  267.                          
  268.                                        term.setCursorPos(1, 1)
  269.                    term.clearLine()                        
  270.                  print ("Stage: " .. done .. "/" .. totalsteps.. " Harvest and Plant")    
  271.                            
  272.        success, data = turtle.inspectDown()  
  273.          if success then        
  274.                              
  275.                                
  276.                                 if data.state.age ~= nil then
  277.                                    
  278.                                    
  279.                                             term.setCursorPos(1, 2)
  280.                                                 term.clearLine()
  281.                                                percentagefloat = (data.state.age - 0) / (7 - 0) * 100
  282.                                                 percentage = math.floor(percentagefloat+0.5)
  283.                                                
  284.                                                 print("Crop Age: " .. percentage .. "%")
  285.                                     end
  286. --         if ignore_nil_age == 1 then
  287.  --    if data.state.age == nil then
  288.    --         data.state.age = crop_max_age                        
  289.    --  end
  290.  --end                              
  291.                              
  292.  if (data.name == crop_name) or (sortblock == 0) then  
  293.        if data.state.age == crop_max_age or ignore_nil_age == 1 then
  294.            --print("Age Check 2: " .. data.state.age)                                          
  295.         turtle.digDown()
  296.                  turtle.suckDown()                                  
  297.                  --term.setCursorPos(1, 3)
  298.                   --term.clearLine()                                  
  299.                  --print("dig")  
  300.                                        
  301.                                      
  302.               end
  303.                 end
  304.                                            
  305.                   if Mode == 1 then                          
  306.                   turtle.placeDown()                            
  307.                     end                
  308.        end        
  309. end        
  310.  
  311.                        
  312.                        
  313. function stage2()  
  314.                            
  315.                            
  316.                            
  317.                             term.setCursorPos(1, 1)
  318.                                   term.clearLine()
  319.                            
  320.                                             print ("Stage: " .. done .. "/" .. totalsteps .. " Cleanup")                                    
  321.         turtle.suckDown()
  322.        
  323.                                     --print("grab")                      
  324.                        
  325.                        
  326.                        
  327. end                        
  328.                        
  329.                        
  330.  
  331. if width == 0 or width == nil  then
  332.     done = done + 1
  333.     --print ("add")                      
  334.     --print ("Steps: " .. done)
  335.     if done == endsteps then
  336.         chest()
  337.         done = 0
  338.     end
  339.  
  340. width = st_width
  341.                             --print("width: " .. width)
  342.                             recenter()
  343.  elseif width ~= 0 then
  344.                                
  345.                            
  346.                            
  347. if dist ~= 0 then                          
  348.            
  349.                          
  350. if done == 1 then
  351. term.clear()
  352.    while width ~= 0 do                                
  353.     while dist ~= 0 do                          
  354. stage1()                                
  355. turtle.forward()                        
  356. stage1()
  357. --print(dist)
  358.        dist = dist - 1
  359.                                                    
  360.              
  361.          end                                
  362.         turn()
  363.        end                            
  364.  
  365. elseif done == grabstage then
  366.      term.clear()                                
  367.    while width ~= 0 do                                  
  368.     while dist ~= 0 do
  369. stage2()                        
  370. turtle.forward()
  371. stage2()
  372.                                                
  373.        dist = dist - 1
  374.        end                                  
  375.         turn()
  376.                            
  377.     end
  378.                                        
  379. --unused planting phase not needed because it can be done after digging
  380. elseif done == 9 then
  381.    
  382.    while width ~= 0 do                                
  383.     while dist ~= 0 do
  384.         turtle.placeDown()
  385.         turtle.forward()
  386.        print("plant")
  387.             print ("Steps: " .. done)                                  
  388.    dist = dist - 1
  389.        end
  390.        turn()                                      
  391.     end
  392.       --end- unused planting phase end                        
  393.  
  394.  end
  395.  
  396.                                     end
  397.  
  398.  
  399.                                
  400.  
  401.  
  402.  
  403.  
  404. end
  405. end
  406. end
  407. end                    
  408. end                    
  409.     end                
  410.     end                
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement