BruceWplays

Farm old V5 (Lauren)

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