Advertisement
GooGoo

ComputerCraft Turtle Tree Harvester

Oct 25th, 2014
235
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 3.56 KB | None | 0 0
  1. function aboutFace()-- simply turns the turtle 180 degrees.
  2.     turtle.turnLeft()
  3.     turtle.turnLeft()
  4. end
  5.  
  6. function grabFuel()-- takes fuel from chest behind turtle for autoRefuel()
  7.   if turtle.getItemCount(16) >= 2 then
  8.     print("No need to grab fuel!")
  9.   else
  10.     print("Grabbing Fuel!")
  11.     sleep(1)
  12.     aboutFace()
  13.     turtle.select(16)
  14.     turtle.suck(2)
  15.     aboutFace()
  16.   end
  17.     if turtle.getItemCount(16) == 0 then
  18.     print("Couldn't retrieve fuel from chest!")
  19.     elseif turtle.getItemCount(16) == 1 then
  20.     print("Only grabbed 1 fuel!")
  21.     else
  22.     print("Fuel grabbed!")
  23.    
  24.   end
  25. end
  26.  
  27. function autoRefuel() -- Automatically refuels turtle from chest.
  28.         turtle.select(16)
  29.         print("Selecting slot 16 for fuel check.")
  30.         sleep(2)
  31.         print("Fuel level is " ..turtle.getFuelLevel().. ".")
  32.         sleep(1)
  33.         print("Less than 80 requires a refuel!")
  34.         sleep(1)
  35.         print("STANDBY...")
  36.         sleep(1)
  37.     if turtle.getItemCount(16) < 2 then
  38.         grabFuel()
  39.     end
  40.    
  41.     if turtle.getFuelLevel() < 80 and turtle.getItemCount(16) >= 2 and turtle.refuel(0) == true then
  42.         sleep(2)
  43.         print("Refueling")
  44.         sleep(2)
  45.         turtle.refuel(2)--Refuels using 2 fuel.
  46.         print("Refueled")
  47.         --checks fuel level and if you put 2 fuel in slot 16 if not goes to manual refuel"manRefuel()"
  48.     elseif turtle.getFuelLevel() < 80 and turtle.getItemCount(16) < 2 then
  49.         manRefuel()
  50.         -- checks fuel level if not needed prints it.
  51.     elseif turtle.getFuelLevel() >= 80 then
  52.         print("No fuel needed.")
  53.     end
  54. end
  55.    
  56. function manRefuel()
  57.     print("There was either no fuel in the chest,")
  58.     print("Not enough fuel in the chest.")
  59.     print("Or there is no chest.")
  60.     print("Please add fuel manually to slot 16.") --Manually refuel your turtle instead.
  61.     sleep(3)
  62.     --checks fuel level and if selected slot is fuel or has fuel.
  63.     --waits 10 seconds for you to add fuel
  64.     if turtle.getFuelLevel() < 80 and turtle.refuel(0) == false then
  65.         print("Waiting 10 seconds for fuel.")
  66.         sleep(10)
  67.     end
  68.     --and trys refueling again.
  69.     if turtle.getItemCount(16) >= 2 then
  70.         print("Thank you. Refueling!")
  71.         turtle.refuel(2)--Refuels using 2 fuel.
  72.     elseif turtle.getItemCount(16) == 1 then
  73.         print("Only 1 fuel detected!")
  74.         sleep(1)
  75.         print("Add 1 more within 5 seconds!")
  76.         sleep(5)
  77.     end
  78.    
  79.     --If you didn't add fuel to turtle, it aborts the program. 
  80.     if turtle.getFuelLevel() < 80 and turtle.getItemCount(16) < 2 then
  81.         print("TIMES UP! Come back when you have fuel! Exiting Program!")
  82.         sleep(1)
  83.         exit()
  84.         elseif turtle.getItemCount(16) == 2 then
  85.         turtle.refuel(2)
  86.         else print("ERROR!!")
  87.     end
  88. end
  89.  
  90. function refuel()
  91.     if turtle.getFuelLevel() < 80 then
  92.         print("Automatic refuel attempt.")
  93.         sleep(2)
  94.         autoRefuel()
  95.     end
  96.         if turtle.getFuelLevel() < 80 and autRefuel() == false then
  97.             sleep(2)
  98.             manRefuel()
  99.         end
  100.             if turtle.getFuelLevel() >= 80 then
  101.                 print("Fuel level is " ..turtle.getFuelLevel().. ".")
  102.                 print("No fuel needed!")
  103.             end
  104. end
  105.  
  106. function cutTree()
  107.     turtle.select(1)
  108.     print("Cutting down tree...")
  109.     turtle.dig()
  110.     turtle.forward()
  111.     turtle.digDown()
  112.    
  113.     while turtle.detectUp() do
  114.         turtle.digUp()
  115.         turtle.up()
  116.     end
  117.    
  118.     while true do
  119.         if turtle.detectDown() then
  120.             print("Done with tree...")
  121.             break
  122.         else
  123.             turtle.down()
  124.         end
  125.     end
  126.     turtle.back()
  127.     turtle.select(1)
  128.     turtle.place()
  129.     print("Planting sapling...")
  130.     turtle.digUp()
  131.     turtle.up()
  132. end
  133.         refuel()
  134.         turtle.select(1)
  135.         print("Planting sapling...")
  136.         turtle.place()
  137.         turtle.digUp()
  138.         turtle.up()
  139.  
  140. while true do
  141.     if turtle.detect() then
  142.         refuel()
  143.         cutTree()
  144.     else
  145.         print("Waiting for tree to grow...")
  146.         sleep(2)
  147.     end
  148. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement