elicolh

Untitled

Feb 18th, 2020
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 4.56 KB | None | 0 0
  1. function saisieNombre()
  2.         input = read()
  3.         input = tonumber(input)
  4.         while type(input) == "nil" do
  5.                 print("Nombre incorrect, recommencez. ")
  6.                 input = read()
  7.                 input = tonumber(input)
  8.         end
  9.         return input
  10. end
  11.  
  12. function safeForward()
  13.         succ = turtle.forward()
  14.        
  15.         while not succ do
  16.                 turtle.dig()
  17.                 succ = turtle.forward()
  18.         end
  19. end
  20.  
  21. function safeDown()
  22.         succ = turtle.down()
  23.        
  24.         while not succ do
  25.                 turtle.digDown()
  26.                 succ = turtle.down()
  27.         end
  28. end
  29.  
  30. function saisieSure(inf, sup)
  31.         inp = saisieNombre()
  32.        
  33.         while inp < inf or inp > sup do
  34.                 print("Nombre incorrect, recommencez. ")
  35.                 inp = saisieNombre()
  36.         end
  37.         return inp
  38. end
  39.  
  40. turtle.select(1)
  41.  
  42. print("Bienvenue dans le programme de minage")
  43. print()
  44. print("Vous allez devoir saisir différentes données avant de lancer le programme.")
  45. print()
  46. print("Combien de couches en Y voulez-vous creuser maximum ? [3, 81]")
  47. print("(pour éviter les mauvaises surprises, saisir un multiple de 3 [64->66])")
  48. nbCouches = saisieSure(3, 81)
  49.  
  50. print("Sachez que la turtle va miner la zone devant/à droite d'elle à partir de la couche de dessous.")
  51.  
  52. print("Combien de blocs devant [+1] ? [6, 64]")
  53. nbX = saisieSure(6, 64)
  54.  
  55. print("Combien de blocs à droite ? [6, 64]")
  56. nbY = saisieSure(6, 64)
  57.  
  58. nbDepl = ((nbX * nbY)*((nbCouches+2)/3) + nbCouches)
  59. print()
  60. print("La turtle va faire env. "..nbDepl.." déplacements")
  61.  
  62. print()
  63.  
  64. nbDepl = nbDepl + 96
  65.  
  66. nbFuelActuel = turtle.getFuelLevel()
  67. nbFuelNecessaire = nbFuelActuel - nbDepl
  68.  
  69. while nbDepl - turtle.getFuelLevel() > 0 do
  70.         remain = nbDepl - turtle.getFuelLevel()
  71.         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]")
  72.         detect = read()
  73.        
  74.         if turtle.getItemCount(1) > 0 then
  75.                 turtle.refuel(turtle.getItemCount(1))
  76.         end
  77.        
  78. end
  79.  
  80. print()
  81. print()
  82. print("La turtle est prête à miner.")
  83. print("[enter]")
  84. detect = read()
  85.  
  86. coucheCurr = 0
  87. tripleCurr = 0
  88.  
  89. while nbCouches - coucheCurr > 0 do
  90.         turtle.digDown()
  91.         safeDown()
  92.         coucheCurr = coucheCurr + 1
  93.         turtle.digDown()
  94.         safeDown()
  95.         coucheCurr = coucheCurr + 1
  96.        
  97.         nbYCurr = 0
  98.        
  99.         while nbY-nbYCurr > 0 do
  100.                 nbXCurr = 0
  101.                 while nbX - nbXCurr > 0 do
  102.                         turtle.digDown()
  103.                         turtle.digUp()
  104.                        
  105.                         if nbX - nbXCurr > 1 then
  106.                                 while turtle.detect() do
  107.                                         turtle.dig()
  108.                                 end
  109.                         end
  110.                        
  111.                         safeForward()
  112.                         nbXCurr = nbXCurr + 1
  113.                         slot = 0
  114.                         while slot ~= 16 do
  115.                             slot = slot + 1
  116.                             turtle.select(slot)
  117.                             c = turtle.getItemDetail()
  118.                             if  c then
  119.                                 if c.name == "minecraft:stone" or c.name == "minecraft:dirt" or c.name == "minecraft:cobblestone" then
  120.                                     turtle.drop()
  121.                                 end
  122.                             end
  123.                         end
  124.                        
  125.                 end
  126.                
  127.                 if nbY-nbYCurr > 1 then
  128.                         if ((nbYCurr+tripleCurr) % 2) == 0 then
  129.                                 turtle.turnRight()
  130.                         else
  131.                                 turtle.turnLeft()
  132.                         end
  133.                        
  134.                         while turtle.detect() do
  135.                                 turtle.dig()
  136.                         end
  137.                        
  138.                         safeForward()
  139.                        
  140.                         if ((nbYCurr+tripleCurr) % 2) == 0 then
  141.                                 turtle.turnRight()
  142.                         else
  143.                                 turtle.turnLeft()
  144.                         end
  145.                 end
  146.                 nbYCurr = nbYCurr + 1
  147.                
  148.         end
  149.        
  150.         turtle.digDown()
  151.         safeDown()
  152.        
  153.         if(tripleCurr % 2) == 1 then
  154.                 turtle.turnLeft()
  155.                 turtle.turnLeft()
  156.         else
  157.                 turtle.turnRight()
  158.                 turtle.turnRight()
  159.         end
  160.        
  161.         tripleCurr = tripleCurr + 1
  162.        
  163. end
Add Comment
Please, Sign In to add comment