Advertisement
Kiliandeca

DecaMiner - Master Prog

Aug 5th, 2016
323
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 3.50 KB | None | 0 0
  1. rednet.open("right")
  2. colonnemax = 18
  3.  
  4. colonne = 0
  5. ligne = 0
  6. recup = false
  7. DistParc = 0
  8.  
  9. function placement()
  10.     turtle.dig()
  11.     turtle.digUp()
  12.     turtle.select(1)
  13.     turtle.placeUp()
  14.  
  15.     while turtle.suckUp() do
  16.         lancement()
  17.     end
  18.     turtle.digUp()
  19. end
  20.  
  21. function lancement()
  22.  
  23.     sleep(1)
  24.     data = turtle.getItemDetail()
  25.  
  26.     if data then
  27.         if data.name == "ComputerCraft:CC-Turtle" or data.name == "ComputerCraft:CC-TurtleExpanded" then
  28.             turtle.place()
  29.             peripheral.wrap("front").turnOn()
  30.             while turtle.detect() do
  31.                 rednet.broadcast({ligne, colonne}, "position")
  32.             end
  33.                    
  34.             colonne = colonne + 1
  35.  
  36.             if colonne >= colonnemax then
  37.                 colonne = 0
  38.                 ligne = ligne + 1
  39.    
  40.             end    
  41.         end
  42.     end
  43. end
  44.  
  45.  
  46. function mouvement(distance)
  47.  
  48.     turtle.digUp()
  49.  
  50.     while DistParc < distance do
  51.  
  52.         local success, data = turtle.inspect()
  53.        
  54.         if turtle.forward() then
  55.             DistParc = DistParc + 1
  56.  
  57.        
  58.         elseif data.name ~= "ComputerCraft:CC-Turtle" and data.name ~= "ComputerCraft:CC-TurtleExpanded" then
  59.  
  60.             turtle.dig()
  61.  
  62.         else
  63.  
  64.             turtle.attack()
  65.  
  66.         end
  67.        
  68.         sleep(0.5)     
  69.  
  70.     end
  71.  
  72.     DistParc = 0
  73.  
  74. end
  75.  
  76. function loot()
  77.     recup = false
  78.     turtle.select(2)
  79.     turtle.place()
  80.    
  81.     lootv = true
  82.  
  83.     while lootv do
  84.         lootloop()
  85.     end
  86.  
  87.     turtle.dig()
  88.  
  89. end
  90.  
  91.  
  92. function lootloop()
  93.     shell.run("clear")
  94.     print("Recuperation (r)")  
  95.     print("Stop loot (any other key)") 
  96.  
  97.         myTimer = os.startTimer(4)
  98.  
  99.     while true do
  100.  
  101.         event, par1 = os.pullEvent()
  102.  
  103.         if event == "timer" and par1 == myTimer then
  104.             shell.run("clear")         
  105.             print("Loot continue attendez !")
  106.            
  107.             for i = 1, 10 do
  108.                 if not recup then
  109.                     rednet.broadcast("l")
  110.                     sleep(0.5)
  111.                 else
  112.                                    
  113.                     while turtle.inspectUp() do
  114.  
  115.                         if redstone.getInput("top") then
  116.                             turtle.digUp()
  117.                         end
  118.  
  119.                         rednet.broadcast("l", "r")
  120.                         recupf()
  121.  
  122.                     end
  123.                    
  124.                     turtle.select(1)
  125.                     turtle.dig()
  126.                     turtle.up()
  127.                     turtle.forward()
  128.                     turtle.forward()
  129.                     shell.run("clear")
  130.                     print("Vous pouvez retirer le master")
  131.                     sleep(240)
  132.                    
  133.                 end
  134.             end
  135.             break
  136.            
  137.    
  138.         elseif event == "key" then
  139.             print("You pressed "..keys.getName(par1).."!")
  140.             if par1 == 19 then
  141.                 turtle.dig()
  142.                 turtle.forward()
  143.                 turtle.digDown()
  144.                 turtle.down()
  145.                 turtle.dig()
  146.                 turtle.forward()
  147.                 for i=3, 16 do
  148.                     turtle.select(i)
  149.                     turtle.drop()
  150.                 end
  151.                 turtle.turnRight()
  152.                 turtle.turnRight()
  153.                 turtle.select(1)
  154.                 turtle.place()
  155.                 recup = true
  156.  
  157.             else
  158.                 lootv = false
  159.             end
  160.  
  161.             break
  162.          end
  163.     end
  164.  
  165. end
  166.  
  167.  
  168. function recupf()
  169.  
  170.     turtle.select(1)
  171.     turtle.suckUp()
  172.     turtle.drop()
  173.     turtle.suckUp()
  174.     turtle.drop()
  175.     turtle.suckUp()
  176.     turtle.drop()
  177.  
  178. end
  179.  
  180. function config()
  181.     print("Entrez la longueur max de chaque ligne")
  182.     colonnemax = tonumber(io.read())
  183.  
  184. end
  185.  
  186. function menu()
  187.     shell.run("clear")
  188.     print("Menu")
  189.     print("Placement (p)")
  190.     print("Miner (m)")
  191.     print("Loot (l)")
  192.     print("Config (c)")
  193.  
  194.     input = io.read()
  195.  
  196.     if input == "p" then
  197.         placement()
  198.  
  199.     elseif input == "m" then
  200.         print("Distance")
  201.         distance = tonumber(io.read())
  202.         if type(distance) == "number" then
  203.  
  204.             while turtle.getFuelLevel() <= distance do
  205.                 print("You must add more fuel")
  206.                 sleep(5)
  207.                 turtle.select(3)
  208.                 turtle.refuel()
  209.             end
  210.  
  211.             rednet.broadcast(distance, "m")
  212.             mouvement(distance)
  213.         end
  214.     elseif input == "l" then
  215.         loot()
  216.  
  217.     elseif input == "c" then
  218.         config()   
  219.  
  220.     else
  221.         menu()
  222.     end
  223. end
  224.  
  225. while true do
  226.     menu()
  227. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement