-- 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.")