Advertisement
Guest User

qrt

a guest
Jul 19th, 2019
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.01 KB | None | 0 0
  1. local args = {...}
  2.  
  3. if #args ~= 3 then
  4. print("Usage: quarry <row length> <number of rows> <current y>")
  5. error()
  6. end
  7.  
  8. rowLength = args[1]
  9. rows = args[2]
  10. startingY = args[3]
  11. curRow = 1
  12.  
  13. y = startingY
  14.  
  15. function full()
  16. fullSlots = 0
  17. for i=2,15 do
  18. if turtle.getItemCount(i) > 0 then
  19. fullSlots = fullSlots + 1
  20. end
  21. end
  22. print(fullSlots .. " slots are full")
  23. return(fullSlots == 14)
  24. end
  25.  
  26. function checkFuel()
  27. if turtle.getFuelLevel() < 10 then
  28. turtle.select(1)
  29. turtle.refuel(1)
  30. end
  31. end
  32.  
  33. function digMove()
  34. checkFuel()
  35. while turtle.detect() do
  36. turtle.dig()
  37. os.sleep(0.5)
  38. end
  39. turtle.forward()
  40. turtle.digUp()
  41. turtle.digDown()
  42. end
  43.  
  44. function turn()
  45. if curRow % 2 == 0 then
  46. turtle.turnRight()
  47. else
  48. turtle.turnLeft()
  49. end
  50. end
  51.  
  52. function dig()
  53. turtle.digDown()
  54. turtle.down()
  55. y = y - 1
  56. end
  57.  
  58. function back()
  59. turtle.turnLeft()
  60. for i=1,rows do
  61. checkFuel()
  62. turtle.forward()
  63. end
  64. turtle.turnLeft()
  65. end
  66.  
  67. function up()
  68. for i=1,(startingY - y) do
  69. checkFuel()
  70. turtle.up()
  71. y = y + 1
  72. end
  73. end
  74.  
  75.  
  76. function down(x)
  77. for i=1,x do
  78. checkFuel()
  79. dig(x)
  80. end
  81. end
  82.  
  83. function chest()
  84. turtle.turnLeft()
  85. turtle.turnLeft()
  86. For i=16,1,-1 do
  87. turtle.select(i)
  88. turtle.drop()
  89. end
  90. if turtle.getItemCount(1) < 3 then
  91. turtle.up()
  92. turtle.select(1)
  93. turtle.suck()
  94. turtle.down()
  95. end
  96. turtle.turnRight()
  97. turtle.turnRight()
  98. end
  99.  
  100. function level()
  101. curRow = 1
  102. for i=1,rows do
  103. for i = 1,rowLength-1 do
  104. digMove()
  105. end
  106. if curRow == tonumber(rows) then
  107.  
  108. else
  109. turn()
  110. digMove()
  111. turn()
  112. curRow = curRow + 1
  113. end
  114. end
  115. back()
  116. tempY = y
  117. if full() then
  118. up()
  119. chest()
  120. down(startingY - tempY + 3)
  121. else
  122. down(3)
  123. end
  124. turtle.digDown()
  125. end
  126.  
  127. function quarry()
  128. down(2)
  129. turtle.digDown()
  130. while y > 5 do
  131. level()
  132. end
  133. up()
  134. end
  135.  
  136. quarry()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement