heresjohnny32 icon

minecraft_cc_tweek_mineing

heresjohnny32 | PRO | 07/16/26 09:27:01 PM UTC | 1 ⭐ | 30530 👁️ | Never ⏰ | []
Lua |

4.12 KB

|

Gaming

|

1 👍

/

0 👎

-- Configuration
local WIDTH = 32
local LENGTH = 32
local DEPTH = 32
 
-- State Tracking
local x, y, z = 0, 0, 0
local facing = 0 -- 0: Forward, 1: Right, 2: Back, 3: Left
local returnX, returnY, returnZ, returnFacing
 
-- UI Functions
local function drawUI(status)
    term.clear()
    term.setCursorPos(1, 1)
    print("=== Advanced Mining Turtle ===")
    print("Status: " .. status)
    print(string.format("Pos   : X:%d Y:%d Z:%d", x, y, z))
    print("Fuel  : " .. turtle.getFuelLevel() .. "/" .. turtle.getFuelLimit())
end
 
-- Movement & Positioning
local function turnRight()
    turtle.turnRight()
    facing = (facing + 1) % 4
end
 
local function turnLeft()
    turtle.turnLeft()
    facing = (facing - 1) % 4
end
 
local function moveForward()
    while turtle.detect() do turtle.dig() end
    if turtle.forward() then
        if facing == 0 then z = z + 1
        elseif facing == 1 then x = x + 1
        elseif facing == 2 then z = z - 1
        elseif facing == 3 then x = x - 1
        end
        return true
    end
    return false
end
 
local function moveUp()
    while turtle.detectUp() do turtle.digUp() end
    if turtle.up() then y = y + 1; return true end
    return false
end
 
local function moveDown()
    while turtle.detectDown() do turtle.digDown() end
    if turtle.down() then y = y - 1; return true end
    return false
end
 
local function turnTo(targetFacing)
    while facing ~= targetFacing do
        turnRight()
    end
end
 
-- Maintenance Checks
local function needsFuel()
    local distanceHome = math.abs(x) + math.abs(y) + math.abs(z) + 5
    return turtle.getFuelLevel() < distanceHome
end
 
local function isFull()
    for i = 1, 16 do
        if turtle.getItemCount(i) == 0 then return false end
    end
    return true
end
 
-- Navigation Home and Back
local function goHome()
    returnX, returnY, returnZ, returnFacing = x, y, z, facing
    drawUI("Returning Home...")
 
    -- Rise to safety height first to avoid walls, then go home
    while y < 0 do moveUp() end
    
    -- Align and move X
    if x > 0 then turnTo(3) while x > 0 do moveForward() end
    elseif x < 0 then turnTo(1) while x < 0 do moveForward() end
    end
 
    -- Align and move Z
    if z > 0 then turnTo(2) while z > 0 do moveForward() end
    elseif z < 0 then turnTo(0) while z < 0 do moveForward() end
    end
 
    -- Drop items behind
    turnTo(2)
    for i = 1, 15 do
        turtle.select(i)
        turtle.drop()
    end
    
    -- Refuel from chest above
    turtle.select(16)
    turtle.suckUp()
    turtle.refuel()
    
    turtle.select(1)
end
 
local function resumePosition()
    drawUI("Returning to Work...")
    -- Move Z
    if returnZ > 0 then turnTo(0) while z < returnZ do moveForward() end
    end
    -- Move X
    if returnX > 0 then turnTo(1) while x < returnX do moveForward() end
    end
    -- Move Down
    while y > returnY do moveDown() end
    turnTo(returnFacing)
end
 
local function checkMaintenance()
    if needsFuel() or isFull() then
        goHome()
        resumePosition()
    end
end
 
-- Core Mining Logic
local function mineLayer()
    for i = 1, LENGTH do
        for j = 1, WIDTH - 1 do
            checkMaintenance()
            moveForward()
        end
        if i < LENGTH then
            if i % 2 == 1 then
                turnRight() moveForward() turnRight()
            else
                turnLeft() moveForward() turnLeft()
            end
        end
    end
end
 
local function main()
    turtle.select(1)
    turtle.refuel() -- Initial fuel check
    
    for layer = 1, DEPTH do
        drawUI("Mining Layer " .. layer)
        mineLayer()
        
        if layer < DEPTH then
            -- Return to start column of the layer before dropping down
            drawUI("Resetting Column...")
            while x > 0 do turnTo(3) moveForward() end
            while z > 0 do turnTo(2) moveForward() end
            turnTo(0)
            moveDown()
        end
    end
    
    drawUI("Job Finished! Going Home.")
    goHome()
    turnTo(0)
    drawUI("Done!")
end
 
main()
 

Comments

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎