Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- pastebin get L28U4CAd Treefeller
- -- === Basic Movement ===
- local function moveForward()
- if turtle.forward() then
- --turtlePos = add(turtlePos, direction)
- return true
- end
- return false
- end
- local function moveUp()
- if turtle.up() then
- --turtlePos.y = turtlePos.y + 1
- return true
- end
- return false
- end
- local function moveDown()
- if turtle.down() then
- --turtlePos.y = turtlePos.y - 1
- return true
- end
- return false
- end
- local function forceMoveForward()
- while not moveForward() do turtle.dig() end
- end
- local function forceMoveUp()
- while not moveUp() do turtle.digUp() end
- end
- local function forceMoveDown()
- while not moveDown() do turtle.digDown() end
- end
- local function isLog(item)
- if not item or not item.name then return false end
- local saplingSuffix = "_log"
- return item.name:match(":.*" .. saplingSuffix .. "$") ~= nil
- end
- local function fellTree()
- local success, item = turtle.inspect()
- if success and isLog(item) then
- forceMoveForward()
- local cnt = 0
- while true do
- local suc, itemUp = turtle.inspectUp()
- if not isLog(itemUp) then
- break
- end
- forceMoveUp()
- cnt = cnt + 1
- end
- while cnt > 0 do
- forceMoveDown()
- cnt = cnt - 1
- end
- if not fellTree() then
- turtle.turnRight()
- fellTree()
- end
- return true
- end
- return false
- end
- fellTree()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement