---@diagnostic disable: param-type-mismatch -- imports local ul = require("unload") local dR = require("doRefuel") local tF = require("tryForwards") local tD = require("tryDown") local tu = require("turn") local gT = require("goTo") -- init global var depth = 0 unloaded = 0 collected = 0 xPos, zPos = 0, 0 xDir, zDir = 0, 1 -- init local var local size local alternate = 0 local done = false local reseal = false -- slot 1 needs to be a placeable block if resealing is desired -- -- -- -- -- -- execute -- -- -- -- -- -- -- Mine in a quarry pattern until we hit something we can't dig print("Please enter the diameter of the bore. Positive natural numbers only:") size = tonumber(io.read()) if size < 1 then print("Excavate diameter must be positive") return end if not dR.doRefuel() then print("Out of Fuel") return end print("Excavating...") turtle.select(1) if turtle.digDown() then reseal = true end while not done do for n = 1, size do for m = 1, size - 1 do if not tF.tryForwards() then done = true break end end if done then break end if n < size then if math.fmod(n + alternate, 2) == 0 then tu.turnLeft() if not tF.tryForwards() then done = true break end tu.turnLeft() else tu.turnRight() if not tF.tryForwards() then done = true break end tu.turnRight() end end end if done then break end if size > 1 then if math.fmod(size, 2) == 0 then tu.turnRight() else if alternate == 0 then tu.turnLeft() else tu.turnRight() end alternate = 1 - alternate end end if not tD.tryDown() then done = true break end end print("Returning to surface...") -- Return to where we started gT.goTo(0, 0, 0, 0, -1) ul.unload(false) gT.goTo(0, 0, 0, 0, 1) -- Seal the hole if reseal then turtle.placeDown() end print("Mined " .. (collected + unloaded) .. " items total.") shell.setDir("/")