Advertisement
SirMongoose

xdig

Jan 7th, 2014
332
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 9.47 KB | None | 0 0
  1. local mode = 1
  2. torchP = 0
  3. chestR = 0
  4. chestMode = 0
  5. backT = 0
  6. bTrack = 0
  7. fFuel = turtle.getFuelLevel()
  8.  
  9. function returnChest()
  10.   if turtle.getItemCount(3) and turtle.getItemCount(4) and turtle.getItemCount(5) and turtle.getItemCount(6) and turtle.getItemCount(7) and turtle.getItemCount(8) and turtle.getItemCount(9) and turtle.getItemCount(10) and turtle.getItemCount(11) and turtle.getItemCount(12) and turtle.getItemCount(13) and turtle.getItemCount(14) and turtle.getItemCount(15) and turtle.getItemCount(16) >= 1 then
  11.    
  12.     if fFuel <= backT * 2 then
  13.       turtle.select(1)
  14.       turtle.refuel(10)
  15.     end
  16.      
  17.     bTrack = backT    
  18.     turtle.turnLeft()
  19.     turtle.turnLeft()
  20.     turtle.up()
  21.      
  22.       while bTrack ~= 0 do
  23.         bTrack = bTrack - 1      
  24.         turtle.forward()
  25.       end
  26.    
  27.     turtle.turnRight()
  28.     turtle.down()
  29.    
  30.       turtle.select(3)
  31.         turtle.drop(64)
  32.       turtle.select(4)
  33.         turtle.drop(64)
  34.       turtle.select(5)
  35.         turtle.drop(64)
  36.       turtle.select(6)
  37.         turtle.drop(64)
  38.       turtle.select(7)
  39.         turtle.drop(64)
  40.       turtle.select(8)
  41.         turtle.drop(64)
  42.       turtle.select(9)
  43.         turtle.drop(64)
  44.       turtle.select(10)
  45.         turtle.drop(64)
  46.       turtle.select(11)
  47.         turtle.drop(64)
  48.       turtle.select(12)
  49.         turtle.drop(64)
  50.       turtle.select(13)
  51.         turtle.drop(64)
  52.       turtle.select(14)
  53.         turtle.drop(64)
  54.       turtle.select(15)
  55.         turtle.drop(64)
  56.       turtle.select(16)
  57.         turtle.drop(64)
  58.      
  59.       turtle.select(3)        
  60.     turtle.turnRight()
  61.     turtle.up()
  62.    
  63.       while bTrack ~= backT do
  64.         bTrack = bTrack + 1
  65.         turtle.forward()
  66.       end
  67.     turtle.down()
  68.   end
  69. end
  70.  
  71. function cMode()
  72.   chestIn = io.read()
  73.  
  74.   if chestIn == "y" then
  75.     cMode = 1  
  76.     step2()
  77.    
  78.   elseif chestIn == "n" then
  79.     cMode = 0
  80.     step2()
  81.  
  82.   else
  83.   stepChest()
  84.  
  85.   end
  86. end
  87.  
  88. function stepChest()
  89.   term.clear()
  90.   term.setCursorPos(1,1)
  91.   term.write("( y/n - if yes then put a double chest")
  92.   print("")
  93.   print("to the left of the turtle's start pos.)")
  94.   print("")
  95.   print("DO YOU WANT TURTLE TO RETURN TO CHEST WHEN FULL?")
  96.  
  97.   cMode()    
  98. end
  99.  
  100. function step1()
  101.   term.clear()
  102.   term.setCursorPos(1,1)
  103.   term.write("(Type 1x2, 2x2. 3x3, exit)")
  104.   print("")
  105.   print("SELECT MODE:")
  106.  
  107.   mode()
  108.  
  109. end
  110.  
  111.  
  112. function mode()
  113.   modein = io.read()
  114.  
  115.   if modein == "exit" then
  116.   os.reboot()
  117.  
  118.   elseif modein == "1x2" then
  119.   mode = 2
  120.   stepChest()
  121.  
  122.   elseif modein == "2x2" then
  123.   mode = 4
  124.   stepChest()
  125.  
  126.   elseif modein == "3x3" then
  127.   mode = 9
  128.   stepChest()
  129.  
  130.   else
  131.   step1()
  132.  
  133.   end
  134. end
  135.  
  136. function step2()
  137.   term.clear()
  138.   term.setCursorPos(1,1)
  139.   term.write("Turtle should be in the correct pos.")
  140.   print("")
  141.   print("@ = turtle, X = block")
  142.   print("")
  143.   print("X   XX   XXX")
  144.   print("@   @X   XXX")
  145.   print("         X@X")
  146.   print("")
  147.   print("(Only numbers please 1+)")
  148.   print("")
  149.   print("MINE HOW MANY LAYERS:")
  150.   layers = io.read()
  151.  
  152.   step3()
  153.  
  154. end
  155.  
  156. function step3()
  157.  
  158. torch = tonumber(layers) / 11
  159. totalB = tonumber(layers) * mode
  160. fuelLevel = turtle.getFuelLevel()
  161.  
  162.   term.clear()
  163.   term.setCursorPos(1,1)
  164.   term.write("Torches needed: "..torch)
  165.   print("")
  166.   print("Current fuel: "..fuelLevel)
  167.   print("ChestReturn: "..cMode)
  168.   print("Expected blocks to be mined: "..totalB)
  169.   if totalB > 896 then
  170.     print("!Warn. blocks mined > turtle inv. space!")
  171.   end
  172.   print("Layers: "..layers)
  173.   print("mode: "..mode)
  174.   print("")
  175.   print("Make sure coal is in the first slot, and torches are in the second!")
  176.   print("")
  177.   print("TYPE ANYTHING TO START MINING:")
  178.  
  179. anyth = io.read()
  180.  
  181. step4()
  182. end
  183.  
  184. function step4()
  185.   if mode == 2 then
  186.   oneLoop()
  187.  
  188.   elseif mode == 4 then
  189.   twoLoop()
  190.  
  191.   elseif mode == 9 then
  192.   threeLoop()
  193.  
  194.   else
  195.  
  196.   end
  197. end
  198.  
  199. function oneLoop()
  200. blocks = 0
  201.  
  202.   while layers ~= 0 do
  203.     bMined = turtle.getItemCount(3) + turtle.getItemCount(4) + turtle.getItemCount(5) + turtle.getItemCount(6) + turtle.getItemCount(7) + turtle.getItemCount(8) + turtle.getItemCount(9) + turtle.getItemCount(10) + turtle.getItemCount(11) + turtle.getItemCount(12) + turtle.getItemCount(13) + turtle.getItemCount(14) + turtle.getItemCount(15) + turtle.getItemCount(16)
  204.     fFuel = turtle.getFuelLevel()
  205.     term.clear()
  206.     term.setCursorPos(1,1)
  207.     term.write("MINING IN PROGRESS...")
  208.     print("")
  209.     print("Fuel Left: "..fFuel)
  210.     print("Blocks Mined: "..blocks)
  211.     print("Total Items: "..bMined)
  212.     print("Layers left: "..layers)
  213.  
  214.   if fFuel <= 1 then
  215.     turtle.select(1)
  216.     turtle.refuel(1)
  217.   end
  218.  
  219.   if cMode == 1 then
  220.     returnChest()    
  221.   end    
  222.  
  223.  
  224.     while turtle.detect() == true do
  225.       turtle.dig()
  226.       blocks = blocks + 1
  227.       os.sleep(0.4)
  228.     end
  229.  
  230.   turtle.forward()
  231.  
  232.     while turtle.detectUp() == true do
  233.       turtle.digUp()
  234.       blocks = blocks + 1
  235.       sleep(0.4)
  236.     end
  237.  
  238.   if turtle.detectDown() == false then
  239.     turtle.select(3)
  240.     turtle.placeDown()
  241.   end
  242.  
  243.   if torchP == 10 then
  244.     turtle.turnLeft()
  245.     turtle.turnLeft()
  246.     turtle.select(2)
  247.     turtle.place()
  248.     turtle.turnLeft()
  249.     turtle.turnLeft()
  250.     torchP = 0
  251.   end
  252.  
  253.   layers = layers - 1
  254.   torchP = torchP + 1
  255.   backT = backT + 1
  256.  
  257.   end
  258. end
  259.  
  260. function twoLoop()
  261. blocks = 0
  262.  
  263.   while layers ~= 0 do
  264.     bMined = turtle.getItemCount(3) + turtle.getItemCount(4) + turtle.getItemCount(5) + turtle.getItemCount(6) + turtle.getItemCount(7) + turtle.getItemCount(8) + turtle.getItemCount(9) + turtle.getItemCount(10) + turtle.getItemCount(11) + turtle.getItemCount(12) + turtle.getItemCount(13) + turtle.getItemCount(14) + turtle.getItemCount(15) + turtle.getItemCount(16)
  265.     fFuel = turtle.getFuelLevel()
  266.     term.clear()
  267.     term.setCursorPos(1,1)
  268.     term.write("MINING IN PROGRESS...")
  269.     print("")
  270.     print("Fuel Left: "..fFuel)
  271.     print("Blocks Mined: "..blocks)
  272.     print("Total Items: "..bMined)
  273.     print("Layers left: "..layers)
  274.  
  275.   if fFuel <= 3 then
  276.     turtle.select(1)
  277.     turtle.refuel(1)
  278.   end
  279.  
  280.   if cMode == 1 then
  281.     returnChest()
  282.   end
  283.      
  284.   while turtle.detect() == true do
  285.     turtle.dig()
  286.     blocks = blocks + 1
  287.     sleep(0.4)
  288.   end
  289.  
  290.   turtle.forward()
  291.  
  292.   while turtle.detectUp() == true do
  293.     turtle.digUp()
  294.     blocks = blocks + 1
  295.     os.sleep(0.4)
  296.   end
  297.  
  298.   turtle.up()
  299.   turtle.turnRight()
  300.  
  301.   while turtle.detect() == true do
  302.     turtle.dig()
  303.     blocks = blocks + 1
  304.     os.sleep(0.4)
  305.   end
  306.  
  307.   turtle.down()
  308.  
  309.   while turtle.detect() == true do
  310.     turtle.dig()
  311.     blocks = blocks + 1
  312.     os.sleep(0.4)
  313.   end
  314.  
  315.   turtle.turnLeft()
  316.  
  317.   if turtle.detectDown() == false then
  318.     turtle.select(3)
  319.     turtle.placeDown()
  320.   end
  321.  
  322.   if torchP == 10 then
  323.     turtle.turnLeft()
  324.     turtle.turnLeft()
  325.     turtle.select(2)
  326.     turtle.place()
  327.     turtle.turnLeft()
  328.     turtle.turnLeft()
  329.     torchP = 0
  330.   end
  331.  
  332.   layers = layers - 1
  333.   torchP = torchP + 1
  334.   backT = backT + 1
  335.  
  336.   end
  337. end
  338.  
  339. function threeLoop()
  340. blocks = 0
  341.  
  342.   while layers ~= 0 do
  343.     bMined = turtle.getItemCount(3) + turtle.getItemCount(4) + turtle.getItemCount(5) + turtle.getItemCount(6) + turtle.getItemCount(7) + turtle.getItemCount(8) + turtle.getItemCount(9) + turtle.getItemCount(10) + turtle.getItemCount(11) + turtle.getItemCount(12) + turtle.getItemCount(13) + turtle.getItemCount(14) + turtle.getItemCount(15) + turtle.getItemCount(16)
  344.     fFuel = turtle.getFuelLevel()
  345.     term.clear()
  346.     term.setCursorPos(1,1)
  347.     term.write("MINING IN PROGRESS...")
  348.     print("")
  349.     print("Fuel Left: "..fFuel)
  350.     print("Blocks Mined: "..blocks)
  351.     print("Total Items: "..bMined)
  352.     print("Layers left: "..layers)
  353.  
  354.   if fFuel <= 6 then
  355.     turtle.select(1)
  356.     turtle.refuel(1)
  357.   end
  358.  
  359.   if cMode == 1 then
  360.     returnChest()
  361.   end
  362.  
  363.   while turtle.detect() == true do
  364.     turtle.dig()
  365.     blocks = blocks + 1
  366.     os.sleep(0.4)
  367.   end
  368.  
  369.   turtle.forward()
  370.  
  371.   while turtle.detectUp() == true do
  372.     turtle.digUp()
  373.     blocks = blocks + 1
  374.     os.sleep(0.4)
  375.   end
  376.  
  377.   turtle.up()
  378.  
  379.   while turtle.detectUp() == true do
  380.     turtle.digUp()
  381.     blocks = blocks + 1
  382.     os.sleep(0.4)
  383.   end
  384.  
  385.   turtle.up()
  386.   turtle.turnRight()
  387.  
  388.   while turtle.detect() == true do
  389.     turtle.dig()
  390.     blocks = blocks + 1
  391.     os.sleep(0.4)
  392.   end
  393.  
  394.   turtle.turnLeft()
  395.   turtle.turnLeft()
  396.  
  397.   while turtle.detect() == true do
  398.     turtle.dig()
  399.     blocks = blocks + 1
  400.     os.sleep(0.4)
  401.   end
  402.  
  403.   turtle.down()
  404.  
  405.   while turtle.detect() == true do
  406.     turtle.dig()
  407.     blocks = blocks + 1
  408.     os.sleep(0.4)
  409.   end
  410.  
  411.   turtle.turnRight()
  412.   turtle.turnRight()
  413.  
  414.   while turtle.detect() == true do
  415.     turtle.dig()
  416.     blocks = blocks + 1
  417.     os.sleep(0.4)
  418.   end
  419.  
  420.   turtle.down()
  421.  
  422.   while turtle.detect() == true do
  423.     turtle.dig()
  424.     blocks = blocks + 1
  425.     os.sleep(0.4)
  426.   end
  427.  
  428.   turtle.turnLeft()
  429.   turtle.turnLeft()
  430.  
  431.   while turtle.detect() == true do
  432.     turtle.dig()
  433.     blocks = blocks + 1
  434.     os.sleep(0.4)
  435.   end
  436.  
  437.   turtle.turnRight()
  438.  
  439.   if turtle.detectDown() == false then
  440.     turtle.select(3)
  441.     turtle.placeDown()
  442.   end
  443.  
  444.   if torchP == 10 then
  445.     turtle.turnLeft()
  446.     turtle.turnLeft()
  447.     turtle.select(2)
  448.     turtle.place()
  449.     turtle.turnLeft()
  450.     turtle.turnLeft()
  451.     torchP = 0
  452.   end
  453.  
  454.   layers = layers - 1
  455.   torchP = torchP + 1
  456.   backT = backT + 1
  457.  
  458.   end
  459. end
  460.  
  461. step1()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement