Guest User

Untitled

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