108 lines
6.0 KiB
Markdown
108 lines
6.0 KiB
Markdown
# EGGS-107 — Naissances en œufs et récupération des générateurs
|
||
|
||
Branche `codex/eggs-beta107`. Travail isolé du chantier Statuaire beta.106.
|
||
Base vérifiée : sources de la livraison beta.105. État : livré localement, vérifié ; aucun déploiement ni publication.
|
||
|
||
## Contrat
|
||
|
||
Dans les mondes où Sanctuary est actif, une reproduction réussie remet un
|
||
œuf natif de l'espèce au sol au lieu d'ajouter directement le nouveau mob.
|
||
L'enfant est calculé par Minecraft : croisements, variantes, propriétaire et
|
||
caractéristiques héritées sont conservés. Les délais, nourriture, statistiques
|
||
et progrès restent ceux de la reproduction native. L'œuf d'un animal qui a un
|
||
stade bébé fait naître un bébé, y compris avec un distributeur.
|
||
|
||
Grenouille : œuf de têtard, pour conserver son cycle naturel. Tortue et sniffer :
|
||
œuf d'apparition de bébé à la place de la ponte. Allay : duplication contre
|
||
améthyste et musique, avec le délai natif conservé. Villageois : nourriture et
|
||
lit libre restent requis ; le lit réservé est libéré tant que l'œuf est stocké.
|
||
|
||
Un générateur classique réellement cassé par un joueur en survie, avec un outil
|
||
adapté sans Toucher de soie, remet un seul œuf correspondant à son prochain mob
|
||
configuré. Fortune ne multiplie pas ce résultat. Ni explosion, ni annulation de
|
||
casse, ni mode créatif ne produisent cet œuf. Les générateurs d'épreuves ne sont
|
||
pas transformés en source d'œufs par cette règle.
|
||
|
||
Les identifiants natifs des items restent inchangés. Les données de naissance
|
||
utilisent les composants d'item natifs ENTITY_DATA et CUSTOM_DATA ; aucune
|
||
migration de sauvegarde, régénération ou ouverture de monde personnel.
|
||
Les naissances et pontes déjà présentes restent en place. Aucune modification
|
||
hors des mondes Sanctuary ; un œuf déjà obtenu garde ses données de naissance.
|
||
|
||
Un catalogue distinct des 88 espèces sépare les voies livrées des propositions
|
||
à valider. Les méthodes spéciales restantes ne sont pas annoncées comme livrées.
|
||
|
||
## Catalogue
|
||
|
||
[Les 88 espèces et leurs voies](spawn-eggs-catalogue-beta107.md) : 28 par
|
||
reproduction ou duplication, 7 par les générateurs classiques vanilla et
|
||
53 propositions. Réponse du créateur : **catalogue à valider d’abord**.
|
||
Aucune des 53 propositions n’est implémentée dans ce ticket.
|
||
|
||
## Vérifications natives
|
||
|
||
Nouveau monde de test plat, graine `107`, Minecraft 26.3 / Fabric 0.160.5+26.3,
|
||
Java 25, macOS. Le test utilise le vrai client et son serveur intégré :
|
||
|
||
- Naissance native de 22 espèces via `Animal.spawnChildFromBreeding` : un seul
|
||
œuf, aucun enfant vivant ajouté, âge de bébé stocké, délai des deux parents.
|
||
- Cheval × âne → mule ; moutons rouge × bleu → bébé violet, à la pose et au clic
|
||
sur un adulte ; loup apprivoisé → bébé encore lié au même propriétaire.
|
||
- Sérialisation/relecture de l’item avec le codec natif ; position, UUID et
|
||
réservations de cerveau absents ; éclosion en survie consomme un œuf.
|
||
- Vrai comportement de distributeur : bébé et couleur héritée.
|
||
- Grenouille sans seconde ponte, tortue sans état de ponte, renifleur sans œuf
|
||
bloc supplémentaire ; allay avec délai conservé ; villageois avec résultat
|
||
vide pour que l’appelant rende le lit réservé, bébé à l’éclosion.
|
||
- Existence native des 88 œufs ; destruction réelle d’un générateur par le
|
||
contrôleur joueur avec pioche normale/Fortune/Toucher de soie, main vide,
|
||
créatif et règle de drops de blocs désactivée.
|
||
- Deuxième monde neuf, Sanctuary désactivé à la création : bébé de vache vivant,
|
||
aucun œuf et générateurs sans nouveau butin.
|
||
|
||
Les appels natifs de naissance sont testés directement ; il ne s’agit pas d’un
|
||
élevage de chaque espèce laissé tourner pendant plusieurs minutes. Les tests
|
||
n’effectuent pas de parcours complet de raid, donjon ou guérison : ces voies
|
||
spéciales sont des propositions. Aucun monde personnel modifié.
|
||
|
||
## Binaire et distribution
|
||
|
||
`./gradlew check build assemblePack assembleTestPack -x :sanctuary:runGameTest`
|
||
réussit : **125 tâches, 3 min 44 s**. Le serveur GameTest dédié reste exclu,
|
||
l’acceptation de son EULA n’étant pas autorisée. Les tests natifs ci-dessus
|
||
utilisent le serveur intégré ; dernier passage **29 s**, marqueur
|
||
`EGGS107_NATIVE_PASS`, après les derniers changements de code.
|
||
|
||
Commande des essais :
|
||
|
||
```sh
|
||
./gradlew :sanctuary:runClientGameTest -PsanctuaryClientTests=true \
|
||
-PsanctuaryEggs107ClientTests=true -PsanctuaryClientNoVsync=true \
|
||
-PsanctuaryQuickTests=true
|
||
```
|
||
|
||
L’assemblage et les essais se font dans le worktree voisin
|
||
`sanctuary-eggs-beta107`, branche `codex/eggs-beta107`, sur les sources vérifiées
|
||
de beta.105. Les changements propres aux œufs sont aussi intégrés au répertoire
|
||
principal sans réécrire le code ni les compteurs en cours du chantier beta.106.
|
||
**Ces archives ne contiennent pas le Statuaire beta.106 en cours de validation.**
|
||
Les compteurs du worktree et du pack livré sont tous `beta.107`.
|
||
|
||
Comparaison binaire avec beta.105 : neuf classes ajoutées, aucune ancienne classe
|
||
modifiée. Les seules ressources graphiques/données différentes sont les deux
|
||
fichiers de langue FR/EN, avec deux nouveaux libellés ; le pack de textures,
|
||
les recettes et la génération restent byte pour byte identiques. Les mixins
|
||
ajoutés figurent dans le manifeste. Sources/JAR, ZIP, versions, dépendances,
|
||
88 lignes uniques du catalogue et empreintes sont vérifiés.
|
||
|
||
- [Pack normal](../build/Sanctuary-beta.107.mrpack) — SHA-256
|
||
`1b92c5abcc07be9c36d507d2ffdaf6d420a541c6624f105f8643594a02884600`.
|
||
- [Pack de test](../build/Sanctuary-Test-beta.107.mrpack) — SHA-256
|
||
`db9e32591cb263667b397fdb78738fbe45f58689b5574f2cb483f076635e7eef`.
|
||
|
||
Logs et reçus ignorés : `build/eggs107-check-build.log`,
|
||
`build/eggs107-native.log`, `build/eggs107-artifact.json`,
|
||
`build/eggs107-source-manifest.json`. Les fichiers sources des tests sont inclus
|
||
dans le dépôt ; aucune classe de test n’est embarquée dans le mod livré.
|
||
Aucun test Windows, installation Prism, publication du canal, commit ou tag.
|