95 lines
5.6 KiB
Markdown
95 lines
5.6 KiB
Markdown
# SNOW-109 — Fonte saisonnière
|
|
|
|
Branche `codex/seasonal-snow-melt-beta109`, base beta.108, Minecraft 26.3.
|
|
État : livraison locale vérifiée. Demande : ajouter la fonte saisonnière.
|
|
|
|
## Comportement livré
|
|
|
|
Neige déposée par la météo Sanctuary : retrait progressif d'une couche de haut
|
|
en bas, bloc plein puis sept couches, jusqu'au sol. Deux blocs maximum pour
|
|
l'accumulation restent la valeur par défaut confirmée. La fonte est active
|
|
avec la météo Real Time, suspendue en hiver et sous un profil neige/averses de
|
|
neige, même pendant ses pauses. Les biomes naturellement froids conservent
|
|
leur neige. Printemps : une chance sur deux par sondage météo natif ; été :
|
|
chaque sondage ; automne : une chance sur quatre. Aucun rattrapage hors ligne,
|
|
ni chargement forcé de chunks ; seuls les sommets exposés des chunks simulés.
|
|
À 20 ticks/s et `randomTickSpeed = 3`, une couche fond en moyenne en 3,4 minutes en été,
|
|
6,8 au printemps et 13,7 en automne. Pas d'eau ni de butin lors de la fonte.
|
|
Une règle serveur `sanctuary:seasonal_snow_melt`, active par défaut, permet
|
|
d'arrêter la fonte sans désactiver la neige.
|
|
|
|
## Contrat de données et migration, avant implémentation
|
|
|
|
Ajout d'une attache Fabric persistante par chunk,
|
|
`sanctuary:natural_snow_v1`, sans modifier les formats existants. Elle mémorise
|
|
les positions des nouveaux dépôts avec le nombre de couches antérieures et
|
|
le nombre attendu après dépôt (0 à 8). Les blocs restent les blocs Minecraft
|
|
`minecraft:snow` et `minecraft:snow_block` ; pas de nouvel identifiant de bloc.
|
|
L'absence de données signifie aucun dépôt suivi. Aucune recherche rétrospective,
|
|
conversion ou réécriture de terrain au chargement : la neige d'avant beta.109
|
|
est conservée car son origine n'est pas connue. Les sauvegardes personnelles
|
|
restent fermées pendant le développement. Graine de test : 109.
|
|
|
|
Seules les couches ajoutées par les précipitations depuis beta.109 fondent.
|
|
La neige construite, la neige générée et les couches antérieures à un dépôt
|
|
sont préservées. Une modification extérieure du bloc (casse, placement,
|
|
piston, commande) retire son suivi : le remplacement ne doit jamais hériter
|
|
d'une autorisation de fonte. Une incohérence de suivi est oubliée sans fonte.
|
|
Les informations suivent le cycle natif de sauvegarde/déchargement du chunk,
|
|
sans fichier global ni lecture disque par colonne. Le retrait du mod laisse
|
|
des blocs de neige natifs ; aucun effacement n'est lancé par migration.
|
|
|
|
## Vérifications ciblées
|
|
|
|
Le client natif lance les contrôles d'accumulation beta.108 (deux mondes neufs),
|
|
puis un monde neuf de graine 109 pour la fonte et le recharge après fermeture.
|
|
Les quatre saisons utilisent une horloge de test déterministe, sans commande
|
|
supplémentaire dans le mod livré. Les sondages appellent le véritable
|
|
`ServerLevel.tickPrecipitation`, sans accélération ajoutée au jeu distribué.
|
|
|
|
Cas vérifiés : bloc plein vers sept couches, fonte de haut en bas jusqu'au sol,
|
|
neige construite et couches anciennes, dépôt météo sur une construction,
|
|
casse/repose et ajout manuel de couches, toit et capuchon de neige manuel,
|
|
activation/désactivation par gamerule, les quatre saisons, profils neige et
|
|
pauses d'averses, biome froid et mode Vanilla, sauvegarde native des deux blocs
|
|
suivis et de la gamerule, puis fonte après rechargement.
|
|
|
|
Le choix du sommet utilise la heightmap native mise à jour immédiatement,
|
|
sans dépendre d'une propagation de lumière encore en attente après la fonte.
|
|
Le suivi est invalidé après toute modification effective de bloc ; chaque
|
|
nouveau dépôt ou retrait météo enregistre ensuite uniquement ses couches.
|
|
Les instantanés de suivi sont immuables pour la sauvegarde asynchrone des chunks.
|
|
|
|
## Livraison — 17 septembre 2026
|
|
|
|
- `./gradlew check build assemblePack assembleTestPack -x :sanctuary:runGameTest` :
|
|
réussi, 125 tâches, 2 min 20 s.
|
|
- `./gradlew :sanctuary:runClientGameTest -PsanctuaryClientTests=true -PsanctuaryMelt109ClientTests=true -PsanctuaryClientNoVsync=true -PsanctuaryQuickTests=true` :
|
|
réussi, 54 s ; marqueurs `SNOW108_NATIVE_PASS` et `MELT109_NATIVE_PASS`.
|
|
- Java 25. Le GameTest sur serveur dédié reste exclu conformément au refus
|
|
antérieur de son EULA ; les essais natifs utilisent le serveur intégré.
|
|
- Archives ZIP, métadonnées, sources embarquées, mixins et traductions vérifiés
|
|
contre l'archive immuable beta.108. Deux classes existantes modifiées, trois
|
|
nouvelles classes plus la classe synthétique du switch de saison. Aucun
|
|
test inclus dans le JAR. Assets identiques, sauf deux nouveaux libellés FR/EN.
|
|
|
|
[Pack normal](../build/Sanctuary-beta.109.mrpack) ·
|
|
[Pack Test](../build/Sanctuary-Test-beta.109.mrpack).
|
|
|
|
| Artefact | SHA-256 |
|
|
| --- | --- |
|
|
| Normal | `4f80292b97398e993d05e831682c879d2e6b40e7ab8cb385a15142b68c2d3ba4` |
|
|
| Test | `c0c7363ec3a2a8c568b77692b65dd8a4138c247bc928adecd5626f83bb5097bb` |
|
|
| JAR Sanctuary | `0b53f5c2d9b50890067c42a1c71b84bf70f0c6af90c876020955bbe426ff6ffa` |
|
|
|
|
Reçu : `build/melt109-artifact.json`. Journaux : `build/melt109-native.log`,
|
|
`build/melt109-check-build.log`. Manifeste : `build/melt109-source-manifest.json`.
|
|
|
|
Assemblage isolé sur beta.108, avec accumulation et œufs beta.107 ; Statuaire
|
|
beta.106 reste livré séparément. Sources intégrées au répertoire principal en
|
|
préservant ses autres travaux et ses compteurs beta.106 ; le worktree de
|
|
livraison utilise beta.109 dans les deux compteurs et le manifeste packwiz.
|
|
Aucun tag, publication du canal, déploiement, installation Prism ou monde
|
|
personnel modifié. Aucun essai Windows. La fonte n'est pas appliquée
|
|
rétrospectivement à la neige ancienne dont l'origine est inconnue.
|