--[[Tree Farming App by Al Sweigart Plants tree and cuts it down.]] os.loadAPI('modules.lua') -- Load the modules module local NUM_OF_TREES = 4 local TREE_SAPLING = 'oak' -- Check if choptree program exists if not fs.exists('choptree.lua') then error('You must install choptree app first') end while true do -- First of all, wait a few minutes os.sleep(300) -- Sort all Items together modules.sort_items() -- Empty everything except for the saplings for i = 1, 16 do local item = turtle.getItemDetail(i) if item ~= nil and item['name'] ~= 'minecraft:' .. TREE_SAPLING .. '_sapling' then turtle.select(i) print('Dropping ' .. item['name'] .. ' into chest.') turtle.drop() end end -- Check if we have saplings in our inventory if not modules.select_item('minecraft:' .. TREE_SAPLING .. '_sapling') then error('Out of ' .. TREE_SAPLING .. ' saplings') end -- Build a Loop, where we plant and cut trees turtle.turnLeft() turtle.turnLeft() for i = 1, NUM_OF_TREES do for j = 1, 3 do modules.check_fuel() if i ~= 3 * NUM_OF_TREES then turtle.dig() end turtle.forward() end turtle.turnLeft() blockExists, item = turtle.inspect() if blockExists and item['name'] == 'minecraft:' .. TREE_SAPLING .. '_log' then modules.select_emptySlot() shell.run('choptree.lua') -- Run Choptree elseif blockExists and item['name'] ~= 'minecraft:' .. TREE_SAPLING .. '_sapling' then print('Error! Wrong block. Found ' .. item['name']) elseif not blockExists then turtle.forward() local success, underneath = turtle.inspectDown() if underneath['name'] ~= 'minecraft:dirt' and underneath['name'] ~= 'minecraft:grass_block' then print('Error. No Dirt or Grass underneath to plant a tree. Found: ' .. underneath['name']) turtle.back() else turtle.back() print('Planting seed.') modules.select_item('minecraft:' .. TREE_SAPLING .. '_sapling') turtle.place() end end turtle.turnRight() end -- Move forward to the chest again turtle.turnLeft() turtle.turnLeft() print('Heading back to chest.') for i = 1, (3 * NUM_OF_TREES) do modules.check_fuel() if i ~= 3 * NUM_OF_TREES then turtle.dig() end turtle.forward() end end