Advertisement
DogePastes

QuarryV2

Apr 23rd, 2022 (edited)
1,199
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.65 KB | None | 0 0
  1. -- partnerID = 0
  2. justPlaced = false
  3. layersDown = 0
  4. extraLayers = 0
  5.  
  6. turtle.select(2)
  7. turtle.refuel()
  8. turtle.select(1)
  9.  
  10. function mine()
  11.     turtle.dig()
  12.     turtle.digUp()
  13.     turtle.forward()
  14. end
  15.  
  16. function turnLeft()
  17.     turtle.turnLeft()
  18.     mine()
  19.     turtle.turnLeft()
  20. end
  21.  
  22. function turnRight()
  23.     turtle.turnRight()
  24.     mine()
  25.     turtle.turnRight()
  26. end
  27.  
  28. print("How long?")
  29. width = tonumber(read())
  30. print("How wide?")
  31. length = tonumber(read())
  32. print("How many layers?")
  33. layers = tonumber(read())
  34.  
  35. function mineWidth()
  36.     for i = width - 1, 1, -1 do
  37.         mine()
  38.         -- rednet.send(partnerID,"Forward")
  39.     end
  40. end
  41.  
  42. turnCount = 1
  43. function mineTotal()
  44.     for i = length, 1, -1 do
  45.         mineWidth()
  46.         if i ~= 1 then
  47.             if turnCount == 1 then
  48.                 turnLeft()
  49.                 -- rednet.send(partnerID,"turnLeft")
  50.                 turnCount = turnCount + 1
  51.             elseif turnCount == 2 then
  52.                 turnRight()
  53.                 -- rednet.send(partnerID,"turnRight")
  54.                 turnCount = turnCount - 1
  55.             end
  56.         end
  57.     end
  58. end
  59.  
  60. function mineFull()
  61.     if justPlaced == false then
  62.         turtle.digUp()
  63.     end
  64.     turtle.digDown()
  65.     turtle.down()
  66.     justPlaced = false
  67.     -- rednet.send(partnerID,"Down")
  68.     mineTotal()
  69.     turtle.turnLeft()
  70.     turtle.turnLeft()
  71.     -- rednet.send(partnerID,"Turn Around")
  72. end
  73.  
  74. function ivFull()
  75.     for i = 1, 16 do
  76.         if turtle.getItemCount(i) == 0 then
  77.             return false
  78.         end
  79.     end
  80.     return true
  81. end
  82.  
  83. function layerCount(layersValue)
  84.     extraLayers = 0
  85.     for i = layersValue, 1, -1 do
  86.         if ivFull() == false then
  87.             if rednet.receive(0.2) then
  88.                 rednet.broadcast("Stopping...")
  89.                 break
  90.             end
  91.             mineFull()
  92.             layersDown = layersDown + 1
  93.         else
  94.             turtle.digUp()
  95.             turtle.placeUp()
  96.             for i = 2, 16 do
  97.                 turtle.select(i)
  98.                 turtle.dropUp()
  99.             end
  100.             turtle.select(1)
  101.             justPlaced = true
  102.             extraLayers = extraLayers + 1
  103.         end
  104.         select(1)
  105.         if turtle.getItemCount(1) == 0 then
  106.             break
  107.         end
  108.     end
  109.  
  110.     if extraLayers > 0 then
  111.         layerCount(extraLayers)
  112.     end
  113. end
  114.  
  115. function Task()
  116.     layerCount(layers)
  117.  
  118.     turtle.forward()
  119.     for i = layersDown, 1, -1 do
  120.         -- rednet.send(partnerID,"Up")
  121.         turtle.up()
  122.     end
  123. end
  124.  
  125. rednet.open("left")
  126. rednet.receive()
  127. rednet.broadcast("Stopping...")
  128. -- rednet.send(partnerID,"Begin")
  129.  
  130. Task()
  131.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement