deltreey icon

mine

deltreey | PRO | 11/29/16 12:52:58 AM UTC | 0 ⭐ | 340 👁️ | Never ⏰ | []
Lua |

1.83 KB

|

None

|

0 👍

/

0 👎

os.loadAPI('/fuel')
 
local args = { ... }
if #args < 2 or #args > 3 then
  print( "Usage: quarry <toTheRight> <toTheFront>[ <toTheDown>]" )
  error()
end
 
function checkFuel()
    while (turtle.getFuelLevel() < 100) do
        if (fuel.canRefuel()) then
            fuel.fuelUp()
        else
            return false
        end
    end
    return true
end
 
function fullInventory()
    local full = true
    local current = 1
    while (current < 16) do
        if (turtle.getItemCount(current) == 0) then
            full = false
        end
        current = current + 1
    end
    return full
end
 
function dropEverything()
    local current = 1
    while (current < 16) do
        turtle.dropDown()
        current = current + 1
    end
end
 
function digLength()
    local forward = 0
    while (forward < tonumber(args[2])) do
        if (not checkFuel()) then
            return false
        end
        if (turtle.detect()) then
            turtle.dig()
        end
        turtle.forward()
        forward = forward + 1
        if (fullInventory()) then
            dropEverything()
        end
    end
    return true
end
 
local canRefuel = true
local depth = 0
while (true) do
    if (not digLength()) then
        return
    end
    local right = 0
    while (right < tonumber(args[1])) do
        turtle.turnRight()
        if (turtle.detect()) then
            turtle.dig()
        end
        turtle.forward()
        turtle.turnRight()
        if (not digLength()) then
            return
        end
        turtle.turnLeft()
        if (turtle.detect()) then
            turtle.dig()
        end
        turtle.forward()
        turtle.turnLeft()
        if (not digLength()) then
            return
        end
        right = right + 2
    end
 
    if (#args > 2) then
        if (depth >= tonumber(args[3])) then
            print('Mining Complete')
            return
        end
    end
 
    turtle.turnRight()
    turtle.turnRight()
    if (turtle.detectDown()) then
        if (not turtle.digDown()) then
            print ('Reached the bottom')
            return
        end
    end
    turtle.down()
    depth = depth + 1
 
    print('Dug ' .. depth .. ' layers')
end

Comments