Advertisement
RLPGhost

Minage Tunnel v1.1

Feb 4th, 2015
204
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 3.61 KB | None | 0 0
  1. -- Programme de Minage en tunnel sur le nombre de blocks voulu
  2. -- http://pastebin.com/NVditKiY
  3.  
  4. -- fonction refuel
  5.  
  6. local charbonSlot = 16
  7. local touchSlot = 15
  8. local idChannel = 123
  9.  
  10. local niveauFuelMini = 5          -- niveau de déplacements auquel on doit refaire le plein de fuel
  11. local niveauCharbonMini = 5
  12.  
  13. local premierSlot = 1             -- foction inventaire
  14. local dernierSlot = 13
  15. local thermalChestSlot = 14
  16.  
  17.  
  18. function verifFuel()              -- vérifie si on a assez de fuel (déplacements) en réserve.
  19.   -- 1 charbon = 96 deplacements
  20.   -- On vérifie le niveau de fuel
  21.         local niveauFuel = turtle.getFuelLevel()
  22.         if (niveauFuel ~= "unlimited") then
  23.                 if (niveauFuel < niveauFuelMini) then
  24.                         -- On a besoin de faire le plein
  25.                         turtle.select(charbonSlot)
  26.                         turtle.refuel(1) -- on recharge pour 96 deplacements
  27.                 end
  28.         end
  29. end
  30.  
  31. function mineDevant()
  32.     if turtle.detect() then turtle.dig() end
  33. end
  34.  
  35. function mineHautBas()
  36.     if turtle.detectUp() then turtle.digUp() end
  37.     if turtle.detectDown() then turtle.digDown() end
  38. end
  39.  
  40. function videInventaire()   -- if turtle.getItemCount(dernierSlot) > 0
  41.  
  42.         local slot
  43.         if turtle.detectDown() then turtle.digDown() end
  44.         turtle.select(thermalChestSlot)
  45.         turtle.placeDown()
  46.         for slot=premierSlot,dernierSlot do
  47.                 turtle.select(slot)
  48.                 while turtle.getItemCount(slot) > 0 do
  49.                         turtle.dropDown(turtle.getItemCount(slot))
  50.                         if turtle.getItemCount(slot) > 0 then
  51.                                 sleep(0.5)
  52.                         end
  53.                 end
  54.         end
  55.  
  56.         turtle.select(thermalChestSlot)
  57.         turtle.digDown()
  58. end
  59.  
  60. function turn(Str)
  61.     if Str == "G" then turtle.turnLeft()
  62.     else turtle.turnRight()
  63.     end
  64. end
  65.  
  66.  
  67.  
  68. --********************************************--
  69. --********** Programme principal *************--
  70. --********************************************--
  71.  
  72. print("Entrez la dimensions du Tunnel a miner ?")
  73. print("")
  74. print("Longueur : ")
  75. longueur = tonumber(read())
  76.  
  77. print("Entrez le nombre de Puit a miner ?")
  78. print("")
  79. print("Puit : ")
  80. puit = tonumber(read())
  81.  
  82. print("Je Tourne a Gauche ou a Droite en sortant d'un Puit?")
  83. print("")
  84. print("G ou D : ")
  85. result = read()
  86.  
  87. if(result=="G") then
  88.     print("Appuyez sur [ENTREE] pour commencer !")
  89.     print("!! Noubliez pas le charbon , les torches et le coffre  !!")
  90.     read()
  91. elseif (result=="D") then
  92.     print("Appuyez sur [ENTREE] pour commencer !")
  93.     print("!! Noubliez pas le charbon , les torches et le coffre  !!")
  94.     read()
  95. else
  96.     print("Vous devez écrire G ou D :")
  97.     result = read()
  98. end
  99.  
  100. -- Début du minage
  101.  
  102. local p=1
  103. while p<=puit do -- Minage des puits
  104.  
  105.  
  106.     local l=1
  107.     while l<=longueur do
  108.         print("rentre dans boucle: "..l)
  109.         mineDevant()
  110.         verifFuel()
  111.         turtle.forward()
  112.         mineHautBas()
  113.         if turtle.getItemCount(dernierSlot) > 0 then videInventaire() end
  114.         l = l+1
  115.     end
  116.  
  117.     -- Fin du tunnel , debut de retour
  118.  
  119.     turtle.turnRight()
  120.     turtle.turnRight()
  121.  
  122.     -- demi-tour fait et revient
  123.  
  124.     turtle.select(touchSlot)
  125.     turtle.placeDown()
  126.  
  127.     l=1
  128.     local t=1
  129.     while l<=longueur do
  130.         verifFuel()
  131.         mineDevant()
  132.         turtle.forward()
  133.         l = l+1
  134.         t = t+1
  135.         if t>8 then
  136.                 turtle.select(touchSlot)
  137.                 turtle.placeDown()
  138.                 t=0
  139.         end
  140.     end
  141.    
  142.     p = p+1
  143.     turn(result)
  144.     turtle.forward()
  145.     turtle.forward()
  146.     turtle.forward()
  147.     turn(result)
  148.    
  149. end
  150.  
  151. videInventaire()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement