local args = { ... }
if #args ~= 0 then
local levels = 5
if type(args[1]) == "number" then
levels = args[1]
print("arg set")
end
end
local function selectItem(itemname)
local function isItem()
local details = turtle.getItemDetail()
if details ~= nil then
if details.name == itemname then
return true
end
end
return false
end
if isItem() then return true end
for i = 1, 16, 1 do
turtle.select(i)
if isItem() then return true end
end
return false
end
---@enum Directions
local Directions = {
forward = 0,
up = 2,
down = 4,
}
---@param direction Directions
local function placeBlock(direction)
selectItem("minecraft:cobblestone")
if direction == Directions.forward then
if not turtle.inspect() then
turtle.place()
end
end
if direction == Directions.down then
if not turtle.inspectDown() then
turtle.placeDown()
end
end
if direction == Directions.up then
if not turtle.inspectUp() then
turtle.placeUp()
end
end
end
local function surroundingsSafe()
if turtle.inspectDown() or turtle.inspectUp() then
return false
end
return true
end
---comment
---@return boolean
local function digLevel()
turtle.dig()
turtle.forward()
turtle.digDown()
turtle.down()
placeBlock(Directions.down)
turtle.up()
turtle.digUp()
turtle.up()
turtle.digUp()
turtle.up()
turtle.digUp()
turtle.up()
placeBlock(Directions.up)
turtle.down()
turtle.down()
turtle.down()
if not surroundingsSafe() then
return false
end
turtle.down()
return true
end
local safe = true
while safe do
safe = digLevel()
levels = levels - 1
if levels <= 0 then
return true
end
end