Advertisement
dadragon84

TreeCutter

Mar 1st, 2014
250
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 3.50 KB | None | 0 0
  1. term.clear()
  2. term.setCursorPos(1, 1)
  3. minerID = os.getComputerID()
  4. turtleName = nil
  5. consoleID = 0
  6. version = "1.0"
  7. function getConsoleID()
  8.   local fname = "ConsoleID"
  9.   if fs.exists(fname) then
  10.     file = fs.open(fname, "r")
  11.     consoleID = tonumber(file.readAll())
  12.     file.close()
  13.     print("Monitor Console ID: "..consoleID)
  14.   else
  15.     updateStatus("Waiting for Console ID...",true)
  16.     term.write("Monitor Console ID: ")
  17.     consoleID = io.read()
  18.     file = fs.open(fname, "w")
  19.     file.write(consoleID)
  20.     file.close()
  21.     consoleID = tonumber(consoleID)
  22.   end
  23. end
  24. function updateStatus(msg, silent)
  25.   if not rednet.isOpen("right") then rednet.open("right") end
  26.   if rednet.isOpen("right") then
  27.     if turtleName == nil then return end
  28.     networkmsg = "MM:"..turtleName..": "..msg
  29.     if consoleID == 0 then
  30.       rednet.broadcast(networkmsg)
  31.     else
  32.       rednet.send(consoleID,networkmsg)
  33.     end
  34.   end
  35.   if not silent then print(msg) end
  36. end
  37. function getTurtleName()
  38.   local fname = "TurtleName"
  39.   if fs.exists(fname) then
  40.     file = fs.open(fname, "r")
  41.     turtleName = file.readAll()
  42.     file.close()
  43.   else
  44.     term.write("Turtle Name: ")
  45.     turtleName = io.read()
  46.     file = fs.open(fname, "w")
  47.     file.write(turtleName)
  48.     file.close()
  49.   end
  50. end
  51. -- Main Program
  52. updateStatus("Starting")
  53. term.clear()
  54. term.setCursorPos(1,1)
  55. getTurtleName()
  56. getConsoleID()
  57. function update()
  58. end
  59. function fuelItUp()
  60.   updateStatus("...Working")
  61. --Finds out if the turtle needs to refuel and if it has fuel to run
  62.   needsFuel = turtle.getFuelLevel()
  63.   minimumFuelLevel = 10
  64.   hasFuel = turtle.getItemCount(16)
  65.   useFuel = turtle.refuel()
  66.   if needsFuel == "unlimited" then
  67.    
  68.   else
  69.     if tonumber(needsFuel) < tonumber(minimumFuelLevel) then
  70.       if hasFuel > 0 then
  71.         turtle.select(16)
  72.         turtle.refuel(1)
  73.         turtle.select(1)
  74.       else
  75.         updateStatus("Please insert fuel into slot 16")
  76.         repeat os.sleep(1)
  77.         until tonumber(turtle.getItemCount(16)) > 0
  78.         fuelItUp()
  79.       end
  80.     end
  81.   end
  82. end
  83.  
  84. --Digs block in front, then block above, then moves up. Moves back down when finished
  85. local function column()
  86. updateStatus("...Cutting...")
  87.   while turtle.detectUp() do
  88.     turtle.dig()
  89.     turtle.digUp()
  90.     turtle.up()
  91.   end
  92.   turtle.dig()
  93.   while not turtle.detectDown() do
  94.   updateStatus("...Coming Down")
  95.     turtle.down()
  96.   end
  97. end
  98.  
  99. --Picks up items on ground
  100. local function suck()
  101. updateStatus("Complete... Please move me!")
  102.   turtle.suck()
  103. end
  104.  
  105. --Cuts the tree down, column by column
  106. local function fell()
  107. updateStatus("...Moving to next Column...")
  108.   turtle.dig()
  109.   turtle.forward()
  110.   column()
  111.   turtle.turnRight()
  112.   turtle.dig()
  113.   turtle.forward()
  114.   turtle.turnLeft()
  115.   column()
  116. end
  117.  
  118. --Replants the tee and fills the chest with it's inventory
  119. local function replant()
  120. updateStatus("Replanting...")
  121.   turtle.select(15)
  122.   suck()
  123.   turtle.place()
  124.   turtle.turnLeft()
  125.   suck()
  126.   turtle.forward()
  127.   suck()
  128.   turtle.turnRight()
  129.   suck()
  130.   turtle.place()
  131.   turtle.turnRight()
  132.   suck()
  133.   turtle.place()
  134.   turtle.turnRight()
  135.   suck()
  136.   turtle.forward()
  137.   for slot=2,7 do
  138.     turtle.select(slot)
  139.     turtle.drop()
  140.   end
  141.   turtle.turnLeft()
  142.   turtle.turnLeft()
  143.   turtle.select(15)
  144.   turtle.place()
  145.   turtle.select(1)
  146.   while not turtle.compare() do
  147.     turtle.select(16)
  148.     turtle.place()
  149.     turtle.select(1)
  150.   end
  151. end
  152.  
  153. --Executes until told to stop
  154. while true do
  155.   fell()
  156.   replant()
  157. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement