Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Fonction pour récupérer du charbon dans un coffre
- function refillCoal()
- local coalSlot = 1 -- Slot où le charbon sera stocké
- local maxCoal = 64 -- Quantité maximale de charbon souhaitée
- turtle.select(coalSlot) -- Sélectionne le slot 1
- -- Boucle tant que le slot 1 n'a pas 64 items
- while turtle.getItemCount(coalSlot) < maxCoal do
- -- Essaie de retirer un stack de charbon depuis le coffre
- local success = turtle.suck()
- if not success then
- -- Si le coffre est vide, sortir de la boucle
- print("Coffre vide ou pas de charbon disponible.")
- break
- end
- -- Vérifie si le slot contient du charbon
- local itemDetail = turtle.getItemDetail(coalSlot)
- if itemDetail and itemDetail.name ~= "minecraft:coal" then
- print("Objet récupéré non conforme. Tentative de dépôt.")
- -- Remet l'objet non désiré dans le coffre
- turtle.drop()
- end
- -- Si le slot atteint la quantité maximum, fin de la boucle
- if turtle.getItemCount(coalSlot) >= maxCoal then
- print("Slot 1 rempli à 64.")
- break
- end
- end
- -- Message final
- print("Remplissage du charbon terminé.")
- end
- -- Fonction pour vérifier si le bloc en face de la tortue est un bloc de jungle log
- function isJungleLog()
- -- Inspecte le bloc en face de la turtle
- local success, data = turtle.inspect()
- -- Vérifie si l'inspection est réussie et si le bloc est un Jungle Log
- if success and data.name == "minecraft:jungle_log" then
- return true
- else
- return false
- end
- end
- -- Fonction pour vérifier si le bloc en face de la tortue est un coffre
- function isChest()
- -- Inspecte le bloc en face de la turtle
- local success, data = turtle.inspect()
- -- Vérifie si l'inspection est réussie et si le bloc est un coffre
- if success and data.name == "minecraft:trapped_chest" then
- return true
- else
- return false
- end
- end
- -- Fonction pour vérifier et recharger le carburant
- function checkAndRefuel()
- -- Vérifie si le carburant est en dessous d'un seuil
- if turtle.getFuelLevel() < 10 then
- -- Parcourt les emplacements de l'inventaire pour trouver du carburant
- for i = 1, 16 do
- turtle.select(i) -- Sélectionne l'emplacement de l'inventaire
- if turtle.refuel(0) then -- Vérifie si l'objet peut être utilisé comme carburant
- turtle.refuel() -- Recharge la tortue avec le carburant trouvé
- print("Carburant ajouté depuis l'emplacement " .. i)
- return
- end
- end
- print("Attention : Pas assez de carburant et aucun carburant disponible !")
- end
- end
- -- Fonction pour réinitialiser la position de la tortue
- local function reinit()
- checkAndRefuel() -- Vérifie le carburant avant chaque action
- if isChest() then
- return true
- end
- if isJungleLog() then
- turtle.turnRight()
- turtle.forward()
- return true
- else
- turtle.turnRight()
- for i = 1, 18 do
- checkAndRefuel() -- Vérifie le carburant avant chaque déplacement
- turtle.forward()
- end
- reinit()
- end
- return true
- end
- function depositCookies()
- while true do
- -- Vérifie si un coffre est présent devant
- local success, data = turtle.inspect()
- if not success or (data.name ~= "minecraft:chest" and data.name ~= "minecraft:trapped_chest") then
- print("Pas de coffre détecté devant.")
- return
- end
- -- Initialise la variable pour vérifier si des cookies sont encore dans l'inventaire
- local cookiesRemaining = false
- -- Parcourt l'inventaire pour déposer les cookies
- for slot = 1, 16 do
- turtle.select(slot) -- Sélectionne l'emplacement courant
- local item = turtle.getItemDetail() -- Récupère les détails de l'objet dans le slot
- if item and item.name == "minecraft:cookie" then
- cookiesRemaining = true -- Il reste des cookies à déposer
- print("Tentative de dépôt des cookies du slot " .. slot .. "...")
- if not turtle.drop() then
- -- Si le coffre est plein, attendre 5 minutes
- print("Coffre plein. Attente de 30 secondes avant de réessayer.")
- os.sleep(30) -- Attend 5 minutes
- break -- Sort de la boucle pour réessayer de déposer
- end
- end
- end
- -- Vérifie si des cookies restent dans l'inventaire après le dépôt
- if cookiesRemaining then
- -- Affiche un message et attend avant de réessayer
- print("Il reste encore des cookies à déposer. Reprise dans 30 secondes.")
- os.sleep(30) -- Attend encore 5 minutes avant de boucler
- else
- -- Si aucun cookie n'est trouvé, tout a été déposé
- print("Tous les cookies ont été déposés avec succès.")
- return
- end
- end
- end
- -- Fonction pour récupérer des fèves de cacao et retourner la quantité dans le slot 6
- function refillCocoaBeans()
- local cocoaSlot = 6 -- Slot cible pour les fèves de cacao
- local maxCocoa = 64 -- Quantité maximale de fèves de cacao souhaitée
- turtle.select(cocoaSlot) -- Sélectionne le slot 6
- -- Vérifie la quantité actuelle dans le slot
- local currentCount = turtle.getItemCount(cocoaSlot)
- -- Si le slot est déjà plein, ne rien faire
- if currentCount >= maxCocoa then
- print("Le slot 6 est déjà rempli.")
- return currentCount
- end
- -- Calcule la quantité de fèves nécessaires
- local neededCocoa = maxCocoa - currentCount
- -- Récupère uniquement la quantité nécessaire
- local success = turtle.suck(neededCocoa)
- if not success then
- print("Coffre vide ou pas assez de fèves de cacao disponibles.")
- end
- -- Vérifie si l'objet dans le slot est bien des fèves de cacao
- local itemDetail = turtle.getItemDetail(cocoaSlot)
- if itemDetail and itemDetail.name ~= "minecraft:cocoa_beans" then
- print("Objet récupéré non conforme. Tentative de dépôt.")
- turtle.drop() -- Remet l'objet non désiré dans le coffre
- end
- -- Retourne la quantité de fèves de cacao dans le slot 6
- currentCount = turtle.getItemCount(cocoaSlot)
- print("Quantité de fèves de cacao dans le slot 6 : " .. currentCount)
- return currentCount
- end
- -- Fonction pour récupérer du blé et retourner la quantité dans le slot demandé
- function refillWheat(slot)
- local wheatSlot = slot -- Slot cible pour le blé
- local maxWheat = 64 -- Quantité maximale de blé souhaitée
- turtle.select(wheatSlot) -- Sélectionne le slot cible
- -- Vérifie la quantité actuelle dans le slot
- local currentCount = turtle.getItemCount(wheatSlot)
- -- Si le slot est déjà plein, ne rien faire
- if currentCount >= maxWheat then
- print("Le slot " .. wheatSlot .. " est déjà rempli.")
- return currentCount
- end
- -- Calcule la quantité de blé nécessaire
- local neededWheat = maxWheat - currentCount
- -- Récupère uniquement la quantité nécessaire
- local success = turtle.suckUp(neededWheat)
- if not success then
- print("Coffre vide ou pas assez de blé disponible.")
- end
- -- Vérifie si l'objet dans le slot est bien du blé
- local itemDetail = turtle.getItemDetail(wheatSlot)
- if itemDetail and itemDetail.name ~= "minecraft:wheat" then
- print("Objet récupéré non conforme. Tentative de dépôt.")
- turtle.drop() -- Remet l'objet non désiré dans le coffre
- end
- -- Retourne la quantité de blé dans le slot
- currentCount = turtle.getItemCount(wheatSlot)
- print("Quantité de blé dans le slot " .. wheatSlot .. " : " .. currentCount)
- return currentCount
- end
- -- Fonction pour crafter des cookies
- function craftCookies()
- -- Vérifier les emplacements des ingrédients
- local wheatSlot1 = 5
- local cocoaSlot = 6
- local wheatSlot2 = 7
- -- S'assurer que les matériaux sont en place
- local wheat1 = turtle.getItemDetail(wheatSlot1)
- local cocoa = turtle.getItemDetail(cocoaSlot)
- local wheat2 = turtle.getItemDetail(wheatSlot2)
- if not wheat1 or wheat1.name ~= "minecraft:wheat" then
- print("Pas de blé dans le slot 5.")
- turtle.turnRight()
- turtle.turnRight()
- turtle.forward()
- while(refillWheat(5) ~= 64) do
- os.sleep(60)
- end
- turtle.turnRight()
- turtle.turnRight()
- turtle.forward()
- end
- if not cocoa or cocoa.name ~= "minecraft:cocoa_beans" then
- print("Pas de fèves de cacao dans le slot 6.")
- turtle.turnRight()
- turtle.turnRight()
- turtle.forward()
- turtle.turnLeft()
- turtle.forward()
- turtle.forward()
- turtle.turnLeft()
- if(refillCocoaBeans() == 64) then
- turtle.turnLeft()
- turtle.forward()
- turtle.forward()
- turtle.turnRight()
- turtle.forward()
- else --On va au premier coffre de cacaobeans
- turtle.turnRight()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.turnLeft()
- if(refillCocoaBeans() == 64) then
- turtle.turnLeft()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.turnRight()
- turtle.forward()
- else --On va au deuxième coffre de cacaobeans
- turtle.turnRight()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.turnLeft()
- if(refillCocoaBeans() == 64) then
- turtle.turnLeft()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.turnRight()
- turtle.forward()
- else --On va au troisième coffre de cacaobeans
- turtle.turnRight()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.turnLeft()
- if(refillCocoaBeans() == 64) then
- turtle.turnLeft()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.turnRight()
- turtle.forward()
- else --On va au quatrième coffre de cacaobeans
- turtle.turnRight()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.turnLeft()
- if(refillCocoaBeans() == 64) then
- turtle.turnLeft()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.turnRight()
- turtle.forward()
- else --On va au cinquième coffre de cacaobeans
- turtle.turnRight()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.turnLeft()
- if(refillCocoaBeans() > 0) then
- turtle.turnLeft()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.turnRight()
- turtle.forward()
- else --On retourne au début et on attend
- turtle.turnLeft()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.forward()
- turtle.turnRight()
- turtle.forward()
- os.sleep(60)
- end
- end
- end
- end
- end
- end
- end
- if not wheat2 or wheat2.name ~= "minecraft:wheat" then
- print("Pas de blé dans le slot 7.")
- turtle.turnRight()
- turtle.turnRight()
- turtle.forward()
- while(refillWheat(7) ~= 64) do
- os.sleep(60)
- end
- turtle.turnRight()
- turtle.turnRight()
- turtle.forward()
- return
- end
- -- Crafter les cookies
- print("Tentative de crafting...")
- turtle.select(1)
- if not turtle.drop() then
- turtle.dropDown()
- end
- local success = turtle.craft()
- if success then
- print("Cookies craftés avec succès !")
- turtle.turnLeft()
- depositCookies()
- turtle.turnRight()
- else
- print("Échec du crafting.")
- end
- end
- reinit()
- while true do
- refillCoal()
- craftCookies()
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement