local max_depth = 64 local max_width = 64 local fuel_estimate = max_depth * 2 + 2 * max_width function forward(dig) while not turtle.forward() do if dig then block, data = turtle.inspect() if block and data.name ~= "computercraft:turtle_normal" then turtle.dig() end else print("Waiting in queue......") end end end function up(dig) while not turtle.up() do if dig then turtle.digUp() else print("Waiting in queue......") end end end function down(dig) while not turtle.down() do if dig then turtle.digDown() else print("Waiting in queue......") end end end print("Waiting for fuel...") while true do turtle.suckDown(1) turtle.refuel(1) if turtle.getFuelLevel()>= fuel_estimate then print("We have enough fuel to go mining!") break end end local width = 0 for i=1, max_width / 2 do forward(true) width = width + 1 print("Looking for free mining spot at width=" .. width) if turtle.detectDown() then print("Free spot at width=" .. width .. "!") break end end turtle.digDown() up() local highspot = width % 2 == 1 if highspot then print("Going up to high mining spot") for i=1, 3 do up(true) end end turtle.turnLeft() for depth=1, max_depth do forward(true) turtle.digUp() turtle.digDown() print("Mining out, depth=" .. depth) end print("Gone far enough out, mining back") if highspot then turtle.turnLeft() forward(true) width = width - 1 turtle.turnLeft() else turtle.turnRight() forward(true) width = width + 1 turtle.turnRight() end for i=1, max_depth do turtle.digUp() turtle.digDown() forward(true) print("Mining back, depth=" .. (max_depth - i)) end turtle.digUp() turtle.digDown() print("Mining done, returning to station") turtle.turnRight() if highspot then print("Going down from high mining spot") for i=1, 3 do down() end end for i=1, width do forward() end for i=1, 16 do turtle.select(i) turtle.dropUp() end turtle.select(1) turtle.turnRight() turtle.turnRight() down() os.reboot()