FireDemonite icon

ItemSorter&Requester (turtle)

FireDemonite | PRO | 10/15/18 12:57:05 PM UTC | 0 ⭐ | 209 👁️ | Never ⏰ | []
Lua |

2.54 KB

|

None

|

0 👍

/

0 👎

rednet.open("left")
local computerID = 0
 
if (fs.exists("Config.txt")) then
    local file = fs.open("Config.txt","r")
    file.readLine()
    computerID = file.readLine()
else
    while not (tonumber(computerID ) and tonumber(computerID ) > 0) do
        term.clear()
        term.setCursorPos(1,1)
        term.write("Computer ID: ")
        computerID = read()
        if not (tonumber(computerID )) then
            print("Not a number!")
            sleep(1)
        end
    end
    local file = fs.open("Config.txt","a")
    file.close()
    file = fs.open("Config.txt","w")
 
    file.writeLine("ComputerID: ")
    file.write(computerID)
    file.close()
end
 
function fetchItem(item,amount)
        itemAmount = amount
        
        if (item.location.X > 0) then
            turtle.turnRight()
            X = item.location.X
            Xdir = 0
        else
            turtle.turnLeft()
            X = -item.location.X
            Xdir = 1
        end
 
        if (item.location.Y > 0) then
            Y = item.location.Y
            Ydir = 0
        else
            Y = -item.location.Y
            Ydir = 1
        end
        for i = 1,X do
            while not (turtle.forward()) do sleep(1) end
        end
        for i = 1,Y do
            if (Ydir == 0) then
                while not (turtle.up()) do sleep(1) end
            else
                while not (turtle.down()) do sleep(1) end
            end
        end
        if (Xdir == 0) then
            turtle.turnLeft()
        else
            turtle.turnRight()
        end
        while itemAmount > 0 do        
            if (itemAmount > 64) then
                turtle.suck(64)
                turtle.select(turtle.getSelectedSlot()+1)
                itemAmount = itemAmount - 64
            else
                turtle.suck(itemAmount)
                itemAmount = 0
            end
        end
        if (Xdir == 0) then
            turtle.turnLeft()
        else
            turtle.turnRight()
        end
        for i = 1,Y do
            if (Ydir == 0) then
                while not (turtle.down()) do end
            else
                while not (turtle.up()) do end
            end
        end
        for i = 1,X do
            while not (turtle.forward()) do end
        end
        if (Xdir == 0) then
            turtle.turnLeft()
        else
            turtle.turnRight()
        end
 
        turtle.down()
        turtle.select(16)   
        turtle.dig()
        turtle.forward()
        turtle.select(1)
        for i = 1,15 do
            turtle.select(i)
            turtle.drop()
        end
        turtle.select(16)
        turtle.back()
        turtle.place()
        turtle.select(1)
        turtle.up()
 
        for i = 1,2 do
            turtle.turnLeft()
        end
end
 
print("Turtle ID: "..os.getComputerID())
print("Computer ID: "..computerID)
 
while true do
    id, msg = rednet.receive()
    if (id == tonumber(computerID)) then
        fetchItem(msg[1],msg[2])
    end
end

Comments