local tArgs = { ... } if #tArgs ~= 2 then print( "Usage: layPipe " ) return end -- Mine in a quarry pattern until we hit something we can't dig local length = tonumber( tArgs[2] ) local direction = tostring( tArgs[1] ) if length < 1 then print( "Tunnel length must be positive" ) return end local collected = 0 local function tryPlaceTorch() turtle.select(2) turtle.place() end local function collect() collected = collected + 1 if math.fmod(collected, 25) == 0 then print( "Mined "..collected.." items." ) end end local function tryDig() while turtle.detect() do if turtle.dig() then collect() sleep(0.5) else return false end end return true end local function tryDigUp() while turtle.detectUp() do if turtle.digUp() then collect() sleep(0.5) else return false end end return true end local function refuel() local fuelLevel = turtle.getFuelLevel() if fuelLevel == "unlimited" or fuelLevel > 0 then return end local function tryRefuel() for n=1,16 do if turtle.getItemCount(n) > 0 then turtle.select(n) if turtle.refuel(1) then turtle.select(1) return true end end end turtle.select(1) return false end if not tryRefuel() then print( "Add more fuel to continue." ) while not tryRefuel() do sleep(1) end print( "Resuming Tunnel." ) end end local function tryUp() refuel() while not turtle.up() do if turtle.detectUp() then if not tryDigUp() then return false end elseif turtle.attackUp() then collect() else sleep( 0.5 ) end end return true end local function tryDown() refuel() while not turtle.down() do if turtle.detectDown() then if not tryDigDown() then return false end elseif turtle.attackDown() then collect() else sleep( 0.5 ) end end return true end local function tryForward() refuel() while not turtle.forward() do if turtle.detect() then if not tryDig() then return false end elseif turtle.attack() then collect() else sleep( 0.5 ) end end return true end for n=1,length do if direction=="up" then tryUp() turtle.select(2) turtle.placeDown() end if direction=="down" then tryDown() turtle.select(2) turtle.placeUp() end if direction=="forward" then tryForward() turtle.select(2) turtle.turnRight() turtle.turnRight() turtle.place() turtle.turnRight() turtle.turnRight() end end print( "Tunnel complete." )