TheKojent icon

autoHarvest

TheKojent | PRO | 03/30/13 09:07:48 PM UTC | 0 ⭐ | 176 👁️ | Never ⏰ | []
Lua |

2.04 KB

|

None

|

0 👍

/

0 👎

--Program that harvests Redwood trees with a specific chest setup.
 
local tArgs = { ... }
if # tArgs ~= 1 then
    print("Usage: autoHarvest <iterations>")
    return
end
local count = tonumber(tArgs[1])
 
local function harvest()
    turtle.select(3)
    turtle.dig()
    turtle.forward()
    while turtle.detectUp() do
        turtle.dig()
        turtle.digUp()
        turtle.up()
    end
    turtle.dig()
    turtle.turnRight()
    turtle.dig()
    turtle.forward()
    turtle.turnLeft()
    while turtle.detectDown() do
        turtle.dig()
        turtle.digDown()
        turtle.down()
    end
    turtle.up()
    turtle.select(16)
    turtle.placeDown()
end
 
local function invDump()
    for i = 1,13 do
        turtle.select(i+2)
        turtle.drop()
    end
end
 
local function restock()
    if turtle.getItemCount(1) < 4 then --Saplings in slot 1
        turtle.select(1)
        turtle.dropUp()
        turtle.suckUp()
    end
    if turtle.getItemCount(2) < 10 then --Bone meal in slot 2
        turtle.select(2)
        turtle.dropDown()
        turtle.suckDown()
    end
    turtle.turnRight()
    if turtle.getFuelLevel() < 500 then
        turtle.select(15)
        turtle.suck()
        turtle.refuel()
    end
    turtle.turnRight()
end
 
local function forward(dist)
    for i = 1,dist do
        turtle.forward()
    end
end
 
local function replant()
    turtle.select(1)
    turtle.placeDown()
    forward(1)
    turtle.placeDown()
    turtle.turnRight()
    forward(1)
    turtle.placeDown()
    turtle.turnRight()
    forward(1)
    turtle.placeDown()
    forward(1)
    turtle.turnRight()
    forward(1)
    turtle.down()
    turtle.turnRight()
    turtle.select(2)
    while turtle.place() do
        sleep(0.5)
    end
end
 
--Main Loop
 
while true do
    print("Make sure to keep at least 2 dirt in slot 16. Press E to continue.")
    local event, param1 = os.pullEvent("char")
    if param1 == "e" then
        term.clear()
        print("Harvesting " .. count .. "trees.")
        break
    else
        sleep(0.5)
    end
end
for i = 1,count do
    restock()
    forward(5)
    replant()
    harvest()
    turtle.turnLeft()
    forward(1)
    turtle.turnLeft()
    turtle.up()
    forward(5)
    invDump()
    sleep(300)
end
print("Finished harvesting " .. count .. " trees!")

Comments