Advertisement
Spytox

Cookie

Jan 22nd, 2025 (edited)
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 17.01 KB | Gaming | 0 0
  1. -- Fonction pour récupérer du charbon dans un coffre
  2. function refillCoal()
  3.     local coalSlot = 1 -- Slot où le charbon sera stocké
  4.     local maxCoal = 64 -- Quantité maximale de charbon souhaitée
  5.     turtle.select(coalSlot) -- Sélectionne le slot 1
  6.  
  7.     -- Boucle tant que le slot 1 n'a pas 64 items
  8.     while turtle.getItemCount(coalSlot) < maxCoal do
  9.         -- Essaie de retirer un stack de charbon depuis le coffre
  10.         local success = turtle.suck()
  11.  
  12.         if not success then
  13.             -- Si le coffre est vide, sortir de la boucle
  14.             print("Coffre vide ou pas de charbon disponible.")
  15.             break
  16.         end
  17.  
  18.         -- Vérifie si le slot contient du charbon
  19.         local itemDetail = turtle.getItemDetail(coalSlot)
  20.         if itemDetail and itemDetail.name ~= "minecraft:coal" then
  21.             print("Objet récupéré non conforme. Tentative de dépôt.")
  22.             -- Remet l'objet non désiré dans le coffre
  23.             turtle.drop()
  24.         end
  25.  
  26.         -- Si le slot atteint la quantité maximum, fin de la boucle
  27.         if turtle.getItemCount(coalSlot) >= maxCoal then
  28.             print("Slot 1 rempli à 64.")
  29.             break
  30.         end
  31.     end
  32.  
  33.     -- Message final
  34.     print("Remplissage du charbon terminé.")
  35. end
  36.  
  37. -- Fonction pour vérifier si le bloc en face de la tortue est un bloc de jungle log
  38. function isJungleLog()
  39.     -- Inspecte le bloc en face de la turtle
  40.     local success, data = turtle.inspect()
  41.    
  42.     -- Vérifie si l'inspection est réussie et si le bloc est un Jungle Log
  43.     if success and data.name == "minecraft:jungle_log" then
  44.         return true
  45.     else
  46.         return false
  47.     end
  48. end
  49.  
  50. -- Fonction pour vérifier si le bloc en face de la tortue est un coffre
  51. function isChest()
  52.     -- Inspecte le bloc en face de la turtle
  53.     local success, data = turtle.inspect()
  54.    
  55.     -- Vérifie si l'inspection est réussie et si le bloc est un coffre
  56.     if success and data.name == "minecraft:trapped_chest" then
  57.         return true
  58.     else
  59.         return false
  60.     end
  61. end
  62.  
  63. -- Fonction pour vérifier et recharger le carburant
  64. function checkAndRefuel()
  65.     -- Vérifie si le carburant est en dessous d'un seuil
  66.     if turtle.getFuelLevel() < 10 then
  67.         -- Parcourt les emplacements de l'inventaire pour trouver du carburant
  68.         for i = 1, 16 do
  69.             turtle.select(i) -- Sélectionne l'emplacement de l'inventaire
  70.             if turtle.refuel(0) then -- Vérifie si l'objet peut être utilisé comme carburant
  71.                 turtle.refuel() -- Recharge la tortue avec le carburant trouvé
  72.                 print("Carburant ajouté depuis l'emplacement " .. i)
  73.                 return
  74.             end
  75.         end
  76.         print("Attention : Pas assez de carburant et aucun carburant disponible !")
  77.     end
  78. end
  79.  
  80. -- Fonction pour réinitialiser la position de la tortue
  81. local function reinit()
  82.     checkAndRefuel() -- Vérifie le carburant avant chaque action
  83.     if isChest() then
  84.         return true
  85.     end
  86.     if isJungleLog() then
  87.         turtle.turnRight()
  88.         turtle.forward()
  89.         return true
  90.     else
  91.         turtle.turnRight()
  92.         for i = 1, 18 do
  93.             checkAndRefuel() -- Vérifie le carburant avant chaque déplacement
  94.             turtle.forward()
  95.         end
  96.         reinit()
  97.     end
  98.     return true
  99. end
  100.  
  101.  
  102. function depositCookies()
  103.     while true do
  104.         -- Vérifie si un coffre est présent devant
  105.         local success, data = turtle.inspect()
  106.         if not success or (data.name ~= "minecraft:chest" and data.name ~= "minecraft:trapped_chest") then
  107.             print("Pas de coffre détecté devant.")
  108.             return
  109.         end
  110.  
  111.         -- Initialise la variable pour vérifier si des cookies sont encore dans l'inventaire
  112.         local cookiesRemaining = false
  113.  
  114.         -- Parcourt l'inventaire pour déposer les cookies
  115.         for slot = 1, 16 do
  116.             turtle.select(slot) -- Sélectionne l'emplacement courant
  117.             local item = turtle.getItemDetail() -- Récupère les détails de l'objet dans le slot
  118.  
  119.             if item and item.name == "minecraft:cookie" then
  120.                 cookiesRemaining = true -- Il reste des cookies à déposer
  121.                 print("Tentative de dépôt des cookies du slot " .. slot .. "...")
  122.  
  123.                 if not turtle.drop() then
  124.                     -- Si le coffre est plein, attendre 5 minutes
  125.                     print("Coffre plein. Attente de 30 secondes avant de réessayer.")
  126.                     os.sleep(30) -- Attend 5 minutes
  127.                     break -- Sort de la boucle pour réessayer de déposer
  128.                 end
  129.             end
  130.         end
  131.  
  132.         -- Vérifie si des cookies restent dans l'inventaire après le dépôt
  133.         if cookiesRemaining then
  134.             -- Affiche un message et attend avant de réessayer
  135.             print("Il reste encore des cookies à déposer. Reprise dans 30 secondes.")
  136.             os.sleep(30) -- Attend encore 5 minutes avant de boucler
  137.         else
  138.             -- Si aucun cookie n'est trouvé, tout a été déposé
  139.             print("Tous les cookies ont été déposés avec succès.")
  140.             return
  141.         end
  142.     end
  143. end
  144.  
  145. -- Fonction pour récupérer des fèves de cacao et retourner la quantité dans le slot 6
  146. function refillCocoaBeans()
  147.     local cocoaSlot = 6 -- Slot cible pour les fèves de cacao
  148.     local maxCocoa = 64 -- Quantité maximale de fèves de cacao souhaitée
  149.     turtle.select(cocoaSlot) -- Sélectionne le slot 6
  150.  
  151.     -- Vérifie la quantité actuelle dans le slot
  152.     local currentCount = turtle.getItemCount(cocoaSlot)
  153.  
  154.     -- Si le slot est déjà plein, ne rien faire
  155.     if currentCount >= maxCocoa then
  156.         print("Le slot 6 est déjà rempli.")
  157.         return currentCount
  158.     end
  159.  
  160.     -- Calcule la quantité de fèves nécessaires
  161.     local neededCocoa = maxCocoa - currentCount
  162.  
  163.     -- Récupère uniquement la quantité nécessaire
  164.     local success = turtle.suck(neededCocoa)
  165.  
  166.     if not success then
  167.         print("Coffre vide ou pas assez de fèves de cacao disponibles.")
  168.     end
  169.  
  170.     -- Vérifie si l'objet dans le slot est bien des fèves de cacao
  171.     local itemDetail = turtle.getItemDetail(cocoaSlot)
  172.     if itemDetail and itemDetail.name ~= "minecraft:cocoa_beans" then
  173.         print("Objet récupéré non conforme. Tentative de dépôt.")
  174.         turtle.drop() -- Remet l'objet non désiré dans le coffre
  175.     end
  176.  
  177.     -- Retourne la quantité de fèves de cacao dans le slot 6
  178.     currentCount = turtle.getItemCount(cocoaSlot)
  179.     print("Quantité de fèves de cacao dans le slot 6 : " .. currentCount)
  180.     return currentCount
  181. end
  182.  
  183. -- Fonction pour récupérer du blé et retourner la quantité dans le slot demandé
  184. function refillWheat(slot)
  185.     local wheatSlot = slot -- Slot cible pour le blé
  186.     local maxWheat = 64 -- Quantité maximale de blé souhaitée
  187.     turtle.select(wheatSlot) -- Sélectionne le slot cible
  188.  
  189.     -- Vérifie la quantité actuelle dans le slot
  190.     local currentCount = turtle.getItemCount(wheatSlot)
  191.  
  192.     -- Si le slot est déjà plein, ne rien faire
  193.     if currentCount >= maxWheat then
  194.         print("Le slot " .. wheatSlot .. " est déjà rempli.")
  195.         return currentCount
  196.     end
  197.  
  198.     -- Calcule la quantité de blé nécessaire
  199.     local neededWheat = maxWheat - currentCount
  200.  
  201.     -- Récupère uniquement la quantité nécessaire
  202.     local success = turtle.suckUp(neededWheat)
  203.  
  204.     if not success then
  205.         print("Coffre vide ou pas assez de blé disponible.")
  206.     end
  207.  
  208.     -- Vérifie si l'objet dans le slot est bien du blé
  209.     local itemDetail = turtle.getItemDetail(wheatSlot)
  210.     if itemDetail and itemDetail.name ~= "minecraft:wheat" then
  211.         print("Objet récupéré non conforme. Tentative de dépôt.")
  212.         turtle.drop() -- Remet l'objet non désiré dans le coffre
  213.     end
  214.  
  215.     -- Retourne la quantité de blé dans le slot
  216.     currentCount = turtle.getItemCount(wheatSlot)
  217.     print("Quantité de blé dans le slot " .. wheatSlot .. " : " .. currentCount)
  218.     return currentCount
  219. end
  220.  
  221. -- Fonction pour crafter des cookies
  222. function craftCookies()
  223.     -- Vérifier les emplacements des ingrédients
  224.     local wheatSlot1 = 5
  225.     local cocoaSlot = 6
  226.     local wheatSlot2 = 7
  227.  
  228.     -- S'assurer que les matériaux sont en place
  229.     local wheat1 = turtle.getItemDetail(wheatSlot1)
  230.     local cocoa = turtle.getItemDetail(cocoaSlot)
  231.     local wheat2 = turtle.getItemDetail(wheatSlot2)
  232.  
  233.     if not wheat1 or wheat1.name ~= "minecraft:wheat" then
  234.         print("Pas de blé dans le slot 5.")
  235.         turtle.turnRight()
  236.         turtle.turnRight()
  237.         turtle.forward()
  238.         while(refillWheat(5) ~= 64) do
  239.             os.sleep(60)
  240.         end
  241.         turtle.turnRight()
  242.         turtle.turnRight()
  243.         turtle.forward()
  244.     end
  245.  
  246.     if not cocoa or cocoa.name ~= "minecraft:cocoa_beans" then
  247.         print("Pas de fèves de cacao dans le slot 6.")
  248.         turtle.turnRight()
  249.         turtle.turnRight()
  250.         turtle.forward()
  251.         turtle.turnLeft()
  252.         turtle.forward()
  253.         turtle.forward()
  254.         turtle.turnLeft()
  255.         if(refillCocoaBeans() == 64) then
  256.             turtle.turnLeft()
  257.             turtle.forward()
  258.             turtle.forward()
  259.             turtle.turnRight()
  260.             turtle.forward()
  261.         else --On va au premier coffre de cacaobeans
  262.             turtle.turnRight()
  263.             turtle.forward()
  264.             turtle.forward()
  265.             turtle.forward()
  266.             turtle.forward()
  267.             turtle.turnLeft()
  268.             if(refillCocoaBeans() == 64) then
  269.                 turtle.turnLeft()
  270.                 turtle.forward()
  271.                 turtle.forward()
  272.                 turtle.forward()
  273.                 turtle.forward()
  274.                 turtle.forward()
  275.                 turtle.forward()
  276.                 turtle.turnRight()
  277.                 turtle.forward()
  278.             else --On va au deuxième coffre de cacaobeans
  279.                 turtle.turnRight()
  280.                 turtle.forward()
  281.                 turtle.forward()
  282.                 turtle.forward()
  283.                 turtle.forward()
  284.                 turtle.turnLeft()
  285.                 if(refillCocoaBeans() == 64) then
  286.                     turtle.turnLeft()
  287.                     turtle.forward()
  288.                     turtle.forward()
  289.                     turtle.forward()
  290.                     turtle.forward()
  291.                     turtle.forward()
  292.                     turtle.forward()
  293.                     turtle.forward()
  294.                     turtle.forward()
  295.                     turtle.forward()
  296.                     turtle.forward()
  297.                     turtle.turnRight()
  298.                     turtle.forward()
  299.                 else --On va au troisième coffre de cacaobeans
  300.                     turtle.turnRight()
  301.                     turtle.forward()
  302.                     turtle.forward()
  303.                     turtle.forward()
  304.                     turtle.forward()
  305.                     turtle.turnLeft()
  306.                     if(refillCocoaBeans() == 64) then
  307.                         turtle.turnLeft()
  308.                         turtle.forward()
  309.                         turtle.forward()
  310.                         turtle.forward()
  311.                         turtle.forward()
  312.                         turtle.forward()
  313.                         turtle.forward()
  314.                         turtle.forward()
  315.                         turtle.forward()
  316.                         turtle.forward()
  317.                         turtle.forward()
  318.                         turtle.forward()
  319.                         turtle.forward()
  320.                         turtle.forward()
  321.                         turtle.forward()
  322.                         turtle.turnRight()
  323.                         turtle.forward()
  324.                     else --On va au quatrième coffre de cacaobeans
  325.                         turtle.turnRight()
  326.                         turtle.forward()
  327.                         turtle.forward()
  328.                         turtle.forward()
  329.                         turtle.forward()
  330.                         turtle.turnLeft()
  331.                         if(refillCocoaBeans() == 64) then
  332.                             turtle.turnLeft()
  333.                             turtle.forward()
  334.                             turtle.forward()
  335.                             turtle.forward()
  336.                             turtle.forward()
  337.                             turtle.forward()
  338.                             turtle.forward()
  339.                             turtle.forward()
  340.                             turtle.forward()
  341.                             turtle.forward()
  342.                             turtle.forward()
  343.                             turtle.forward()
  344.                             turtle.forward()
  345.                             turtle.forward()
  346.                             turtle.forward()
  347.                             turtle.forward()
  348.                             turtle.forward()
  349.                             turtle.forward()
  350.                             turtle.forward()
  351.                             turtle.turnRight()
  352.                             turtle.forward()
  353.                         else --On va au cinquième coffre de cacaobeans
  354.                             turtle.turnRight()
  355.                             turtle.forward()
  356.                             turtle.forward()
  357.                             turtle.forward()
  358.                             turtle.forward()
  359.                             turtle.turnLeft()
  360.                             if(refillCocoaBeans() > 0) then
  361.                                 turtle.turnLeft()
  362.                                 turtle.forward()
  363.                                 turtle.forward()
  364.                                 turtle.forward()
  365.                                 turtle.forward()
  366.                                 turtle.forward()
  367.                                 turtle.forward()
  368.                                 turtle.forward()
  369.                                 turtle.forward()
  370.                                 turtle.forward()
  371.                                 turtle.forward()
  372.                                 turtle.forward()
  373.                                 turtle.forward()
  374.                                 turtle.forward()
  375.                                 turtle.forward()
  376.                                 turtle.forward()
  377.                                 turtle.forward()
  378.                                 turtle.forward()
  379.                                 turtle.forward()
  380.                                 turtle.forward()
  381.                                 turtle.forward()
  382.                                 turtle.forward()
  383.                                 turtle.forward()
  384.                                 turtle.turnRight()
  385.                                 turtle.forward()
  386.                             else --On retourne au début et on attend
  387.                                 turtle.turnLeft()
  388.                                 turtle.forward()
  389.                                 turtle.forward()
  390.                                 turtle.forward()
  391.                                 turtle.forward()
  392.                                 turtle.forward()
  393.                                 turtle.forward()
  394.                                 turtle.forward()
  395.                                 turtle.forward()
  396.                                 turtle.forward()
  397.                                 turtle.forward()
  398.                                 turtle.forward()
  399.                                 turtle.forward()
  400.                                 turtle.forward()
  401.                                 turtle.forward()
  402.                                 turtle.forward()
  403.                                 turtle.forward()
  404.                                 turtle.forward()
  405.                                 turtle.forward()
  406.                                 turtle.forward()
  407.                                 turtle.forward()
  408.                                 turtle.forward()
  409.                                 turtle.forward()
  410.                                 turtle.turnRight()
  411.                                 turtle.forward()
  412.                                 os.sleep(60)
  413.                             end
  414.                         end
  415.                     end
  416.                 end
  417.             end
  418.         end
  419.     end
  420.  
  421.     if not wheat2 or wheat2.name ~= "minecraft:wheat" then
  422.         print("Pas de blé dans le slot 7.")
  423.         turtle.turnRight()
  424.         turtle.turnRight()
  425.         turtle.forward()
  426.         while(refillWheat(7) ~= 64) do
  427.             os.sleep(60)
  428.         end
  429.         turtle.turnRight()
  430.         turtle.turnRight()
  431.         turtle.forward()
  432.         return
  433.     end
  434.  
  435.     -- Crafter les cookies
  436.     print("Tentative de crafting...")
  437.     turtle.select(1)
  438.     if not turtle.drop() then
  439.         turtle.dropDown()
  440.     end
  441.  
  442.     local success = turtle.craft()
  443.  
  444.     if success then
  445.         print("Cookies craftés avec succès !")
  446.         turtle.turnLeft()
  447.         depositCookies()
  448.         turtle.turnRight()
  449.     else
  450.         print("Échec du crafting.")
  451.     end
  452. end
  453.  
  454. reinit()
  455. while true do
  456.     refillCoal()
  457.     craftCookies()
  458. end
  459.  
  460.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement