CCCPaste

chunkminer

-- CHUNK MINER (FIXED)
-- Mines a full 16x16 chunk layer-by-layer down to bedrock
-- Returns to starting position when finished

local CHUNK_SIZE = 16

-- REFUEL EVERYTHING
for i = 1, 16 do
    turtle.select(i)
    turtle.refuel()
end
turtle.select(1)

-- ===== MOVEMENT HELPERS =====

local function digUntilClear()
    while turtle.detect() do
        turtle.dig()
        sleep(0.1)
    end
end

local function digDownUntilClear()
    while turtle.detectDown() do
        turtle.digDown()
        sleep(0.1)
    end
end

local function forceForward()
    while not turtle.forward() do
        digUntilClear()
        turtle.attack()
        sleep(0.1)
    end
end

local function forceDown()
    while not turtle.down() do
        digDownUntilClear()
        turtle.attackDown()
        sleep(0.1)
    end
end

-- ===== LAYER MINING =====

local function mineLayer()
    for row = 1, CHUNK_SIZE do
        for col = 1, CHUNK_SIZE - 1 do
            digUntilClear()
            forceForward()
        end

        if row < CHUNK_SIZE then
            if row % 2 == 1 then
                turtle.turnRight()
                digUntilClear()
                forceForward()
                turtle.turnRight()
            else
                turtle.turnLeft()
                digUntilClear()
                forceForward()
                turtle.turnLeft()
            end
        end
    end
end

-- ===== RETURN TO LAYER START =====

local function returnToStart()
    turtle.turnRight()
    for i = 1, CHUNK_SIZE - 1 do forceForward() end
    turtle.turnRight()
    for i = 1, CHUNK_SIZE - 1 do forceForward() end
    turtle.turnRight()
    turtle.turnRight()
end

-- ===== MAIN LOOP =====

local depth = 0

while true do
    mineLayer()
    returnToStart()

    -- Bedrock detection
    local success, data = turtle.inspectDown()
    if success and data.name == "minecraft:bedrock" then
        break
    end

    digDownUntilClear()
    forceDown()
    depth = depth + 1
end

-- ===== RETURN TO SURFACE =====

for i = 1, depth do
    turtle.up()
end

print("Chunk mining complete.")