richie3366

Turtle : chunkdigger

Dec 10th, 2012
19,628
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 3.61 KB | None | 0 0
  1. -- Ce programme [créé par richie3366] est libre de droit d'édition et d'utilisation abusive ;)
  2. -- Cependant, si jamais vous venez à faire une présentation de celui-ci, n'hésitez pas à mentionner
  3. -- son auteur ;)
  4. -- Twitter : https://twitter.com/richie3366
  5.  
  6. -- Susceptible d'être modifié à tout moment pour amélioration et/ou réparation.
  7. -- Dernière édition : 13/07/2013
  8. -- Vidéo de présentation :
  9.  
  10. function saisieNombre()
  11.     input = read()
  12.     input = tonumber(input)
  13.  
  14.     while type(input) == "nil" do
  15.         print("Nombre incorrect, recommencez. ")
  16.         input = read()
  17.         input = tonumber(input)
  18.     end
  19.     return input
  20. end
  21.  
  22. function safeForward()
  23.     succ = turtle.forward()
  24.    
  25.     while not succ do
  26.         turtle.dig()
  27.         succ = turtle.forward()
  28.     end
  29. end
  30.  
  31. function safeDown()
  32.     succ = turtle.down()
  33.    
  34.     while not succ do
  35.         turtle.digDown()
  36.         succ = turtle.down()
  37.     end
  38. end
  39.  
  40. function saisieSure(inf, sup)
  41.     inp = saisieNombre()
  42.    
  43.     while inp < inf or inp > sup do
  44.         print("Nombre incorrect, recommencez. ")
  45.         inp = saisieNombre()
  46.     end
  47.     return inp
  48. end
  49.  
  50. turtle.select(1)
  51.  
  52. print("Bienvenue dans le programme de minage")
  53. print()
  54. print("Vous allez devoir saisir différentes données avant de lancer le programme.")
  55. print()
  56. print("Combien de couches en Y voulez-vous creuser maximum ? [3, 81]")
  57. print("(pour éviter les mauvaises surprises, saisir un multiple de 3 [64->66])")
  58. nbCouches = saisieSure(3, 81)
  59.  
  60. print("Sachez que la turtle va miner la zone devant/à droite d'elle à partir de la couche de dessous.")
  61.  
  62. print("Combien de blocs devant [+1] ? [6, 64]")
  63. nbX = saisieSure(6, 64)
  64.  
  65. print("Combien de blocs à droite ? [6, 64]")
  66. nbY = saisieSure(6, 64)
  67.  
  68. nbDepl = ((nbX * nbY)*((nbCouches+2)/3) + nbCouches)
  69. print()
  70. print("La turtle va faire env. "..nbDepl.." déplacements")
  71.  
  72. print()
  73.  
  74. nbDepl = nbDepl + 96
  75.  
  76. nbFuelActuel = turtle.getFuelLevel()
  77. nbFuelNecessaire = nbFuelActuel - nbDepl
  78.  
  79. while nbDepl - turtle.getFuelLevel() > 0 do
  80.     remain = nbDepl - turtle.getFuelLevel()
  81.     print("Veuillez placer "..(math.ceil(remain/80)).." coal/charcoal OU "..(math.ceil(remain/1000)).." lava cell dans le premier slot et valider par [entrée]")
  82.     detect = read()
  83.    
  84.     if turtle.getItemCount(1) > 0 then
  85.         turtle.refuel(turtle.getItemCount(1))
  86.     end
  87.    
  88. end
  89.  
  90. print()
  91. print()
  92. print("La turtle est prête à miner.")
  93. print("SAUF QUE.")
  94. print("Assurez vous de mettre un exemplaire des items à stocker en priorité dans les slots vides, le reste sera drop au sol !")
  95. print()
  96. print("Quand c'est fait, appuyez sur [Entrée] pour démarrer le minage !")
  97.  
  98. detect = read()
  99.  
  100. coucheCurr = 0
  101. tripleCurr = 0
  102.  
  103. while nbCouches - coucheCurr > 0 do
  104.     turtle.digDown()
  105.     safeDown()
  106.     coucheCurr = coucheCurr + 1
  107.     turtle.digDown()
  108.     safeDown()
  109.     coucheCurr = coucheCurr + 1
  110.    
  111.     nbYCurr = 0
  112.    
  113.     while nbY-nbYCurr > 0 do
  114.         nbXCurr = 0
  115.         while nbX - nbXCurr > 0 do
  116.             turtle.digDown()
  117.             turtle.digUp()
  118.            
  119.             if nbX - nbXCurr > 1 then
  120.                 while turtle.detect() do
  121.                     turtle.dig()
  122.                 end
  123.             end
  124.            
  125.             safeForward()
  126.             nbXCurr = nbXCurr + 1
  127.            
  128.         end
  129.        
  130.         if nbY-nbYCurr > 1 then
  131.             if ((nbYCurr+tripleCurr) % 2) == 0 then
  132.                 turtle.turnRight()
  133.             else
  134.                 turtle.turnLeft()
  135.             end
  136.            
  137.             while turtle.detect() do
  138.                 turtle.dig()
  139.             end
  140.            
  141.             safeForward()
  142.            
  143.             if ((nbYCurr+tripleCurr) % 2) == 0 then
  144.                 turtle.turnRight()
  145.             else
  146.                 turtle.turnLeft()
  147.             end
  148.         end
  149.         nbYCurr = nbYCurr + 1
  150.        
  151.     end
  152.    
  153.     turtle.digDown()
  154.     safeDown()
  155.    
  156.     if(tripleCurr % 2) == 1 then
  157.         turtle.turnLeft()
  158.         turtle.turnLeft()
  159.     else
  160.         turtle.turnRight()
  161.         turtle.turnRight()
  162.     end
  163.    
  164.     tripleCurr = tripleCurr + 1
  165.    
  166. end
Advertisement
Add Comment
Please, Sign In to add comment