Advertisement
Guest User

Untitled

a guest
Jul 28th, 2016
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.75 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. turtle.turnLeft()
  52. tryDig()
  53. turtle.turnRight()
  54. turtle.turnRight()
  55. tryDig()
  56. turtle.turnLeft()
  57. turtle.digUp()
  58. turtle.up()
  59. turtle.turnLeft()
  60. tryDig()
  61. turtle.turnRight()
  62. turtle.turnRight()
  63. tryDig()
  64. turtle.turnLeft()
  65. turtle.digUp()
  66. turtle.up()
  67. turtle.turnLeft()
  68. tryDig()
  69. turtle.turnRight()
  70. turtle.turnRight()
  71. tryDig()
  72. turtle.turnLeft()
  73. turtle.down()
  74. turtle.down()
  75.  
  76. if n<length then
  77. tryDig()
  78. if not turtle.forward() then
  79. print( "Aborting Tunnel." )
  80. break
  81. end
  82. else
  83. print( "Tunnel complete." )
  84. end
  85.  
  86. end
  87.  
  88.  
  89. print( "Returning to start..." )
  90.  
  91. -- Return to where we started
  92. turtle.turnLeft()
  93. turtle.turnLeft()
  94. while depth > 0 do
  95. if turtle.forward() then
  96. depth = depth - 1
  97. else
  98. turtle.dig()
  99. end
  100. end
  101. turtle.turnRight()
  102. turtle.turnRight()
  103.  
  104. print( "Tunnel complete." )
  105. print( "Mined "..collected.." blocks total." )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement