FireDemonite icon

BotaniaFlower

FireDemonite | PRO | 05/07/23 09:25:20 AM UTC (Edited) | 0 ⭐ | 244 👁️ | Never ⏰ | []
Lua |

3.56 KB

|

None

|

0 👍

/

0 👎

function WriteFile()
    file = fs.open("Pos","w")
    file.writeLine(CurX)
    file.writeLine(CurZ)
    file.writeLine(CurD)
    file.close()
end
 
function forward()
    if CurD == 0 then
        CurX = CurX + 1
    elseif CurD == 1 then
        CurZ = CurZ + 1
    elseif CurD == 2 then
        CurX = CurX - 1
    elseif CurD == 3 then
        CurZ = CurZ - 1
    end
    turtle.forward()
    WriteFile()
end
 
function back()
    if CurD == 0 then
        CurX = CurX - 1
    elseif CurD == 1 then
        CurZ = CurZ - 1
    elseif CurD == 2 then
        CurX = CurX + 1
    elseif CurD == 3 then
        CurZ = CurZ + 1
    end
    turtle.back()
    WriteFile()
end
 
function turnLeft()
    CurD = CurD - 1
    if CurD < 0 then CurD = 3 end
    turtle.turnLeft()
    WriteFile()
end
 
function turnRight()
    CurD = CurD + 1
    if CurD > 3 then CurD = 0 end
    turtle.turnRight()
    WriteFile()
end
 
function placeAndRemove()
    turtle.select(15)
    _,block = turtle.inspectDown()
    if block.name == "botania:livingrock" or block.name == "botania:livingwood" then
        turtle.digDown()
    end
    if turtle.getItemCount(1) > 0 then    
        turtle.select(1)
        turtle.placeDown()
    else
        turtle.select(2)
        turtle.placeDown()
    end
end
 
 
CurX = 0
CurZ = 0
CurD = 0
 
if fs.exists("Pos") then
    file = fs.open("Pos","r")
    CurX = tonumber(file.readLine())
    CurZ = tonumber(file.readLine())
    CurD = tonumber(file.readLine())
    file.close()
else
    file = fs.open("Pos","w")
    file.writeLine(0)
    file.writeLine(0)
    file.writeLine(0)
    file.close()
end
 
while CurD ~= 0 do turnRight() end
 
while CurX ~= 0 do
    if CurX > 0 then 
        back()
    elseif CurX < 0 then 
        forward() 
    end
end
 
turnRight()
 
while CurZ ~= 0 do
    if CurZ > 0 then 
        back()
    elseif CurZ < 0 then 
        forward() 
    end
end
 
turnLeft()
 
turnRight()
forward()
for i = 15,16 do
    if turtle.getItemCount(i) > 0 then
        turtle.select(i)
        turtle.dropDown()
    end
end
back()
turnLeft()
for i = 1,14 do
    if turtle.getItemCount(i) > 0 then
        turtle.select(i)
        turtle.dropDown()
    end
end
 
 
while true do
    while turtle.getFuelLevel() < 15 do
        term.clear()
        term.setCursorPos(1,1)
        textutils.slowWrite("Please input more Fuel...")
        sleep(5)
        turtle.refuel()
    end
    term.clear()
    turtle.select(1)
    while not turtle.suckDown(8) do
        term.clear()
        term.setCursorPos(1,1)
        textutils.slowWrite("Not enough items to Place...")
        sleep(5)
    end
    term.clear()
    while (turtle.getItemCount(1) + turtle.getItemCount(2) < 8) do
        term.clear()
        term.setCursorPos(1,1)
        textutils.slowWrite("Not enough items to Place...")
        turtle.suckDown(8 - turtle.getItemCount(1))
        sleep(5)
    end
    forward()
    _,block = turtle.inspectDown()
    if block.name ~= "botania:livingrock" and block.name ~= "botania:livingwood" then
        back()
    else
        for p = 1,4 do
            for i = 1,2 do
                placeAndRemove()
                forward()
            end
            turnRight()
            placeAndRemove()
        end
        back()
    end
    turnRight()
    forward()
    for i = 1,16 do
        if turtle.getItemCount(i) > 0 then
            turtle.select(i)
            turtle.dropDown()
        end
    end
    back()
    turnLeft()
    sleep(60)
end
 
 
 

Comments