Advertisement
Ignius12

room_dig

Mar 16th, 2020
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.51 KB | None | 0 0
  1.  
  2. function quarry(width, length, y)
  3. local row = 0
  4. local blocks = 0
  5. local levels = 1
  6. local turned = false
  7. local width = width
  8. local length = length - 1
  9. local y1 = y + 1
  10. local y = y
  11. local x = 0
  12. local z = 0
  13. local xt = 0
  14. local zt = 0
  15.  
  16. while(y > 5) do
  17. turtle.digUp()
  18. turtle.up()
  19. if(levels > 1) then
  20. turtle.turnLeft()
  21. turtle.turnLeft()
  22. end
  23. while(width > z) do
  24. while(length > x) do
  25. turtle.dig()
  26. turtle.forward()
  27. x = x + 1
  28. blocks = blocks + 1
  29. print("Blocks mined: " , blocks)
  30. if(turtle.getFuelLevel() < 10) then
  31. turtle.refuel()
  32. end
  33. if(turtle.getItemCount(16) > 1) then
  34. if((row + 1) % 2 == 0) then
  35. xt = length - x
  36. else
  37. xt = x
  38. end
  39. if(levels % 2 == 0) then
  40. zt = (width - 1)- z
  41. else
  42. zt = z
  43. end
  44. x2 = xt
  45. y2 = y
  46. z2 = zt
  47. print("(", zt,",", xt, ")")
  48. while(y < y1) do
  49. turtle.down()
  50. y = y + 1
  51. end
  52. if(turned == true) then
  53. turtle.turnLeft()
  54. turtle.turnLeft()
  55. end
  56. while(xt > 0) do
  57. turtle.forward()
  58. xt = xt - 1
  59. end
  60. turtle.turnRight()
  61. while(zt > 0) do
  62. turtle.forward()
  63. zt = zt - 1
  64. end
  65. turtle.turnLeft()
  66. for I = 16,2,-1 do
  67. turtle.select(I)
  68. turtle.drop()
  69. end
  70. turtle.turnLeft()
  71. while(z2 > zt) do
  72. turtle.forward()
  73. zt = zt + 1
  74. end
  75. turtle.turnLeft()
  76. while(x2 > xt) do
  77. turtle.forward()
  78. xt = xt + 1
  79. end
  80. while(y2 < y) do
  81. turtle.up()
  82. y = y - 1
  83. end
  84. if(turned == false) then
  85. turtle.turnLeft()
  86. turtle.turnLeft()
  87. end
  88. end
  89. end
  90. x = 0
  91. z = z + 1
  92. row = row + 1
  93. if(row % 2 == 0 and z < width and levels % 2 > 0) then
  94. turtle.turnLeft()
  95. turtle.dig()
  96. turtle.forward()
  97. blocks = blocks + 1
  98. turtle.turnLeft()
  99. turned = true
  100. else if(row % 2 > 0 and z < width and levels % 2 > 0) then
  101. turtle.turnRight()
  102. turtle.dig()
  103. turtle.forward()
  104. blocks = blocks + 1
  105. turtle.turnRight()
  106. turned = false
  107. else if(row % 2 == 0 and z < width and levels % 2 == 0) then
  108. turtle.turnRight()
  109. turtle.dig()
  110. turtle.forward()
  111. blocks = blocks + 1
  112. turtle.turnRight()
  113. turned = true
  114. else if(row % 2 > 0 and z < width and levels % 2 == 0) then
  115. turtle.turnLeft()
  116. turtle.dig()
  117. turtle.forward()
  118. blocks = blocks + 1
  119. turtle.turnLeft()
  120. turned = false
  121. end
  122. end
  123. end
  124. end
  125. end
  126. y = y - 1
  127. z = 0
  128. levels = levels + 1
  129. local heightReport = "I have gone ", y, " levels down out of ", y1, " levels"
  130. rednet.send(3, heightReport)
  131. end
  132. end
  133.  
  134. rednet.open("left")
  135. local sender, width, protocol = rednet.receive("quarry")
  136. local sender2, length, protocol2 = rednet.receive("quarry")
  137. local sender3, height, protocol3 = rednet.receive("quarry")
  138. local sender4, confirm, protocol4 = rednet.receive("quarry")
  139. if(confirm == "Y") then
  140. turtle.refuel()
  141. rednet.send(3, 'Starting...')
  142. quarry(width,length,height)
  143. rednet.send(3, 'Complete!')
  144. else
  145. rednet.send(3, 'Canceled')
  146. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement