Advertisement
TriiNoxYs

[ComputerCraft] ChunkDigger

Jul 6th, 2014
463
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 4.73 KB | None | 0 0
  1. -- Ce programme [cree pas TriiNoxYs] est libre de droits ;)
  2. -- Si vous le modifier/publiez/presentez/etc, SVP pensez a citer son auteur.
  3. -- Consultez tout les autres scripts de TriiNoxys sur le lien pastein.com/benjfn71
  4. -- Ou sur la page de TriiNoxYs: pastebin.com/u/TriiNoxYs
  5.  
  6. function saisieNombre()
  7.         input = read()
  8.         input = tonumber(input)
  9.  
  10.         while type(input) == "nil" do
  11.                 print("Nombre incorrect, recommencez. ")
  12.                 input = read()
  13.                 input = tonumber(input)
  14.         end
  15.         return input
  16. end
  17.  
  18. function safeForward()
  19.         succ = turtle.forward()
  20.        
  21.         while not succ do
  22.                 turtle.dig()
  23.                 succ = turtle.forward()
  24.         end
  25. end
  26.  
  27. function safeDown()
  28.         succ = turtle.down()
  29.        
  30.         while not succ do
  31.                 turtle.digDown()
  32.                 succ = turtle.down()
  33.         end
  34. end
  35.  
  36. function saisieSure(inf, sup)
  37.         inp = saisieNombre()
  38.        
  39.         while inp < inf or inp > sup do
  40.                 print("Nombre incorrect, recommencez. ")
  41.                 inp = saisieNombre()
  42.         end
  43.         return inp
  44. end
  45.  
  46. turtle.select(1)
  47.  
  48. print("Bienvenue dans le programme de minage")
  49. print()
  50. print("Vous allez devoir saisir differentes donnes avant de lancer le programme.")
  51. print()
  52. print("Combien de couches en Y voulez-vous creuser maximum ? [3, 81]")
  53. print("(pour eviter les mauvaises surprises, saisir un multiple de 3 [64->66])")
  54. nbCouches = saisieSure(3, 81)
  55.  
  56. print("Sachez que la turtle va miner la zone devant et/ou a droite d'elle a partir de la couche de dessous.")
  57.  
  58. print("Combien de blocs devant [+1] ? [6, 64]")
  59. nbX = saisieSure(6, 64)
  60.  
  61. print("Combien de blocs a droite ? [6, 64]")
  62. nbY = saisieSure(6, 64)
  63.  
  64. nbDepl = ((nbX * nbY)*((nbCouches+2)/3) + nbCouches)
  65. print()
  66. print("La turtle va faire env. "..nbDepl.." deplacements")
  67.  
  68. print()
  69.  
  70. nbDepl = nbDepl + 96
  71.  
  72. nbFuelActuel = turtle.getFuelLevel()
  73. nbFuelNecessaire = nbFuelActuel - nbDepl
  74.  
  75. while nbDepl - turtle.getFuelLevel() > 0 do
  76.         remain = nbDepl - turtle.getFuelLevel()
  77.         print("Veuillez placer "..(math.ceil(remain/80)).." coal/charcoal OU "..(math.ceil(remain/1000)).." lava cell dans le premier slot et valider par [entree]")
  78.         detect = read()
  79.        
  80.         if turtle.getItemCount(1) > 0 then
  81.                 turtle.refuel(turtle.getItemCount(1))
  82.         end
  83.        
  84. end
  85.  
  86. print()
  87. print()
  88. print("La turtle est prete e miner.")
  89. print("SAUF QUE.")
  90. print("Assurez vous de mettre un exemplaire des items a stocker en priorita dans les slots vides, le reste sera drop au sol !")
  91. print()
  92. print("Quand c'est fait, appuyez sur [Entree] pour demarrer le minage !")
  93.  
  94. detect = read()
  95.  
  96. coucheCurr = 0
  97. tripleCurr = 0
  98.  
  99. while nbCouches - coucheCurr > 0 do
  100.         turtle.digDown()
  101.         safeDown()
  102.         coucheCurr = coucheCurr + 1
  103.         turtle.digDown()
  104.         safeDown()
  105.         coucheCurr = coucheCurr + 1
  106.        
  107.         nbYCurr = 0
  108.        
  109.         while nbY-nbYCurr > 0 do
  110.                 nbXCurr = 0
  111.                 while nbX - nbXCurr > 0 do
  112.                         turtle.digDown()
  113.                         turtle.digUp()
  114.                        
  115.                         if nbX - nbXCurr > 1 then
  116.                                 while turtle.detect() do
  117.                                         turtle.dig()
  118.                                 end
  119.                         end
  120.                        
  121.                         safeForward()
  122.                         nbXCurr = nbXCurr + 1
  123.                        
  124.                 end
  125.                
  126.                 if nbY-nbYCurr > 1 then
  127.                         if ((nbYCurr+tripleCurr) % 2) == 0 then
  128.                                 turtle.turnRight()
  129.                         else
  130.                                 turtle.turnLeft()
  131.                         end
  132.                        
  133.                         while turtle.detect() do
  134.                                 turtle.dig()
  135.                         end
  136.                        
  137.                         safeForward()
  138.                        
  139.                         if ((nbYCurr+tripleCurr) % 2) == 0 then
  140.                                 turtle.turnRight()
  141.                         else
  142.                                 turtle.turnLeft()
  143.                         end
  144.                 end
  145.                 nbYCurr = nbYCurr + 1
  146.                
  147.         end
  148.        
  149.         turtle.digDown()
  150.         safeDown()
  151.        
  152.         if(tripleCurr % 2) == 1 then
  153.                 turtle.turnLeft()
  154.                 turtle.turnLeft()
  155.         else
  156.                 turtle.turnRight()
  157.                 turtle.turnRight()
  158.         end
  159.        
  160.         tripleCurr = tripleCurr + 1
  161.        
  162. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement