CCCPaste

mcdigger

-- Quarry Script for CC: Tweaked Turtle

-- Get user input
print("Enter length (forward):")
local length = tonumber(read())

print("Enter width (right):")
local width = tonumber(read())

print("Enter height (up):")
local height = tonumber(read())

-- Basic dig + move forward
function forward()
    while turtle.detect() do
        turtle.dig()
        sleep(0.2)
    end
    turtle.forward()
end

-- Dig up if needed
function digUp()
    while turtle.detectUp() do
        turtle.digUp()
        sleep(0.2)
    end
end

-- Dig down if needed
function digDown()
    while turtle.detectDown() do
        turtle.digDown()
        sleep(0.2)
    end
end

-- Turn helpers
function turnRight()
    turtle.turnRight()
end

function turnLeft()
    turtle.turnLeft()
end

-- Mine one layer (2D area)
function mineLayer()
    for w = 1, width do
        for l = 1, length - 1 do
            digUp()
            digDown()
            forward()
        end

        -- Move to next row
        if w < width then
            if w % 2 == 1 then
                turnRight()
                digUp()
                digDown()
                forward()
                turnRight()
            else
                turnLeft()
                digUp()
                digDown()
                forward()
                turnLeft()
            end
        end
    end

    -- Return to starting side of layer
    if width % 2 == 1 then
        turnRight()
        for i = 1, width - 1 do
            forward()
        end
        turnRight()
    else
        turnLeft()
        for i = 1, width - 1 do
            forward()
        end
        turnLeft()
    end

    -- Go back to starting corner of the layer
    turnLeft()
    for i = 1, length - 1 do
        forward()
    end
    turnLeft()
end

-- Main loop (height layers)
for h = 1, height do
    mineLayer()

    if h < height then
        digUp()
        turtle.up()
    end
end

print("Mining complete!")