Updated the file to support modules.lua and check fuel

The app now checks if it has enough fuel and if not, it asks for more.
Additionally it digs everythin in front of it, except for the last block.
This commit is contained in:
sascham 2020-12-20 13:31:55 +00:00
parent 58f282e0bf
commit 591b06aa19

View File

@ -1,10 +1,10 @@
--[[Tree Farming App by Al Sweigart
Plants tree and cuts it down.]]
os.loadAPI('hare.lua') -- Load the hare module
os.loadAPI('modules.lua') -- Load the modules module
local NUM_OF_TREES = 4
local TREE_SAPLING = 'spruce'
local TREE_SAPLING = 'oak'
-- Check if choptree program exists
if not fs.exists('choptree.lua') then
@ -14,11 +14,10 @@ end
while true do
-- First of all, wait a few minutes
os.sleep(300)
-- Check if turtle has enough fuel
if turtle.getFuelLevel() < (2 * (3 * NUM_OF_TREES)) then
hare.selectItem('minecraft:' .. TREE_SAPLING .. 'log')
turtle.refuel(2)
end
-- Sort all Items together
modules.sort_items()
-- Empty everything except for the saplings
for i = 1, 16 do
@ -32,19 +31,25 @@ while true do
-- Check if we have saplings in our inventory
if not hare.selectItem('minecraft:' .. TREE_SAPLING .. '_sapling') then
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
turtle.back()
turtle.back()
turtle.back()
turtle.turnRight()
for j = 1, 3 do
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
hare.selectEmtySlot()
modules.selectEmptySlot()
shell.run('choptree.lua') -- Run Choptree
elseif blockExists and item['name'] ~= 'minecraft:' .. TREE_SAPLING .. '_sapling' then
print('Error! Wrong block')
@ -56,16 +61,22 @@ while true do
turtle.back()
else
turtle.back()
hare.selectItem('minecraft:' .. TREE_SAPLING .. '_sapling')
modules.selectItem('minecraft:' .. TREE_SAPLING .. '_sapling')
turtle.place()
end
end
turtle.turnLeft()
turtle.turnRight()
end
-- Move forward to the chest again
turtle.turnLeft()
turtle.turnLeft()
for i = 1, (3 * NUM_OF_TREES) do
turtle.forward()
check_fuel()
if i ~= 3 * NUM_OF_TREES then
turtle.dig()
end
turtle.foward()
end
end