Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Kap's Lumberjack Turtle ver 1.0, 01/11/18
- local tArgs = {...}
- local runs = tonumber(tArgs[1])
- local trees = 7
- local treeRows = 4
- local spacing = 1
- local direction = true
- local height = 1
- local maxHeight = 5
- function ChopTree()
- turtle.dig()
- turtle.forward()
- turtle.digDown()
- Plant()
- while turtle.detectUp() do
- if height >= maxHeight then break end
- turtle.digUp()
- turtle.up()
- height = height + 1
- os.sleep(1)
- end
- while not turtle.detectDown() do
- turtle.down()
- height = height - 1
- end
- end
- function Plant()
- turtle.select(2)
- turtle.placeDown()
- end
- function Return()
- direction = true
- turtle.turnLeft()
- for i=1, (treeRows + (spacing * 2)) do
- turtle.forward()
- end
- turtle.turnLeft()
- OffloadWood()
- end
- function OffloadWood()
- turtle.turnLeft()
- turtle.turnLeft()
- for i=3, 16 do
- turtle.select(i)
- turtle.drop()
- end
- Restock()
- end
- function Restock()
- turtle.down()
- turtle.select(2)
- turtle.suck(64 - turtle.getItemCount(2))
- GrabFuel()
- end
- function GrabFuel()
- turtle.select(1)
- turtle.suckDown(64 - turtle.getItemCount(1))
- turtle.up()
- end
- function Refuel()
- if turtle.getFuelLevel(1) < 400 then
- turtle.select(1)
- turtle.refuel(1)
- end
- end
- function FillFurnaces()
- -- pick up wood and update woodTable
- turtle.turnLeft()
- turtle.turnLeft()
- for i=3, 16 do
- turtle.select(i)
- turtle.suck()
- end
- --move up to furnaces
- turtle.digUp()
- turtle.up()
- turtle.digUp()
- turtle.up()
- turtle.dig()
- turtle.forward()
- -- Fill all furnaces
- for i=1, 4 do
- turtle.turnLeft()
- for j=3, 16 do
- turtle.select(j)
- turtle.drop()
- end
- turtle.turnLeft()
- turtle.turnLeft()
- for j=3, 16 do
- turtle.select(j)
- turtle.drop()
- end
- turtle.turnLeft()
- if i ~= 4 then
- turtle.digUp()
- turtle.up()
- end
- end
- -- move back down and drop off leftover wood
- turtle.turnLeft()
- turtle.turnLeft()
- turtle.digDown()
- turtle.down()
- turtle.digDown()
- turtle.down()
- turtle.digDown()
- turtle.down()
- turtle.dig()
- turtle.forward()
- turtle.digDown()
- turtle.down()
- turtle.digDown()
- turtle.down()
- turtle.turnLeft()
- turtle.turnLeft()
- for i=3, 16 do
- turtle.select(i)
- turtle.drop()
- end
- -- now go pick up charcoal
- -- move up to furnaces
- turtle.digUp()
- turtle.up()
- turtle.digUp()
- turtle.up()
- turtle.dig()
- turtle.forward()
- -- fetch from all furnaces
- for i=1, 4 do
- turtle.turnLeft()
- for j=3, 16 do
- turtle.select(j)
- if turtle.suck() then break end
- end
- turtle.turnLeft()
- turtle.turnLeft()
- for j=3, 16 do
- turtle.select(j)
- if turtle.suck() then break end
- end
- turtle.turnLeft()
- if i ~= 4 then
- turtle.digUp()
- turtle.up()
- end
- end
- -- move back down and drop off charcoal
- turtle.turnLeft()
- turtle.turnLeft()
- turtle.digDown()
- turtle.down()
- turtle.digDown()
- turtle.down()
- turtle.digDown()
- turtle.down()
- turtle.dig()
- turtle.forward()
- turtle.digDown()
- turtle.down()
- turtle.digDown()
- turtle.down()
- for i=3, 16 do
- turtle.select(i)
- turtle.dropDown()
- end
- turtle.up()
- end
- function FetchDrops()
- -- todo
- end
- -- movement and execution
- for x=1, runs do
- if x % 1 == 0 then
- FillFurnaces()
- end
- for i=1, treeRows do
- Refuel()
- for j=1, trees do
- if turtle.detect() and not turtle.detectDown() then
- ChopTree()
- turtle.dig()
- turtle.forward()
- else
- turtle.forward()
- Plant()
- turtle.dig()
- turtle.forward()
- end
- end
- if i == treeRows then break end
- if direction then
- turtle.turnLeft()
- turtle.dig()
- turtle.forward()
- turtle.dig()
- turtle.forward()
- turtle.turnLeft()
- direction = false
- else
- turtle.turnRight()
- turtle.dig()
- turtle.forward()
- turtle.dig()
- turtle.forward()
- turtle.turnRight()
- direction = true
- end
- end
- Return()
- if x % 1 == 0 then
- FillFurnaces()
- end
- --if x % 10 == 0 then
- -- FetchDrops()
- --end
- os.sleep(5)
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement