rednet.open("left")
local mainID = 15
local touchID = 16
local charcoal = false
local function turnAround()
turtle.turnLeft()
turtle.turnLeft()
end
local function goUp(count)
for k = 1,count do
turtle.up()
end
end
local function goDown(count)
for k = 1,count do
turtle.down()
end
end
while true do --Main Loop
while turtle.getItemCount() == 0 do --Get items
if not turtle.suck() then
goDown(2)
turtle.suckDown()
goUp(2)
end
if turtle.getItemCount() == 0 then
rednet.send(mainID, "home")
sleep(.5)
rednet.send(mainID, "2")
sleep(60)
rednet.send(mainID, "1")
sleep(60)
end
end
rednet.send(mainID, "0")
sleep(.5)
rednet.send(mainID, "away")
if turtle.getItemCount() ~= 0 then
local data = turtle.getItemDetail()
if data.name == "minecraft:log" then --Sort logs
--[[
rednet.send(touchID, "charcoal")
while true do
id, message = rednet.receive()
if id == touchID then
charcoal = message
break
end
end
]]
if charcoal then
turtle.turnLeft()
if not turtle.drop() then
goUp(4)
turtle.turnLeft()
turtle.drop()
turtle.turnRight()
goDown(4)
end
turtle.turnRight()
else
goUp(4)
turnAround()
turtle.drop()
turnAround()
goDown(4)
end
elseif data.name == "minecraft:sapling" then --Sort saplings
goUp(1)
if not turtle.drop() then
goUp(3)
turnAround()
turtle.drop()
turnAround()
goDown(3)
end
goDown(1)
elseif data.name == "minecraft:apple" then --Sort apples
turnAround()
goUp(1)
turtle.drop()
goDown(1)
turnAround()
elseif data.name == "minecraft:coal" then --Sort Charcoal and refuel (if needed)
if turtle.getFuelLevel() < (turtle.getFuelLimit() - 5120) then
turtle.refuel()
else
goDown(2)
turtle.turnLeft()
if not turtle.drop() then
goUp(6)
turnRight()
if not turtle.drop() then
turnAround()
turtle.drop()
turnAround()
end
goDown(4)
else
goUp(2)
turtle.turnRight()
end
end
else --Sort everything else
goDown(1)
turtle.turnRight()
turtle.drop()
turtle.turnLeft()
goUp(1)
end
end
end
rednet.close("left")
Comments