Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local direction = 0 --direction
- local drapeauBedrock = false --indicateur pour savoir si on est arrivé à la bedrock
- local profondeur = 0 --indique de combien on a creusé
- local niveauFuelMini = 5 -- niveau de déplacements auquel on doit refaire le plein de fuel
- local niveauCharbonMini = 5 -- quantité de charbons restants à laquelle on doit refaire le plein de charbon
- local premierSlot = 4 -- premier slot où se trouve le minerai ramassé
- local dernierSlot = 13 -- dernier slot à surveiller pour enclencher le vidage de l'inventaire
- local enderchestSlot = 14 -- slot où se trouve l'enderchest pour les minerais
- local enderchestCharbonSlot = 15 -- slot où se trouve l'enderchest pour les minerais
- local charbonSlot = 16 -- slot ou est stocké le charbon
- -- fonction qui compare et mine, tourne à droite et direction++
- function compare_mine()
- local slot = 0
- local resultat = false
- for slot=1,3 do
- turtle.select(slot)
- if turtle.compare() or resultat then
- resultat = true
- end
- end
- if resultat == false then
- turtle.dig()
- if turtle.getItemCount(dernierSlot) > 0 then -- on vérifie si on doit vider l'inventaire de la tortue
- print("vidage inventaire comp_mine; prof "..profondeur.." ; nbitem ds slot "..dernierSlot.." : "..turtle.getItemCount(dernierSlot).." ; ")
- videInventaire()
- end
- end
- turtle.turnRight()
- direction=direction+1
- end
- function verifFuel() -- vérifie si on a assez de fuel (déplacements) en réserve.
- -- 1 charbon = 96 deplacements
- -- On vérifie le niveau de fuel
- local niveauFuel = turtle.getFuelLevel()
- if (niveauFuel ~= "unlimited") then
- if (niveauFuel < niveauFuelMini) then
- -- On a besoin de faire le plein
- turtle.select(charbonSlot)
- if turtle.getItemCount(charbonSlot) < niveauCharbonMini then
- rechargeCharbon() -- on refait le plein de charbon
- end
- turtle.refuel(1) -- on recharge pour 96 deplacements
- end
- end
- end
- function rechargeCharbon() -- permet de refaire le plein en charbon
- turtle.dig()
- if turtle.getItemCount(dernierSlot-1) > 0 then -- on vérifie si on doit vider l'inventaire de la tortue
- print("vidage inventaire rech_charbon1; prof "..profondeur.." ; nbitem ds slot "..dernierSlot.." : "..turtle.getItemCount(dernierSlot).." ; ")
- videInventaire()
- end
- turtle.select(enderchestCharbonSlot)
- turtle.place()
- turtle.select(charbonSlot)
- turtle.suck()
- turtle.select(enderchestCharbonSlot)
- turtle.dig()
- end
- function videInventaire()
- local slot
- turtle.select(enderchestSlot)
- turtle.place()
- for slot=premierSlot,dernierSlot do
- turtle.select(slot)
- while turtle.getItemCount(slot) > 0 do
- turtle.drop(turtle.getItemCount(slot))
- if turtle.getItemCount(slot) > 0 then
- sleep(0.5)
- end
- end
- end
- turtle.select(enderchestSlot)
- turtle.dig()
- end
- --********************************************--
- --********** Programme principal *************--
- --********************************************--
- verifFuel()
- turtle.digDown() --creuse le bloc dessous
- turtle.down() --descend d'un cran
- profondeur = profondeur+1
- verifFuel()
- while drapeauBedrock == false do
- -- ici, direction = 0
- while direction~=4 do
- --compare et mine, tourne à droite et direction++
- compare_mine()
- end
- direction=0
- if turtle.detectDown() == true then -- on vérifie si il y a un bloc en dessous
- if turtle.digDown() == false then -- si on n'arrive pas à creuser en dessous, alors c'est la bedrock
- drapeauBedrock = true -- donc je met le drapeau à true pour sortir de la boucle
- print("bedrock !")
- else
- if turtle.getItemCount(dernierSlot) > 0 then -- on vérifie si on doit vider l'inventaire de la tortue
- print("vidage inventaire princ1; prof "..profondeur.." ; nbitem ds slot "..dernierSlot.." : "..turtle.getItemCount(dernierSlot).." ; ")
- videInventaire()
- end
- turtle.down()
- profondeur = profondeur+1
- verifFuel()
- end
- else -- si il n'y a pas de bloc alors c'est de l'air, de l'eau ou de la lave
- turtle.down() -- alors on descend simplement (la tortue ne craint pas la lave ou l'eau) et on continue à miner
- profondeur = profondeur+1
- verifFuel()
- end
- end
- print("fin de la boucle "..profondeur)
- -- ici je remonte à la surface
- while profondeur ~= 0 do
- turtle.up()
- profondeur = profondeur-1
- verifFuel()
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement