SHARE
TWEET

quarry.lua

wilhueb May 25th, 2019 90 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 forward()
  32.     local fuel = turtle.getFuelLevel()
  33.  
  34.     if fuel == 0 then
  35.         turtle.refuel(1)
  36.     end
  37.  
  38.     turtle.forward()
  39.  
  40.     updatePos()
  41. end
  42.  
  43. function right()
  44.     turtle.turnRight()
  45.  
  46.     if dir == 3 then
  47.         dir = 0
  48.     else
  49.         dir = dir + 1
  50.     end
  51. end
  52.  
  53. function left()
  54.     turtle.turnLeft()
  55.  
  56.     if dir == 0 then
  57.         dir = 3
  58.     else
  59.         dir = dir - 1
  60.     end
  61. end
  62.  
  63. function down()
  64.     local success, data = turtle.inspectDown()
  65.  
  66.     if success then
  67.         if data.name == "minecraft:bedrock" then
  68.             toChest()
  69.             return false
  70.         end
  71.     end
  72.  
  73.     turtle.digDown()
  74.     turtle.down()
  75.  
  76.     z = z - 1
  77. end
  78.  
  79. function up()
  80.     turtle.digUp()
  81.     turtle.up()
  82.  
  83.     z = z + 1
  84. end
  85.  
  86. function returnToChest()
  87.     if dir == 0 then
  88.         left()
  89.     elseif dir == 1 then
  90.         right()
  91.         right()
  92.     elseif dir == 2 then
  93.         right()
  94.     end
  95.  
  96.     for i=1,x do
  97.         forward()
  98.     end
  99.  
  100.     left()
  101.  
  102.     for i=1,y do
  103.         forward()
  104.     end
  105.  
  106.     right()
  107.     right()
  108.  
  109.     for i=z,-1 do
  110.         up()
  111.     end
  112. end
  113.  
  114. function returnToDepth()
  115.     for i=1,depth do
  116.         down()
  117.     end
  118. end
  119.  
  120. while true do
  121.     for x=1,n do
  122.         for y=1,n do
  123.             dig()
  124.  
  125.             if y ~= n then
  126.                 forward()
  127.             end
  128.         end
  129.  
  130.         if x ~= n then
  131.             if x % 2 == 1 then
  132.                 right()
  133.                 forward()
  134.                 right()
  135.             else
  136.                 left()
  137.                 forward()
  138.                 left()
  139.             end
  140.         end
  141.     end
  142.  
  143.     returnToChest()
  144.  
  145.     returnToDepth()
  146.  
  147.     if not down() then
  148.         break
  149.     end
  150.  
  151.     depth = depth + 1
  152. 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