Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function refuel()
- if turtle.getFuelLevel() < 15 then
- print("Fuel level is ", turtle.getFuelLevel(), "refueling...")
- turtle.select(1)
- turtle.refuel(1)
- end
- end
- function forceForward()
- while not turtle.forward() do
- refuel()
- a, b = turtle.inspect()
- if a then
- if a.name == "minecraft:leaves" then
- turtle.dig()
- end
- end
- end
- end
- function interactTree(right)
- print("Interacting with tree planting spot...")
- a, b = turtle.inspect()
- if a then
- if b.name == "minecraft:sapling" then
- print("Tree is planted but not mature, ignoring")
- elseif b.name == "minecraft:log" then
- mineTree(right)
- plantSaplings(right)
- else
- print("WARNING: Unknown block found: ", b.name)
- turtle.dig()
- plantSaplings(right)
- end
- else
- plantSaplings(right)
- end
- end
- function plantSaplings(right)
- print("Planting saplings...")
- refuel()
- findItem("minecraft:sapling")
- if right then
- forceForward()
- forceForward()
- turtle.turnLeft()
- turtle.place()
- turtle.turnRight()
- turtle.back()
- turtle.place()
- turtle.turnLeft()
- turtle.place()
- turtle.turnRight()
- turtle.back()
- turtle.place()
- else
- forceForward()
- forceForward()
- turtle.turnRight()
- turtle.place()
- turtle.turnLeft()
- turtle.back()
- turtle.place()
- turtle.turnRight()
- turtle.place()
- turtle.turnLeft()
- turtle.back()
- turtle.place()
- end
- end
- function findItem(item)
- for i=1, 16 do
- turtle.select(i)
- if turtle.getItemCount() > 1 then
- local data = turtle.getItemDetail()
- if data.name == item then
- break
- end
- end
- end
- end
- function mineTree(right)
- print("Chopping down tree")
- refuel()
- turtle.dig()
- forceForward()
- local blocksLeft = 0
- while true do
- refuel()
- turtle.dig()
- turtle.digUp()
- if turtle.up() then
- blocksLeft = blocksLeft + 1
- end
- a, b = turtle.inspectUp()
- if a then
- if not b.name == "minecraft:log" then
- break
- end
- else
- break
- end
- end
- turtle.digUp()
- turtle.up()
- turtle.dig()
- print("Got to top of tree, tree height: ", blocksLeft)
- if right then
- turtle.turnLeft()
- turtle.dig()
- forceForward()
- turtle.turnRight()
- else
- turtle.turnRight()
- turtle.dig()
- forceForward()
- turtle.turnLeft()
- end
- while blocksLeft + 1 > 0 do
- refuel()
- while not turtle.down() do
- turtle.digDown()
- end
- turtle.dig()
- blocksLeft = blocksLeft - 1
- end
- if right then
- turtle.turnRight()
- forceForward()
- turtle.turnLeft()
- turtle.back()
- else
- turtle.turnLeft()
- forceForward()
- turtle.turnRight()
- turtle.back()
- end
- end
- function startup()
- print("Getting out of starting position...")
- refuel()
- forceForward()
- forceForward()
- forceForward()
- end
- function harvest()
- -- Go forward one lane
- for i=1, 7 do
- refuel()
- turtle.turnLeft()
- interactTree(false)
- turtle.turnRight()
- turtle.turnRight()
- interactTree(true)
- turtle.turnLeft()
- forceForward()
- forceForward()
- forceForward()
- end
- -- Switch to right next lane
- turtle.turnRight()
- for i=1, 6 do
- refuel()
- forceForward()
- end
- turtle.turnRight()
- forceForward()
- forceForward()
- -- Go forward one lane
- for i=1, 7 do
- refuel()
- turtle.turnLeft()
- interactTree()
- turtle.turnRight()
- turtle.turnRight()
- interactTree()
- turtle.turnLeft()
- forceForward()
- forceForward()
- forceForward()
- end
- -- Switch to left next lane
- turtle.turnLeft()
- for i=1, 6 do
- refuel()
- forceForward()
- end
- turtle.turnLeft()
- forceForward()
- forceForward()
- -- Go forward one lane
- for i=1, 7 do
- refuel()
- turtle.turnLeft()
- interactTree()
- turtle.turnRight()
- turtle.turnRight()
- interactTree()
- turtle.turnLeft()
- forceForward()
- forceForward()
- forceForward()
- end
- -- Switch to right next lane
- turtle.turnRight()
- forceForward()
- forceForward()
- forceForward()
- turtle.turnRight()
- forceForward()
- forceForward()
- -- Go forward one lane
- for i=1, 7 do
- refuel()
- turtle.turnLeft()
- interactTree()
- turtle.turnRight()
- forceForward()
- forceForward()
- forceForward()
- end
- turtle.turnRight()
- for i=1, 15 do
- refuel()
- forceForward()
- end
- turtle.turnLeft()
- forceForward()
- for i=2, 16 do
- turtle.select(i)
- turtle.drop()
- end
- end
- startup()
- harvest()
Add Comment
Please, Sign In to add comment