ledondegrelle

Tunel

Feb 17th, 2020
166
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.26 KB | None | 0 0
  1. local direction = 0 -- direction
  2. local drapeauBedrock = false -- indicateur pour savoir si on est arrivé à la bedrock
  3. local profondeur = 0 -- indique de combien on a creusé
  4. local niveauFuelMini = 15 -- niveau de déplacements auquel on doit refaire le plein de fuel
  5. local niveauCharbonMini = 5 -- quantité de charbons restants à laquelle on doit refaire le plein de charbon
  6.  
  7. local premierSlot = 4 -- premier slot où se trouve le minerai ramassé
  8. local dernierSlot = 13 -- dernier slot à surveiller pour enclencher le vidage de l'inventaire
  9. local enderchestSlot = 14 -- slot où se trouve l'enderchest pour les minerais
  10. local enderchestCharbonSlot = 15 -- slot où se trouve l'enderchest pour le charbon
  11. local charbonSlot = 16 -- slot ou est stocké le charbon
  12.  
  13.  
  14. function compare_mine() -- fonction qui compare et mine, tourne à droite et direction++
  15.  
  16. local slot = 0
  17. for slot=1,3 do
  18. turtle.select(slot)
  19. if turtle.compare() then
  20. return false
  21. end
  22. end
  23. return true
  24. end
  25.  
  26.  
  27. function verifFuel() -- vérifie si on a assez de fuel (déplacements) en réserve.
  28. -- 1 charbon = 80 deplacements; on vérifie le niveau de fuel
  29.  
  30. if (turtle.getFuelLevel() < niveauFuelMini) then -- On a besoin de faire le plein
  31. if (turtle.getItemCount(charbonSlot) < niveauCharbonMini) then
  32. if turtle.dig() == false then -- si on n'arrive pas à creuser, alors c'est la bedrock
  33. print("bedrock !")
  34. end
  35. videInventaire()
  36. turtle.select(enderchestCharbonSlot)
  37. turtle.place()
  38. turtle.select(charbonSlot)
  39. turtle.suck()
  40. turtle.select(enderchestCharbonSlot)
  41. turtle.dig()
  42. end
  43. turtle.select(charbonSlot)
  44. turtle.refuel(1) -- on recharge pour 96 deplacements
  45. end
  46.  
  47. end
  48.  
  49. function videInventaire() -- vide l'inventaire de la tortue dans l'enderchest dédié à ça
  50.  
  51.  
  52. if (turtle.getItemCount(dernierSlot-1) > 0) then -- on vérifie si on doit vider l'inventaire de la tortue
  53. print("vidage inventaire rech_charbon1; prof "..profondeur.." ; nbitem ds slot "..dernierSlot.." : "..turtle.getItemCount(dernierSlot).." ; ")
  54. if turtle.dig() == false then -- si on n'arrive pas à creuser, alors c'est la bedrock
  55. print("bedrock !")
  56. end
  57. local slot
  58. turtle.select(enderchestSlot)
  59. turtle.place()
  60. for slot=premierSlot,dernierSlot do
  61. turtle.select(slot)
  62. while turtle.getItemCount(slot) > 0 do
  63. turtle.drop(turtle.getItemCount(slot))
  64. if turtle.getItemCount(slot) > 0 then
  65. sleep(0.5)
  66. end
  67. end
  68. end
  69. turtle.select(enderchestSlot)
  70. turtle.dig()
  71. end
  72.  
  73. end
  74.  
  75. --********************************************--
  76. --********** Programme principal *************--
  77. --********************************************--
  78.  
  79. local nbtrou = 1
  80.  
  81. while nbtrou~=0 do
  82.  
  83. drapeauBedrock = false --avant tout, on reset ce flag
  84. profondeur = 0
  85.  
  86. while drapeauBedrock == false do
  87. print("profondeur :"..profondeur)
  88.  
  89. if turtle.detectDown() == true then -- on vérifie si il y a un bloc en dessous
  90. if turtle.digDown() == false then -- si on n'arrive pas à creuser en dessous, alors c'est la bedrock
  91. drapeauBedrock = true
  92. else
  93. sleep(0.1)
  94. turtle.down() --descend d'un cran
  95. profondeur = profondeur+1
  96. verifFuel()
  97.  
  98. direction=0
  99. while direction~=4 do
  100. if compare_mine() then
  101. turtle.dig()
  102. videInventaire()
  103. end
  104. turtle.turnRight()
  105. direction = direction +1
  106. end
  107. end
  108. else
  109. turtle.down() --sinon on descend simplement
  110. profondeur = profondeur+1
  111. end
  112. end
  113.  
  114. print("fin de la boucle "..profondeur)
  115. -- ici je remonte à la surface
  116. while profondeur ~= 0 do
  117. turtle.digUp()
  118. turtle.up()
  119. profondeur = profondeur-1
  120. verifFuel()
  121. end
  122.  
  123. turtle.turnRight()
  124. turtle.dig()
  125. turtle.forward()
  126. turtle.dig()
  127. turtle.forward()
  128. turtle.dig()
  129. turtle.forward()
  130. turtle.turnLeft()
  131. nbtrou = nbtrou-1
  132. end
Advertisement
Add Comment
Please, Sign In to add comment