Advertisement
Guest User

Quarry

a guest
Jan 9th, 2013
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 3.48 KB | None | 0 0
  1. function refuel()
  2.     --check inventory for fuel
  3.     local maxFuel = 200
  4.    
  5.     --cycles through each slot refuelling
  6.     --using everything in that slot
  7.     --until full
  8.     for i=3, 16 do
  9.         if turtle.getFuelLevel() < maxFuel then
  10.             turtle.select(i)
  11.             turtle.refuel()
  12.         end
  13.     end
  14.    
  15.     --if not enough, use enderchest
  16.     if turtle.getFuelLevel() < maxFuel then
  17.         --select enderchest, place above
  18.         while turtle.getItemCount(2) ~= 0 do    
  19.             turtle.select(2)
  20.             turtle.placeUp()
  21.             sleep(1)
  22.         end
  23.        
  24.         --keep grabbing fuel until full
  25.         while turtle.getFuelLevel() < maxFuel do
  26.             if turtle.suckUp() == false then
  27.                 break --if no fuel available
  28.                       --then stop refueling
  29.             end
  30.             turtle.refuel()
  31.         end
  32.        
  33.         --replace enderchest
  34.         turtle.digUp()
  35.     end
  36.    
  37.     --reselect slot 1
  38.     turtle.select(1)
  39. end
  40.  
  41.  
  42. function unload()
  43.     --places enderchest above
  44.     while turtle.getItemCount(1) ~= 0 do
  45.         turtle.select(1)
  46.         turtle.placeUp()
  47.         sleep(1)
  48.     end
  49.    
  50.     --dumps all items in chest
  51.     for i=3, 16 do
  52.         turtle.select(i)
  53.         turtle.dropUp()
  54.     end
  55.    
  56.     --reselects slot 1
  57.     turtle.select(1)
  58.     turtle.digUp() --gets enderchest back
  59. end
  60.  
  61. function goFwd(dist)
  62. local minFuel = 10
  63.  
  64.     for i=1, dist do
  65.         --Refuel if needed
  66.             if turtle.getFuelLevel() < minFuel then
  67.         refuel()
  68.         end
  69.        
  70.         --move + dig anything infront
  71.         while not turtle.forward() do
  72.             if turtle.getItemCount(16) > 0 then
  73.                 unload()
  74.             end
  75.             turtle.dig()
  76.         end
  77.     end
  78. end
  79.  
  80.  
  81. function digSquare(N)
  82.     --digs an N*N square
  83.     --dig square except last row
  84.     for i=1, (N-1) do
  85.         --on odd rows
  86.         if i % 2 == 1 then
  87.             goFwd((N-1))
  88.             turtle.turnRight()
  89.             goFwd(1)
  90.             turtle.turnRight()
  91.         else --on even rows
  92.             goFwd((N-1))
  93.             turtle.turnLeft()
  94.             goFwd(1)
  95.             turtle.turnLeft()
  96.         end    
  97.     end
  98.    
  99.     --finish last row without the dig turn
  100.     --turn so in bottom left of square
  101.     goFwd((N-1))
  102.     turtle.turnRight()
  103.     if (N%2) == 1 then
  104.         turtle.turnRight()
  105.     end
  106. end
  107.  
  108. function goDown()
  109.     --checks for inv space
  110.     if turtle.getItemCount(16) > 0 then
  111.         unload()
  112.     end
  113.    
  114.     --then goes down
  115.     turtle.digDown()
  116.     turtle.down()
  117. end
  118.  
  119. function goUp(N)
  120.     for i=1, N do
  121.         --checks fuel
  122.         if turtle.getFuelLevel < minFuel then
  123.             refuel()
  124.         end
  125.        
  126.         --checks for space
  127.         if turtle.getItemCount(16) > 0 then
  128.             unload()
  129.         end
  130.        
  131.         while not turtle.up() do
  132.             turtle.digUp()
  133.         end
  134.     end
  135. end
  136.  
  137. function quarry(depth, size)
  138.     for i=1, depth do
  139.         goDown()
  140.         digSquare(size)
  141.     end
  142. end
  143.  
  144. --need up function
  145. --ACTUAL PROGRAM--
  146.  
  147. term.clear()
  148. term.setCursorPos(1, 1)
  149. print("Place item chest in slot 1")
  150. print("and fuel chest in slot 2")
  151. print("Then enter how far you would like to")
  152. print("dig down")
  153. local depth = read()
  154. local depthNum = tonumber(depth)
  155.  
  156. print("Enter how big the square")
  157. print("to dig should be")
  158. local size = read()
  159. local sizeNum = tonumber(size)
  160.  
  161. quarry(depthNum, sizeNum)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement