Advertisement
Guest User

Untitled

a guest
Oct 6th, 2015
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. local tArgs = { ... }
  2. if #tArgs ~= 2 then
  3.     print( "Usage: tunnel <length> <number>" )
  4.     return
  5. end
  6.  
  7. local length = tonumber( tArgs[1] )
  8. local num = tonumber( tArgs[2] )
  9.  
  10. if length < 1 then
  11.     print( "Tunnel length must be positive" )
  12.     return
  13. end
  14.  
  15. if num < 1 then
  16.     print( "Tunnel number must be positive" )
  17.     return
  18. end
  19.  
  20. local function refuel()
  21.     local fuelLevel = turtle.getFuelLevel()
  22.     if fuelLevel == "unlimited" or fuelLevel > 0 then
  23.             return
  24.     end
  25.        
  26.     local function tryRefuel()
  27.         for n=1,16 do
  28.             if turtle.getItemCount(n) > 0 then
  29.                 turtle.select(n)
  30.                 if turtle.refuel(1) then
  31.                     return true
  32.                 end
  33.             end
  34.         end
  35.         return false
  36.     end
  37.    
  38.     if not tryRefuel() then
  39.         print( "Add more fuel to continue." )
  40.         while not tryRefuel() do
  41.             os.pullEvent( "turtle_inventory" )
  42.         end
  43.         print( "Resuming Tunnel." )
  44.     end
  45. end
  46.  
  47. local function digForward()
  48.     while turtle.detect() do
  49.         turtle.dig()
  50.     end
  51. end
  52.  
  53. local function digUp()
  54.     while turtle.detectUp() do
  55.         turtle.digUp()
  56.     end
  57. end
  58.  
  59. local function digDown()
  60.     while turtle.detectDown() do
  61.             turtle.digDown()
  62.     end
  63. end
  64.  
  65. local function forward()
  66.     refuel()
  67.     while not turtle.forward() do
  68.         digForward()
  69.         turtle.attack()
  70.         sleep( 0.1 )
  71.     end
  72. end
  73.  
  74. local function up()
  75.     refuel()
  76.     while not turtle.up() do
  77.         digUp()
  78.         turtle.attackUp()
  79.         sleep( 0.1 )
  80.     end
  81. end
  82.  
  83. local function down()
  84.     refuel()
  85.     while not turtle.down() do
  86.         digDown()
  87.         turtle.attackDown()
  88.         sleep( 0.1 )
  89.     end
  90. end
  91.  
  92. local function move()
  93.     turtle.select(1)
  94.     turtle.placeDown() 
  95.     forward()
  96.     up()
  97.     down()
  98. end
  99.  
  100. print( "Tunnelling..." )
  101.  
  102. for r=1,num do
  103.     for n=1,length do
  104.         turtle.select(1)
  105.         turtle.placeDown() 
  106.  
  107.         forward()
  108.        
  109.         if math.fmod(n, 10) == 0 then
  110.             turtle.turnLeft()
  111.             turtle.turnLeft()
  112.  
  113.             turtle.select(2)
  114.             turtle.place()
  115.  
  116.             turtle.turnLeft()
  117.             turtle.turnLeft()
  118.         end
  119.        
  120.         up()
  121.        
  122.         if math.fmod(n, 3) == 0 then
  123.             turtle.turnLeft()
  124.            
  125.             forward()
  126.             forward()
  127.             forward()
  128.             forward()
  129.            
  130.             turtle.turnLeft()
  131.             turtle.turnLeft()
  132.            
  133.             forward()
  134.             forward()
  135.             forward()
  136.             forward()
  137.            
  138.             forward()
  139.             forward()
  140.             forward()
  141.             forward()
  142.            
  143.             turtle.turnLeft()
  144.             turtle.turnLeft()
  145.            
  146.             forward()
  147.             forward()
  148.             forward()
  149.             forward()
  150.            
  151.             turtle.turnRight()
  152.         end
  153.        
  154.         down()
  155.     end
  156.  
  157.     if math.fmod(r, 2) == 0 then
  158.         turtle.turnLeft()
  159.     else
  160.         turtle.turnRight()
  161.     end
  162.  
  163.     move()
  164.     move()
  165.     move()
  166.     move()
  167.     move()
  168.     move()
  169.     move()
  170.     move()
  171.     move()
  172.     move()
  173.     move()
  174.  
  175.     if math.fmod(r, 2) == 0 then
  176.         turtle.turnLeft()
  177.     else
  178.         turtle.turnRight()
  179.     end
  180. end
  181.  
  182. print( "Tunnel complete." )
  183. print( "Mined "..collected.." items total." )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement