Guest User

quarry

a guest
Aug 16th, 2013
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.65 KB | None | 0 0
  1. function dropOffItems()
  2.   turtle.turnLeft()
  3.   for i=1,16 do
  4.     turtle.select(i)
  5.     turtle.drop()
  6.   end
  7.   turtle.turnRight()
  8.   turtle.select(1)
  9. end
  10.  
  11. -- refuel chest is behind it
  12. function refuel(minFuelLevel)
  13.   if minFuelLevel ~= nil and turtle.getFuelLevel() >= minFuelLevel then
  14.     return
  15.   end
  16.  
  17.   turtle.turnRight()
  18.   turtle.turnRight()
  19.   turtle.select(16)
  20.   turtle.suck()
  21.   turtle.refuel()
  22.   turtle.select(1)
  23.   turtle.turnLeft()
  24.   turtle.turnLeft()
  25. end
  26.  
  27. function bedrockForward_NotFinished()
  28.   local blocksUp = 0
  29.  
  30.   -- must move forward by exactly 1  
  31.   while not turtle.forward() do
  32.  
  33.     -- clear out block, including sand or gravel
  34.     while turtle.dig() do
  35.       turtle.dig()
  36.     end
  37.    
  38.     -- block cleared out or unbreakable (bedrock)
  39.     -- try to move forward
  40.     if not turtle.forward() then
  41.       turtle.up()
  42.       blocksUp = blocksUp + 1
  43.     end
  44.   end
  45. end
  46.  
  47. function bedrockForward()
  48.   local blocksUp = 3
  49.   for i=1,blocksUp do
  50.     turtle.up()
  51.   end
  52.   while turtle.dig() do
  53.     turtle.dig()
  54.   end
  55.   turtle.forward()
  56.   return blocksUp
  57. end
  58.  
  59. function digDown()
  60.   local blocks = 0
  61.   while 1 do
  62.     if turtle.digDown() then
  63.       turtle.down()
  64.       blocks = blocks + 1
  65.     elseif turtle.down() then
  66.       blocks = blocks + 1
  67.     else
  68.       return blocks
  69.     end
  70.   end
  71. end
  72.  
  73. function digUp(blocks)
  74.   for i=1,blocks do
  75.     turtle.digUp()
  76.     while not turtle.up() do
  77.       turtle.digUp()
  78.     end
  79.   end
  80. end
  81.  
  82. function downAndUp()
  83.   bDn = digDown()
  84.   bDn = bDn - bedrockForward()
  85.   digUp(bDn)
  86.   turtle.back()
  87. end
  88.  
  89.  
  90. function moveBack(blocks)
  91.   for i=1,blocks do
  92.     turtle.back()
  93.   end
  94. end
  95.  
  96. function moveForw(blocks)
  97.   for i=1,blocks do
  98.     while not turtle.forward() do
  99.       turtle.dig()
  100.     end
  101.   end
  102. end
  103.  
  104. function moveRight(blocks)
  105.   turtle.turnRight()
  106.   moveForw(blocks)
  107.   turtle.turnLeft()
  108. end
  109.  
  110. function moveLeft(blocks)
  111.   turtle.turnLeft()
  112.   moveForw(blocks)
  113.   turtle.turnRight()
  114. end
  115.  
  116. function checkArgs(args)
  117.   if args[1] == nil or args[2] == nil then
  118.     print( "Usage: quarry <blocks forward> <blocks right>")
  119.     return false
  120.   elseif args[1] % 2 ~= 0 or args[2] % 2 ~= 0 then
  121.     print( "Please use even numbers for blocks")
  122.     return false
  123.   else
  124.     return true
  125.   end
  126. end
  127.  
  128. args = {...}
  129. if not checkArgs(args) then
  130.   print("Exiting...")
  131. else
  132.   local bForw = args[1]
  133.   local bRight = args[2]
  134.   for r = 0, bRight/2 do
  135.     for f = 0, bForw/2 do
  136.       dropOffItems()
  137.       refuel(1000)
  138.      
  139.       moveRight( r )
  140.       moveForw( f * 2 )
  141.      
  142.       downAndUp()
  143.      
  144.       moveBack( f * 2 )
  145.       moveLeft( r )
  146.     end
  147.   end
  148.  
  149.   dropOffItems()
  150. end
Advertisement
Add Comment
Please, Sign In to add comment