KaoSDlanor

farm

May 19th, 2013
128
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 4.07 KB | None | 0 0
  1. term.clear()
  2. term.setCursorPos(1,1)
  3. local fuelReq=59*2+2
  4.  
  5. -- CHECK FOR CORRECT CONFIG
  6.  
  7. turtle.select(1)
  8. if turtle.getItemCount(1)<1 or turtle.getItemCount(2)<1 then
  9.     error("you must have at least 1 seed in slot 1 and 1 wheat in slot 2")
  10. end
  11.  
  12. if turtle.compareTo(2) then
  13.     error("you have the same item in slot 1 and 2. slot 1 must be seeds and slot 2 must be wheat")
  14. end
  15.  
  16. --WAIT FOR CORRECT PLANTING TIME
  17.  
  18. print("press P to begin planting")
  19. repeat
  20.     local evt={os.pullEvent("char")}
  21. until evt[2]=="p" or evt[2]=="P"
  22.  
  23. for run=1,2 do
  24.     --CHECK CONDITIONS AND RESTOCK/REFUEL
  25.     if turtle.getFuelLevel()<fuelReq then
  26.         turtle.select(4)
  27.         while turtle.getFuelLevel()<fuelReq and turtle.suckDown() do
  28.             while turtle.getItemCount(4)>0 and turtle.getFuelLevel()<fuelReq do
  29.                 turtle.refuel(1)
  30.             end
  31.         end
  32.         if turtle.getFuelLevel()<fuelReq then
  33.             error("insufficient fuel to complete planting")
  34.         elseif turtle.getItemCount(4)>0 then
  35.             turtle.dropDown()
  36.         end
  37.     end
  38.     turtle.turnRight()
  39.     for i=1,2 do turtle.forward() end
  40.     turtle.turnLeft()
  41.  
  42.     if turtle.getItemCount(2)>1 then turtle.slect(2) turtle.dropDown(turtle.getItemCount(2)-1) end
  43.     for nSlot=4,16 do
  44.         if turtle.getItemCount(nSlot)>0 then
  45.             turtle.select(nSlot)
  46.             turtle.dropDown()
  47.         end
  48.     end
  49.     if turtle.getItemCount(1)>1 then
  50.         turtle.transferTo(3,turtle.getItemCount(1)-1)
  51.     end
  52.     turtle.select(3)
  53.     while turtle.getItemCount(3)<60 and turtle.suckDown() do if not turtle.compareTo(1) then turtle.dropUp() end end
  54.     turtle.select(4)
  55.     while turtle.suckUp() do turtle.dropDown() end
  56.     if turtle.getItemCount(3)<60 then
  57.         error("insufficient seeds to complete planting")
  58.     end
  59.  
  60.     --PLANT/HARVEST
  61.     turtle.select(run==1 and 3 or 2)
  62.     for side=1,2 do
  63.         for a=1,2 do
  64.             for i=1,5 do turtle.forward() turtle[(run==1 and "place" or "dig").."Down"]() end
  65.             if a==1 then turtle.forward() end
  66.         end
  67.         if side==1 then
  68.             turtle.turnRight() turtle.forward() turtle.turnRight()
  69.         else
  70.             turtle.turnLeft() turtle.forward() turtle.turnLeft()
  71.         end
  72.         for a=1,2 do
  73.             for i=1,4 do turtle.forward() if i~=4-a then turtle[(run==1 and "place" or "dig").."Down"]() end end
  74.             if a==1 then turtle.forward() end
  75.         end
  76.         if side==2 then
  77.             turtle.turnRight() turtle.forward() turtle.turnRight()
  78.         else
  79.             turtle.turnLeft() turtle.forward() turtle.turnLeft()
  80.         end
  81.         for a=1,2 do
  82.             for i=1,4 do
  83.                 if a==1 then
  84.                     turtle[(run==1 and "place" or "dig").."Down"]() turtle.forward()
  85.                 else
  86.                     turtle.forward() turtle[(run==1 and "place" or "dig").."Down"]()
  87.                 end
  88.             end
  89.         end
  90.         if side==1 then
  91.             turtle.turnRight() turtle.forward() turtle.turnRight()
  92.         else
  93.             turtle.turnLeft() turtle.forward() turtle.turnLeft()
  94.         end
  95.         for a=1,2 do
  96.             for i=1,3 do turtle.forward() turtle[(run==1 and "place" or "dig").."Down"]() end
  97.             if a==1 then turtle.forward() end
  98.         end
  99.         if side==2 then
  100.             turtle.turnRight() turtle.forward() turtle.turnRight()
  101.         else
  102.             turtle.turnLeft() turtle.forward() turtle.turnLeft()
  103.         end
  104.         for a=1,2 do
  105.             turtle.forward() turtle.forward() turtle[(run==1 and "place" or "dig").."Down"]()
  106.         end
  107.         if side==1 then
  108.             turtle.turnLeft()
  109.         else
  110.             turtle.turnRight()
  111.         end
  112.         for i=1,(side==1 and 6 or 4) do turtle.forward() end
  113.         if side==1 then
  114.             turtle.turnLeft()
  115.         else
  116.             turtle.turnRight()
  117.         end
  118.         for i=1,7 do turtle.forward() end
  119.         turtle.turnLeft()
  120.         if side==2 and run==2 then for i=1,2 do turtle.forward() end end
  121.         turtle.turnLeft()
  122.     end
  123.     if run==1 then
  124.         turtle.select(3)
  125.         turtle.dropDown()
  126.         term.clear()
  127.         term.setCursorPos(1,1)
  128.         print("waiting for seeds to grow.")
  129.         for min=37,0,-1 do
  130.             for sec=60,0,-1 do
  131.                 term.setCursorPos(1,2)
  132.                 write((min<10 and "0" or "")..min..":"..(sec<10 and "0" or "")..sec)
  133.                 sleep(1)
  134.             end
  135.         end
  136.         term.clear()
  137.         term.setCursorPos(1,1)
  138.         print("Harvesting")
  139.     else
  140.         for i=1,16 do
  141.             turtle.select(i)
  142.             if i>=2 then
  143.                 turtle.dropDown(turtle.getItemCount(i)-1)
  144.             else
  145.                 turtle.dropDown()
  146.             end
  147.         end
  148.         if side==2 then
  149.             turtle.turnLeft()
  150.             for i=1,2 do turtle.forward() end
  151.             turtle.turnRight()
  152.         end
  153.     end
  154. end
Advertisement
Add Comment
Please, Sign In to add comment