Integrate verified Sanctuary beta.110 with clay workshop, eggs and seasonal snow
Build Sanctuary / build (push) Canceled after 0s

This commit is contained in:
koka
2026-09-17 03:10:39 +02:00
parent 49feb5a376
commit 468743bfe7
1111 changed files with 41665 additions and 534 deletions
+107
View File
@@ -0,0 +1,107 @@
# 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 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 :
```sh
./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](../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 nest embarquée dans le mod livré.
Aucun test Windows, installation Prism, publication du canal, commit ou tag.