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
-- Never-Stop 9x9 Quarry with Custom Starting Y -- Mines down to Y=-53 -- Auto-refuels using chest or mined coal -- Auto-empties inventory -- Place chest behind turtle with fuel and storage local quarrySize = 9 local targetY = -53 local fuelSlot = 16 local tossGarbage = true -- ------------------------- -- Ask user for starting Y -- ------------------------- print("Enter starting Y-level (number):") local startY = tonumber(read()) if not startY then error("Invalid Y-level! Must be a number.") end local currentY = startY -- ------------------------- -- Utility Functions -- ------------------------- local function tryRefuel() turtle.select(fuelSlot) if turtle.getFuelLevel() ~= "unlimited" and turtle.getFuelLevel() < 100 then turtle.suck() -- chest behind if turtle.getItemCount(fuelSlot) > 0 then turtle.refuel() return end for s=1,16 do turtle.select(s) local detail = turtle.getItemDetail() if detail then local name = detail.name if name=="minecraft:coal" or name=="minecraft:charcoal" then turtle.refuel() return end end end print("Out of fuel! Waiting for chest or mined coal...") sleep(2) end end local function emptyInventory() for s=1,16 do turtle.select(s) turtle.drop() end end local function checkInventory() local fullSlots = 0 for s=1,16 do if turtle.getItemCount(s) > 0 then if tossGarbage then local detail = turtle.getItemDetail(s) if detail then local name = detail.name if name=="minecraft:cobblestone" or name=="minecraft:stone" or name=="minecraft:dirt" or name=="minecraft:gravel" then turtle.select(s) turtle.drop() end end end if turtle.getItemCount(s) > 0 then fullSlots = fullSlots + 1 end end end if fullSlots >= 16 then emptyInventory() end end -- ------------------------- -- Safe movement -- ------------------------- local function safeForward() while true do if turtle.forward() then return end turtle.dig() sleep(0.1) end end local function safeDown() while true do if turtle.down() then currentY = currentY - 1 return end turtle.digDown() sleep(0.1) end end -- ------------------------- -- Mine one 9x9 layer -- ------------------------- local function mineLayer() local turn = 0 for row=1,quarrySize do for col=1,quarrySize-1 do safeForward() checkInventory() tryRefuel() end if row < quarrySize then if turn == 0 then turtle.turnRight() safeForward() turtle.turnRight() turn = 1 else turtle.turnLeft() safeForward() turtle.turnLeft() turn = 0 end checkInventory() tryRefuel() end end end -- ------------------------- -- Return to chest and empty -- ------------------------- local function returnToChest() turtle.turnLeft() turtle.turnLeft() for i=1,quarrySize-1 do safeForward() end turtle.turnLeft() turtle.turnLeft() emptyInventory() end -- ------------------------- -- Main Loop -- ------------------------- while currentY > targetY do print("Mining layer at Y="..currentY) mineLayer() if currentY > targetY then for i=1,quarrySize-1 do safeDown() end turtle.turnLeft() turtle.turnLeft() -- face starting row end end returnToChest() print("Quarry complete! Mined down to Y="..targetY)
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)