Advertisement
Guest User

branch

a guest
Feb 19th, 2017
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.95 KB | None | 0 0
  1. local tArgs = { ... }
  2. if #tArgs ~= 1 then
  3.     print( "Usage: branch <length>" )
  4.     return
  5. end
  6.  
  7. local length = tonumber( tArgs[1] )
  8. if length < 1 then
  9.     print( "Branch length must be positive" )
  10.     return
  11. end
  12.    
  13. local depth = 0
  14.  
  15. local function tryDig()
  16.     while turtle.detect() do
  17.         if turtle.dig() then
  18.             sleep(0.5)
  19.         else
  20.             return false
  21.         end
  22.     end
  23.     return true
  24. end
  25.  
  26. local function tryDigUp()
  27.     while turtle.detectUp() do
  28.         if turtle.digUp() then
  29.             sleep(0.5)
  30.         else
  31.             return false
  32.         end
  33.     end
  34.     return true
  35. end
  36.  
  37. local function tryDigDown()
  38.     while turtle.detectDown() do
  39.         if turtle.digDown() then
  40.             sleep(0.5)
  41.         else
  42.             return false
  43.         end
  44.     end
  45.     return true
  46. end
  47.  
  48. local function refuel()
  49.     local fuelLevel = turtle.getFuelLevel()
  50.     if fuelLevel == "unlimited" or fuelLevel > 0 then
  51.         return
  52.     end
  53.    
  54.     local function tryRefuel()
  55.         for n=1,16 do
  56.             if turtle.getItemCount(n) > 0 then
  57.                 turtle.select(n)
  58.                 if turtle.refuel(1) then
  59.                     turtle.select(1)
  60.                     return true
  61.                 end
  62.             end
  63.         end
  64.         turtle.select(1)
  65.         return false
  66.     end
  67.    
  68.     if not tryRefuel() then
  69.         print( "Add more fuel to continue." )
  70.         while not tryRefuel() do
  71.             sleep(1)
  72.         end
  73.         print( "Resuming Tunnel." )
  74.     end
  75. end
  76.  
  77. local function tryUp()
  78.     refuel()
  79.     while not turtle.up() do
  80.         if turtle.detectUp() then
  81.             if not tryDigUp() then
  82.                 return false
  83.             end
  84.         elseif turtle.attackUp() then
  85.             -- nothing
  86.         else
  87.             sleep( 0.5 )
  88.         end
  89.     end
  90.     return true
  91. end
  92.  
  93. local function tryDown()
  94.     refuel()
  95.     while not turtle.down() do
  96.         if turtle.detectDown() then
  97.             if not tryDigDown() then
  98.                 return false
  99.             end
  100.         elseif turtle.attackDown() then
  101.             -- nothing
  102.         else
  103.             sleep( 0.5 )
  104.         end
  105.     end
  106.     return true
  107. end
  108.  
  109. local function tryForward()
  110.     refuel()
  111.     while not turtle.forward() do
  112.         if turtle.detect() then
  113.             if not tryDig() then
  114.                 return false
  115.             end
  116.         elseif turtle.attack() then
  117.             -- nothing
  118.         else
  119.             sleep( 0.5 )
  120.         end
  121.     end
  122.     return true
  123. end
  124.  
  125. local function placeTorch()
  126.     turtle.select(16)
  127.     turtle.place()
  128. end
  129.  
  130. local function pokeHoles()
  131.     tryUp()
  132.     turtle.turnRight()
  133.         tryDig()
  134.         tryForward()
  135.         tryDig()
  136.         tryForward()
  137.         tryDig()
  138.         tryForward()
  139.         tryDig()
  140.         tryForward()
  141.         tryDig()
  142.         turtle.back()
  143.         turtle.back()
  144.         turtle.back()
  145.         turtle.back()
  146.     turtle.turnLeft()
  147.     turtle.turnLeft()
  148.         tryDig()
  149.         tryForward()
  150.         tryDig()
  151.         tryForward()
  152.         tryDig()
  153.         tryForward()
  154.         tryDig()
  155.         tryForward()
  156.         tryDig()
  157.         turtle.back()
  158.         turtle.back()
  159.         turtle.back()
  160.         turtle.back()
  161.     turtle.turnRight()
  162.     tryDown()
  163. end
  164.  
  165. print( "Branching..." )
  166. print("Put Cobblestone in Slot 15" )
  167. print("and Torches in Slot 16")
  168. sleep (2)
  169.  
  170.        
  171. for n=1,length do
  172.     tryDig()
  173.     tryForward()
  174.     tryDigUp()
  175.     turtle.select(15)
  176.     turtle.placeDown()
  177.     depth = depth + 1
  178.     if depth % 7 == 0 then
  179.         turtle.turnLeft()
  180.         tryDig()
  181.         placeTorch()
  182.         turtle.turnRight()
  183.     end
  184.     if depth % 3 == 0 then
  185.         pokeHoles()
  186.     end
  187. end
  188.  
  189. print( "Branch complete." )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement