Archives
Trending
Support
Login
clear text
XML
Django
JavaScript
MATLAB
C
C++
C#
Python
SQL
Shell
Bash
Markdown
YAML
JSON
HTML
CSS
PHP
Java
Ruby
Go
Rust
Swift
Kotlin
Arduino
TypeScript
Perl
Autohotkey
Lua
SQF
R
Scala
Haskell
Groovy
Dart
Clojure
VB.NET
Objective-C
PowerShell
Bash
CoffeeScript
Verilog
-- chunkminer.lua -- Mines a 16x16 chunk, auto-refuels from a chest behind it -- === CONFIG === local LENGTH = 16 local WIDTH = 16 -- === STATE === local x, y, z = 0, 0, 0 -- Position tracking local dir = 0 -- 0=north,1=east,2=south,3=west local layer = 0 -- === HELPERS === local function turnLeft() turtle.turnLeft(); dir = (dir + 3) % 4 end local function turnRight() turtle.turnRight(); dir = (dir + 1) % 4 end local function forward() while not turtle.forward() do turtle.dig() turtle.attack() sleep(0.4) end if dir == 0 then z = z - 1 elseif dir == 1 then x = x + 1 elseif dir == 2 then z = z + 1 elseif dir == 3 then x = x - 1 end end local function up() while not turtle.up() do turtle.digUp() turtle.attackUp() sleep(0.4) end y = y + 1 end local function down() while not turtle.down() do turtle.digDown() turtle.attackDown() sleep(0.4) end y = y - 1 end -- === REFUELING === local function refuel() if turtle.getFuelLevel() == "unlimited" then return end if turtle.getFuelLevel() > 100 then return end print("Refueling...") local turned = false -- Turn around to face the chest turnLeft() turnLeft() turned = true -- Try to suck fuel from chest for slot = 1, 16 do local detail = turtle.getItemDetail(slot) if detail == nil then turtle.suck() detail = turtle.getItemDetail(slot) end if detail and turtle.refuel(1) then while turtle.refuel(1) do end end end if turned then turnLeft() turnLeft() end print("Fuel Level: " .. turtle.getFuelLevel()) end -- === MINING === local function mineLayer() for row = 1, WIDTH do for col = 1, LENGTH - 1 do refuel() turtle.digDown() turtle.dig() forward() end if row < WIDTH then if row % 2 == 1 then turnRight() turtle.dig() forward() turnRight() else turnLeft() turtle.dig() forward() turnLeft() end end end -- Return to start of this layer if WIDTH % 2 == 1 then turnRight() else turnLeft() end for i = 1, WIDTH - 1 do forward() end if WIDTH % 2 == 1 then turnRight() else turnLeft() end for i = 1, LENGTH - 1 do forward() end end -- === MAIN === local function main() print("Starting 16x16 chunk mining...") refuel() -- Go down until solid while not turtle.detectDown() do down() end -- Mine layers upward until ceiling hit or full inventory while true do mineLayer() print("Layer complete. Going up...") up() if turtle.detectUp() then print("Ceiling reached, stopping.") break end end print("Chunk mining complete!") end main()
Mark as private (unlisted)
for 30 minutes
for 6 hours
for 1 day
for 1 week
for 1 month
for 1 year
everlasting (like CCCP)