Advertisement
Vorakh

Computercraft Turtle Tunnel 3x3

Aug 30th, 2015 (edited)
136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.61 KB | None | 0 0
  1. local tArgs = { ... }
  2. if #tArgs ~= 1 then
  3.     print( "Usage: tunnel <length>" )
  4.     return
  5. end
  6.  
  7. -- Mine in a quarry pattern until we hit something we can't dig
  8. local length = tonumber( tArgs[1] )
  9. if length < 1 then
  10.     print( "Tunnel length must be positive" )
  11.     return
  12. end
  13.    
  14. local depth = 0
  15. local collected = 0
  16.  
  17. local function collect()
  18.     collected = collected + 1
  19.     if math.fmod(collected, 25) == 0 then
  20.         print( "Mined "..collected.." blocks." )
  21.     end
  22. end
  23.  
  24. local function tryDig()
  25.     while turtle.dig() do
  26.         collect()
  27.         sleep(0.5)
  28.         if not turtle.detect() then
  29.             return true
  30.         end
  31.     end
  32.     return not turtle.detect()
  33. end
  34.  
  35. local function tryDigUp()
  36.     while turtle.digUp() do
  37.         collect()
  38.         sleep(0.5)
  39.         if not turtle.detectUp() then
  40.             return true
  41.         end
  42.     end
  43.     return not turtle.detectUp()
  44. end
  45.  
  46. print( "Tunnelling..." )
  47.  
  48. for n=1,length do
  49.     turtle.placeDown()
  50.     tryDigUp()
  51.     turtle.turnLeft()
  52.     tryDig()
  53.     turtle.up()
  54.     tryDig()
  55.     tryDigUp()
  56.     turtle.up()
  57.     tryDig()
  58.     turtle.turnRight()
  59.     turtle.turnRight()
  60.     tryDig()
  61.     turtle.down()
  62.     tryDig()
  63.     turtle.down()
  64.     tryDig()
  65.     turtle.turnLeft()
  66.    
  67.     if n<length then
  68.         tryDig()
  69.         if not turtle.forward() then
  70.             print( "Aborting Tunnel." )
  71.             break
  72.         end
  73.     else
  74.         print( "Tunnel complete." )
  75.     end
  76.  
  77. end
  78.  
  79. --[[ ]]
  80. print( "Returning to start..." )
  81.  
  82. -- Return to where we started
  83. depth = length
  84.  
  85. turtle.turnLeft()
  86. turtle.turnLeft()
  87. while depth > 0 do
  88.     if turtle.forward() then
  89.         depth = depth - 1
  90.     else
  91.         turtle.dig()
  92.     end
  93. end
  94. turtle.turnRight()
  95. turtle.turnRight()
  96.  
  97.  
  98. print( "Tunnel complete." )
  99. print( "Mined "..collected.." blocks total." )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement