Advertisement
TwoNekos

sqQ7Std

Nov 23rd, 2020 (edited)
539
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. --quarry square forward left
  2. sidelength = tonumber(arg[1])
  3. layersleft = tonumber(arg[2])
  4. totallayers = layersleft
  5. turnd = 0
  6. -- turnd => turndirection
  7. -- 0 for turn right
  8. -- 1 for turn left
  9.  
  10. function keepup()
  11.     while not turtle.up() do
  12.         turtle.attackUp()
  13.         turtle.digUp()
  14.         checkandrefuelpurge()
  15.         sleep(2)
  16.     end
  17. end
  18.  
  19. function keepdown()
  20.     while not turtle.down() do
  21.         turtle.attackDown()
  22.         turtle.digDown()
  23.         checkandrefuelpurge()
  24.         sleep(2)
  25.     end
  26. end
  27.  
  28. function keepforward()
  29.     while not turtle.forward() do
  30.         turtle.attack()
  31.         turtle.dig()
  32.         checkandrefuelpurge()
  33.         sleep(2)
  34.     end
  35. end
  36.  
  37. function trydigforward()
  38.     if (turtle.detect()) then
  39.         turtle.dig()
  40.     end
  41. end
  42.  
  43. function trydigdown()
  44.     if (turtle.detectDown()) then
  45.         turtle.digDown()
  46.     end
  47. end
  48.  
  49. function trydigmoveforward()
  50.     trydigforward()
  51.     keepforward()
  52. end
  53.  
  54. function trydigmovedown()
  55.     trydigdown()
  56.     keepdown()
  57. end
  58.  
  59. function turnaround()
  60.     turtle.turnRight()
  61.     turtle.turnRight()
  62. end
  63.  
  64. function checkandrefuelpurge()
  65.     for slot = 1, 16 do
  66.         turtle.select(slot)
  67.         if turtle.getFuelLevel() <= 1 then
  68.             turtle.refuel(1)
  69.         end
  70.         local item = turtle.getItemDetail(slot)
  71.         if item ~= nil then
  72.             if item["name"] == "minecraft:cobblestone" or item["name"] == "minecraft:dirt" or item["name"] == "minecraft:stone" or item["name"] == "minecraft:netherrack" or item["name"] == "minecraft:gravel" then
  73.                 turtle.drop()
  74.             end
  75.         end
  76.     end
  77. end
  78.  
  79. function digsingleline()
  80.     for i=1, sidelength-1 do
  81.         trydigmoveforward()
  82.     end
  83.     checkandrefuelpurge()
  84. end
  85.  
  86. function digsinglelayer()
  87.     for i=1, sidelength-1 do
  88.         digsingleline()
  89.         if (turnd==0) then
  90.             turtle.turnRight()
  91.             trydigmoveforward()
  92.             turtle.turnRight()
  93.             turnd = 1
  94.         else
  95.             turtle.turnLeft()
  96.             trydigmoveforward()
  97.             turtle.turnLeft()
  98.             turnd = 0
  99.         end
  100.     end
  101.     digsingleline()
  102. end
  103.  
  104. function digalllayers()
  105.     trydigmoveforward()
  106.     while (layersleft > 0) do
  107.         digsinglelayer()
  108.         layersleft = layersleft - 1
  109.         if (layersleft > 0) then
  110.             trydigmovedown()
  111.             turnaround()
  112.         end
  113.     end
  114.     for i=2, totallayers do
  115.         keepup()
  116.     end
  117.     if (totallayers % 2 ~= 0) then
  118.         if (sidelength % 2 == 0) then
  119.             turtle.turnRight()
  120.             for i=1, sidelength-1 do
  121.                 keepforward()
  122.             end
  123.             turtle.turnLeft()
  124.             keepforward()
  125.         else
  126.             turtle.turnLeft()
  127.             for i=1, sidelength-1 do
  128.                 keepforward()
  129.             end
  130.             turtle.turnLeft()
  131.             for i=1, sidelength do
  132.                 keepforward()
  133.             end
  134.         end
  135.     else
  136.         keepforward()
  137.     end
  138.     turnaround()
  139. end
  140.  
  141. digalllayers()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement