Files
sanctuary-beta/docs/spawn-eggs-acquisition-beta107.md
T
2026-09-17 03:10:39 +02:00

6.0 KiB
Raw Permalink Blame History

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 : 28 par reproduction ou duplication, 7 par les générateurs classiques vanilla et 53 propositions. Réponse du créateur : catalogue à valider dabord. Aucune des 53 propositions nest 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 litem 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 lappelant rende le lit réservé, bébé à l’éclosion.
  • Existence native des 88 œufs ; destruction réelle dun 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 sagit pas dun élevage de chaque espèce laissé tourner pendant plusieurs minutes. Les tests neffectuent 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, lacceptation 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 :

./gradlew :sanctuary:runClientGameTest -PsanctuaryClientTests=true \
  -PsanctuaryEggs107ClientTests=true -PsanctuaryClientNoVsync=true \
  -PsanctuaryQuickTests=true

Lassemblage 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 — SHA-256 1b92c5abcc07be9c36d507d2ffdaf6d420a541c6624f105f8643594a02884600.
  • Pack de test — 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 nest embarquée dans le mod livré. Aucun test Windows, installation Prism, publication du canal, commit ou tag.