SHARE
TWEET

quarry.lua

wilhueb May 25th, 2019 66 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. print("enter the size (NxN):")
  2.  
  3. n = tonumber(read())
  4.  
  5. x = 0
  6. y = 0
  7. z = 0
  8.  
  9. depth = 0
  10.  
  11. dir = 0
  12.  
  13. function updatePos()
  14.     if dir == 0 then
  15.         y = y + 1
  16.     elseif dir == 1 then
  17.         x = x + 1
  18.     elseif dir == 2 then
  19.         y = y - 1
  20.     elseif dir == 3 then
  21.         x = x - 1
  22.     end
  23. end
  24.  
  25. function dig()
  26.     turtle.digUp()
  27.     turtle.digDown()
  28.     turtle.dig()
  29. end
  30.  
  31. function refuel()
  32.     local fuel = turtle.getFuelLevel()
  33.  
  34.     if fuel == 0 then
  35.         turtle.refuel(1)
  36.     end
  37. end
  38.  
  39. function forward()
  40.     refuel()
  41.  
  42.     turtle.forward()
  43.  
  44.     updatePos()
  45. end
  46.  
  47. function right()
  48.     turtle.turnRight()
  49.  
  50.     if dir == 3 then
  51.         dir = 0
  52.     else
  53.         dir = dir + 1
  54.     end
  55. end
  56.  
  57. function left()
  58.     turtle.turnLeft()
  59.  
  60.     if dir == 0 then
  61.         dir = 3
  62.     else
  63.         dir = dir - 1
  64.     end
  65. end
  66.  
  67. function down()
  68.     local success, data = turtle.inspectDown()
  69.  
  70.     if success then
  71.         if data.name == "minecraft:bedrock" then
  72.             return false
  73.         end
  74.     end
  75.  
  76.     refuel()
  77.  
  78.     turtle.digDown()
  79.     turtle.down()
  80.  
  81.     z = z - 1
  82.  
  83.     return true
  84. end
  85.  
  86. function up()
  87.     refuel()
  88.  
  89.     turtle.digUp()
  90.     turtle.up()
  91.  
  92.     z = z + 1
  93. end
  94.  
  95. function returnToChest()
  96.     if dir == 0 then
  97.         left()
  98.     elseif dir == 1 then
  99.         right()
  100.         right()
  101.     elseif dir == 2 then
  102.         right()
  103.     end
  104.  
  105.     for i=1,x do
  106.         forward()
  107.     end
  108.  
  109.     left()
  110.  
  111.     for i=1,y do
  112.         forward()
  113.     end
  114.  
  115.     right()
  116.     right()
  117.  
  118.     for i=z,-1 do
  119.         up()
  120.     end
  121. end
  122.  
  123. function returnToDepth()
  124.     for i=1,depth do
  125.         down()
  126.     end
  127. end
  128.  
  129. while true do
  130.     for x=1,n do
  131.         for y=1,n do
  132.             dig()
  133.  
  134.             if y ~= n then
  135.                 forward()
  136.             end
  137.         end
  138.  
  139.         if x ~= n then
  140.             if x % 2 == 1 then
  141.                 right()
  142.                 forward()
  143.                 right()
  144.             else
  145.                 left()
  146.                 forward()
  147.                 left()
  148.             end
  149.         end
  150.     end
  151.  
  152.     returnToChest()
  153.  
  154.     returnToDepth()
  155.  
  156.     if not down() then
  157.         break
  158.     end
  159.  
  160.     depth = depth + 1
  161. end
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top