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
-- quarry_basic.lua -- Simple 9x9 quarry (no GPS). Chest must be directly behind the starting tile. -- Mines exact 9x9 coverage, drops trash down, deposits valuables behind, refuels from coal. -- Mines down to Y = -53. local TARGET_Y = -53 -- Simple lists local trash = { ["minecraft:cobblestone"] = true, ["minecraft:dirt"] = true, ["minecraft:gravel"] = true, ["minecraft:sand"] = true, ["minecraft:netherrack"] = true, } local valuables = { ["minecraft:diamond"] = true, ["minecraft:iron_ore"] = true, ["minecraft:gold_ore"] = true, ["minecraft:coal"] = true, ["minecraft:redstone"] = true, ["minecraft:lapis_lazuli"] = true, ["minecraft:emerald"] = true, -- ATM10 ores (add any missing ones you want) ["alltheores:allthemodium_ore"] = true, ["alltheores:vibranium_ore"] = true, ["alltheores:unobtainium_ore"] = true, ["alltheores:aluminum_ore"] = true, ["alltheores:antimony_ore"] = true, ["alltheores:arcane_crystal_ore"] = true, ["alltheores:black_quartz_ore"] = true, ["alltheores:copper_ore"] = true, ["alltheores:lead_ore"] = true, ["alltheores:nickel_ore"] = true, ["alltheores:osmium_ore"] = true, ["alltheores:platinum_ore"] = true, ["alltheores:peridot_ore"] = true, ["alltheores:prosperity_ore"] = true, ["alltheores:runic_ore"] = true, ["alltheores:ruby_ore"] = true, ["alltheores:sapphire_ore"] = true, ["alltheores:silver_ore"] = true, ["alltheores:tin_ore"] = true, ["alltheores:tungsten_ore"] = true, ["alltheores:uranium_ore"] = true, ["alltheores:uraninite_ore"] = true, ["alltheores:zinc_ore"] = true, ["alltheores:xychorium_blue_ore"] = true, ["alltheores:xychorium_dark_ore"] = true, ["alltheores:xychorium_green_ore"] = true, ["alltheores:xychorium_light_ore"] = true, ["alltheores:xychorium_red_ore"] = true, } -- Utilities local function forward() while not turtle.forward() do turtle.dig() sleep(0.1) end end local function down() while not turtle.down() do turtle.digDown() sleep(0.1) end end local function up() while not turtle.up() do turtle.digUp() sleep(0.1) end end local function countFree() local n = 0 for s=1,16 do if turtle.getItemCount(s) == 0 then n = n + 1 end end return n end local function findCoal() for s=1,16 do local d = turtle.getItemDetail(s) if d and (d.name == "minecraft:coal" or d.name == "minecraft:charcoal") then return s end end return nil end local function refuelIfNeeded() local lvl = turtle.getFuelLevel() if lvl == "unlimited" then return true end if type(lvl) == "number" and lvl > 20 then return true end local s = findCoal() if s then turtle.select(s) turtle.refuel(1) return true end return false end local function isTrashSlot(s) local d = turtle.getItemDetail(s) if not d then return false end return trash[d.name] == true end local function isValuableSlot(s) local d = turtle.getItemDetail(s) if not d then return false end return valuables[d.name] == true end local function dropTrashDown() for s=1,16 do if isTrashSlot(s) then turtle.select(s) turtle.dropDown() end end end local function depositValuablesBehind() -- face chest behind (turn 180), drop valuables, return facing original direction turtle.turnLeft(); turtle.turnLeft() for s=1,16 do if isValuableSlot(s) then turtle.select(s) turtle.drop() end end turtle.turnLeft(); turtle.turnLeft() end local function chestBehindPresent() turtle.turnLeft(); turtle.turnLeft() local ok, data = turtle.inspect() turtle.turnLeft(); turtle.turnLeft() if ok and data and (string.find(data.name or "", "chest") or string.find(data.name or "", "barrel")) then return true end return false end -- 9x9 miner (bottom-left corner start, facing INTO grid) local function mine9x9() local turnRight = true for row = 1, 9 do for col = 1, 9 do -- fuel and dig only the required faces refuelIfNeeded() pcall(turtle.digUp) turtle.dig() -- clear the block in front (this is the cell) pcall(turtle.digDown) if col < 9 then forward() pcall(turtle.digDown) end -- if inventory low, drop trash now if countFree() <= 2 then dropTrashDown() if countFree() == 0 then if chestBehindPresent() then depositValuablesBehind() end end end end if row < 9 then if turnRight then turtle.turnRight() turtle.dig() forward() turtle.turnRight() else turtle.turnLeft() turtle.dig() forward() turtle.turnLeft() end turnRight = not turnRight end end -- return to starting corner and facing turtle.turnLeft(); turtle.turnLeft() for i=1,8 do forward() end turtle.turnRight() for i=1,8 do forward() end turtle.turnRight() end -- MAIN print("Enter starting absolute Y (example: 64):") local currentY = tonumber(read()) if not currentY then error("Invalid starting Y.") end if currentY <= TARGET_Y then error("Starting Y must be above "..TARGET_Y) end if not chestBehindPresent() then print("Warning: chest not detected behind start. Place a chest directly behind turtle.") end while currentY > TARGET_Y do mine9x9() dropTrashDown() if countFree() == 0 then if chestBehindPresent() then depositValuablesBehind() else error("Inventory full and no chest behind. Manual intervention required.") end end down() currentY = currentY - 1 end -- final deposit if chestBehindPresent() then depositValuablesBehind() end print("Quarry finished at Y = "..currentY)
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)