Advertisement
TheCountryGamer

[Finished] Branch Mine: 5x5 Quarry

Aug 20th, 2013
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 4.89 KB | None | 0 0
  1. -- NOTES
  2. -- Will mine out at 22x3x2(lxwxh) tunnel, and then branch out of each side ~every 4 blocks
  3. -- does not currently account for a full inventory
  4.  
  5. -- PLANS
  6. -- inventory sensitive
  7. -- cross hatched branches
  8. -- empty space sensitive
  9. -- light sensitive
  10.  
  11. -- VARS
  12.  
  13. -- Basic Functions
  14. function refuel( ammount )
  15.    local fuelLevel = turtle.getFuelLevel()
  16.    if fuelLevel == "unlimited" then
  17.       return true
  18.    end
  19.    local needed = ammount or (xPos + zPos + depth + 2)
  20.    if turtle.getFuelLevel() < needed then
  21.       local fueled = false
  22.       for n=1,16 do
  23.          if turtle.getItemCount(n) > 0 then
  24.             turtle.select(n)
  25.             if turtle.refuel(1) then
  26.                while turtle.getItemCount(n) > 0 and turtle.getFuelLevel() < needed do
  27.                   turtle.refuel(1)
  28.                end
  29.                if turtle.getFuelLevel() >= needed then
  30.                   turtle.select(1)
  31.                   return true
  32.                end
  33.          end
  34.       end
  35.    end
  36.    turtle.select(1)
  37.    return false
  38. end
  39. return true
  40. end
  41. function tryForward(tf)
  42.    if not refuel() then
  43.       print( "Not enough Fuel" )
  44.       return false
  45.    end
  46.    if turtle.detect() then
  47.       turtle.dig()
  48.    end
  49.    if tf then -- if move forward
  50.       turtle.forward()
  51.    end
  52.    return true
  53. end
  54. function turnLeft()
  55.    if not refuel() then
  56.       print( "Not enough Fuel" )
  57.       return false
  58.    end
  59.    turtle.turnLeft()
  60.    return true
  61. end
  62. function turnRight()
  63.    if not refuel() then
  64.       print( "Not enough Fuel" )
  65.       return false
  66.    end
  67.    turtle.turnRight()
  68.    return true
  69. end
  70. function tryUp(tf)
  71.    if not refuel() then
  72.       print( "Not enough Fuel" )
  73.       return false
  74.    end
  75.    if turtle.detectUp() then
  76.       turtle.digUp()
  77.    end
  78.    if tf then -- if move up
  79.       turtle.up()
  80.    end
  81.    return true
  82. end
  83. -- Advanced Functions
  84. function leftBranch()
  85.    local banLen
  86.    banLen = 4
  87.    -- first branchB
  88.    for l=1, banLen do -- go the length of var
  89.          tryForward(true)
  90.          tryUp(false)
  91.       end
  92.       turnRight()
  93.       turnRight()
  94.       for l=1, banLen do -- go back to start
  95.          tryForward(true)
  96.       end
  97.       turnLeft()
  98.       turnLeft()
  99.    -- 2nd-6th branchB's
  100.    for tun=1, 5 do -- 5 tunnels per side
  101.       -- setup
  102.       banLen=banLen+4
  103.       turnRight()
  104.       for l=1, 4 do
  105.          tryForward(true)
  106.       end
  107.       turnLeft()
  108.       -- mine
  109.       for l=1, banLen do -- go the length of var
  110.          tryForward(true)
  111.          tryUp(false)
  112.       end
  113.       turnRight()
  114.       turnRight()
  115.       for l=1, banLen do -- go back to start
  116.          tryForward(true)
  117.       end
  118.       turnLeft()
  119.       turnLeft()
  120.      
  121.      
  122.    end
  123. end
  124. function rightBranch()
  125.    local banLen
  126.    banLen = 4
  127.    -- first branchB
  128.    for l=1, banLen do -- go the length of var
  129.          tryForward(true)
  130.          tryUp(false)
  131.       end
  132.       turnLeft()
  133.       turnLeft()
  134.       for l=1, banLen do -- go back to start
  135.          tryForward(true)
  136.       end
  137.       turnRight()
  138.       turnRight()
  139.    -- 2nd-6th branchB's
  140.    for tun=1, 5 do -- 5 tunnels per side
  141.       -- setup
  142.       banLen=banLen+4
  143.       turnLeft()
  144.       for l=1, 4 do
  145.          tryForward(true)
  146.       end
  147.       turnRight()
  148.       -- mine
  149.       for l=1, banLen do -- go the length of var
  150.          tryForward(true)
  151.          tryUp(false)
  152.       end
  153.       turnLeft()
  154.       turnLeft()
  155.       for l=1, banLen do -- go back to start
  156.          tryForward(true)
  157.       end
  158.       turnRight()
  159.       turnRight()
  160.    end
  161. end
  162. function main() -- dig 20x3x2(lxwxh) tunnel
  163.    local maLen = 22
  164.    for l=1, maLen do -- go maLen blocks
  165.       tryForward(true) -- dig first block in front
  166.       tryUp(false)
  167.       turnLeft()
  168.       tryForward(true)
  169.       turnRight()
  170.       tryUp(false)
  171.       turnRight()
  172.       tryForward(true)
  173.       tryForward(true)
  174.       turnLeft()
  175.       tryUp(false)
  176.       turnLeft()
  177.       tryForward(true)
  178.       turnRight()
  179.    end
  180.    turnRight()
  181.    turnRight()
  182.    for l=1, maLen do -- go maLen blocks (back the way we came, so that we are at start)
  183.       tryForward(true)
  184.    end
  185.    turnLeft()
  186.    turnLeft() -- is now back at start
  187.    
  188.    -- first tunnel starts @ (currentL+2) and is 4 long, increment start by +4 and length by +4 per tunnel
  189.    tryForward(true)
  190.    tryForward(true) -- get to currentL+2
  191.    turnLeft()
  192.    tryForward(true)
  193.    
  194.    leftBranch()
  195.    print("Left side Done")
  196.    
  197.    turnRight()
  198.    turnRight()
  199.    tryForward(true)
  200.    turnRight()
  201.    for l=1, maLen do
  202.       tryForward(true)
  203.    end
  204.    turnLeft()
  205.    turnLeft()
  206.    
  207.    tryForward(true)
  208.    tryForward(true)
  209.    turnRight()
  210.    tryForward(true)
  211.    
  212.    rightBranch()
  213.    print("Right side Done")
  214.    turnLeft()
  215.    turnLeft()
  216.    tryForward(true)
  217.    turnLeft()
  218.    for l=1, maLen do
  219.       tryForward(true)
  220.    end
  221.    turnRight()
  222.    turnRight()
  223.    
  224. end
  225.  
  226. -- Main Program
  227. main()
  228. print("Branch Done")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement