deltreey icon

treefarm/spruce

deltreey | PRO | 11/29/16 01:13:15 AM UTC | 0 ⭐ | 339 👁️ | Never ⏰ | []
Lua |

1.85 KB

|

None

|

0 👍

/

0 👎

os.loadAPI('/fuel')
 
function refreshInventory()
    turtle.down()
    turtle.down()
    local current = 3
    while (current < 16) do
        turtle.select(current)
        turtle.dropDown()
        current = current + 1
    end
    turtle.select(1)
    turtle.suckDown(4)  --Get new sapling
    turtle.up()
    turtle.up()
end
 
function isTree()
    turtle.select(2)
    return turtle.compare()
end
 
function chopTree()
    local dist = 0
    --get in the tree to make sure we do this efficiently
    turtle.dig()
    turtle.forward()
    --clear most of the tree
    while (turtle.detect() and dist < 60) do
        turtle.dig()
        turtle.turnRight()
        turtle.dig()
        if (turtle.detectUp()) then
            turtle.digUp()
        end
        turtle.up()
        turtle.turnLeft()
        dist = dist + 1
    end
    --position for the last column on the way down
    turtle.turnRight()
    turtle.forward()
    turtle.turnLeft()
    --clear the last column as we go down the tree
    while (dist > 0) do
        dist = dist - 1
        turtle.dig()
        turtle.down()
    end
    turtle.dig()
    --reset turtle to initial position
    turtle.turnLeft()
    turtle.turnLeft()
    turtle.forward()
    turtle.turnRight()
    turtle.forward()
    turtle.turnRight()
end
 
function plantTree()
    turtle.forward()
    turtle.forward()
    turtle.turnRight()
    turtle.place()  --back right
    turtle.turnRight()
    turtle.forward()
    turtle.turnLeft()
    turtle.place()  --front right
    turtle.turnLeft()
    turtle.place()  --back left
    turtle.turnLeft()
    turtle.turnLeft()
    turtle.forward()
    turtle.turnRight()
    turtle.turnRight()
    turtle.place()  --front left
end
 
local canRefuel = true
while (true) do
    while (turtle.getFuelLevel() < 400) then
        if (fuel.canRefuel()) then
            fuel.fuelUp()
        else
            print('Cannot refuel')
            canRefuel = false
            break
        end
    end
    if (not canRefuel) then
        break
    end
    if (isTree()) then
        chopTree()
        refreshInventory()
        plantTree()
    end
    sleep(30)
end

Comments