Record Sanctuary sources through beta.060 and Git validation
Build Sanctuary / build (push) Canceled after 0s
Build Sanctuary / build (push) Canceled after 0s
This commit is contained in:
@@ -0,0 +1,119 @@
|
||||
# beta.057 — météo quotidienne Sanctuary
|
||||
|
||||
Branche `codex/daily-weather-beta057`. Contrat avant implémentation : une météo
|
||||
commune par date civile du monde, en réutilisant le fuseau du système Real Time.
|
||||
La météo est indépendante du mode du soleil : `vanilla` rend le cycle à
|
||||
Minecraft ; `realtime` conserve le profil choisi pour la journée. Les profils
|
||||
pluie et orage sont continus ; le profil averses alterne pluie et pauses sèches.
|
||||
|
||||
Le tirage local est déterministe selon la graine du monde et la date, sans
|
||||
réseau ni géolocalisation. Les proportions de départ configurables sont :
|
||||
65 % beau temps, 15 % ciel gris, 5 % brouillard, 10 % averses, 3 % pluie
|
||||
continue et 2 % orage continu. Ce sont des probabilités par journée.
|
||||
Les proportions se règlent dans `config/sanctuary/weather.json` ; la prévision
|
||||
déjà enregistrée pour aujourd'hui ne change pas lors d'un rechargement.
|
||||
Les transitions d'intensité, sons, neige par biome et éclairs restent natifs.
|
||||
Le profil averses place une pluie de 35 à 75 minutes dans chaque tranche de
|
||||
3 heures réelles, avec des pauses sèches. La position de chaque passage est
|
||||
calculée depuis la graine/date/tranche ; une reconnexion ne la déplace pas.
|
||||
Les tranches comptent le temps réellement écoulé depuis le minuit local,
|
||||
y compris lors des journées de 23 ou 25 heures au changement d'heure.
|
||||
|
||||
Le ciel gris et les averses atténuent les couleurs du ciel et la lumière solaire
|
||||
sans transformer artificiellement l'état sec en pluie. Le brouillard utilise
|
||||
les distances natives (fin atmosphérique 80 blocs, ciel 120, nuages 96) et se
|
||||
compose avec le réglage Vanilla Light. La transition des ambiances prend environ
|
||||
10 secondes de jeu. Eau, lave, cécité et obscurité gardent leurs attributs natifs.
|
||||
La présentation se branche sur les couches d'environnement de Minecraft :
|
||||
pas de nouvelle passe shader, texture de bruit, reconstruction des chunks ni
|
||||
rechargement des shaders. Les moteurs de shaders externes restent à vérifier.
|
||||
|
||||
Le serveur transmet le profil aux clients à la connexion et lors de ses
|
||||
changements, y compris le retour à Vanilla. La pluie et l'orage utilisent leurs
|
||||
paquets natifs. Le calcul météo se fait une fois par seconde ; l'écriture du
|
||||
journal n'a lieu qu'au changement de date ou de mode.
|
||||
|
||||
## Contrat de sauvegarde et de retour
|
||||
|
||||
Un fichier additif `data/sanctuary-weather.json`, schéma 1, conserve le mode,
|
||||
la date civile et sa prévision. Il est écrit atomiquement avant toute action
|
||||
météorologique. Aucun ancien schéma ni paramètre de génération n'est modifié.
|
||||
Un document invalide est conservé ; le chargement refuse la prise de contrôle.
|
||||
|
||||
Le mode quotidien est activé par défaut seulement dans les mondes Sanctuary
|
||||
et Sanctuary Test. Un monde vanilla ordinaire garde son comportement natif.
|
||||
Les jours manqués ne sont pas simulés. La reconnexion et le redémarrage gardent
|
||||
le profil du jour ; un nouveau profil est choisi à minuit dans le fuseau du
|
||||
serveur intégré ou dédié, et non à chaque journée Minecraft.
|
||||
|
||||
Le cycle aléatoire et l'effacement de la pluie par le sommeil sont suspendus
|
||||
uniquement quand cette météo contrôle le monde. Les règles de jeu sauvegardées
|
||||
ne sont pas modifiées. Le retour à Vanilla reprend les durées natives depuis
|
||||
l'état météo courant, sans conserver une durée de 24 heures en ticks.
|
||||
Sans le mod, Minecraft peut reprendre ses durées usuelles. Les autres systèmes
|
||||
de simulation et les dimensions sans météo restent natifs.
|
||||
|
||||
## Commandes et extension future
|
||||
|
||||
Configuration serveur `config/sanctuary/weather.json` :
|
||||
|
||||
```json
|
||||
{
|
||||
"enabled": true,
|
||||
"overcastPercent": 15,
|
||||
"fogPercent": 5,
|
||||
"showersPercent": 10,
|
||||
"rainPercent": 3,
|
||||
"thunderPercent": 2
|
||||
}
|
||||
```
|
||||
|
||||
Le beau temps représente le reste jusqu'à 100 %. Une somme supérieure à
|
||||
100 %, un entier négatif ou fractionnaire et un document invalide sont refusés.
|
||||
Les nouveaux poids s'appliquent au prochain jour ; `enabled: false` rend
|
||||
immédiatement la météo au moteur après rechargement. Le retour explicite
|
||||
à Vanilla dans un monde est conservé même après réactivation globale.
|
||||
|
||||
- `/sanctuary weather` : consulter le mode, la prévision et sa date/fuseau.
|
||||
- `/sanctuary weather realtime` : activer le mode quotidien (opérateur).
|
||||
- `/sanctuary weather vanilla` : reprendre le cycle Minecraft (opérateur).
|
||||
- `/sanctuary weather reload` : recharger les proportions/configuration (opérateur).
|
||||
|
||||
En Real Time, `/weather` indique comment reprendre le mode Vanilla pour
|
||||
changer la météo librement. Les mutations passent par l'autorité serveur.
|
||||
La Weather TNT qui force ou arrête la pluie appartient au prochain ticket ;
|
||||
aucun nouveau bloc, explosif ni recette n'est ajouté ici.
|
||||
|
||||
## Vérifications
|
||||
|
||||
Le contrôle `weather057Smoke`, intégré à `check`, passe 222 058 assertions :
|
||||
50 000 tirages quotidiens, proportions, bornes, persistance, rechargement,
|
||||
refus des données invalides, retours de mode et absence de rattrapage hors ligne.
|
||||
Il vérifie aussi les tranches d'averses, leurs pauses sèches, les journées de
|
||||
23/25 heures et le 29 février. Les proportions observées sont respectivement
|
||||
32 451 / 7 558 / 2 478 / 4 914 / 1 522 / 1 077 jours pour beau temps / gris /
|
||||
brouillard / averses / pluie / orage.
|
||||
|
||||
Le client intégré `Weather057ClientChecks` vérifie les six profils natifs,
|
||||
les paquets de pluie/orage et du nouveau profil, le brouillard réellement
|
||||
utilisé par le rendu, l'absence de pluie en gris/brouillard, l'alternance humide
|
||||
et sèche pendant une même journée d'averses, et les passages de date.
|
||||
Les durées aléatoires sont suspendues sans modifier la règle de jeu ; le reset
|
||||
météo utilisé par le sommeil est bloqué en Real Time et disponible en Vanilla.
|
||||
Les commandes, leurs permissions, l'indépendance du soleil, les configurations
|
||||
invalides, les retours Vanilla et les libellés FR/EN sont vérifiés.
|
||||
|
||||
`./gradlew check build assemblePack assembleTestPack -x :sanctuary:runGameTest`
|
||||
réussit sur Minecraft 26.3-pre-2 avec Java 25. Les essais natifs utilisent
|
||||
`-PsanctuaryClientTests=true -PsanctuaryWeather057ClientTests=true
|
||||
-PsanctuaryQuickTests=true`. Aucun serveur dédié ni EULA supplémentaire accepté.
|
||||
Les frontières horaires sont simulées avec une horloge injectée dans le monde
|
||||
de test ; plusieurs journées d'hébergement réel ne sont pas revendiquées.
|
||||
Aucun monde personnel, canal public ou instance de jeu n'est modifié.
|
||||
|
||||
Logs : `build/weather057-check.log`, `build/weather057-client.log`.
|
||||
Captures : `build/weather057-evidence/`. La confirmation d'intégrité des exports
|
||||
est consignée dans `build/weather057-artifact.json`.
|
||||
|
||||
[Pack normal](../build/Sanctuary-beta.057.mrpack) ·
|
||||
[Monde plat rapide](../build/Sanctuary-Test-beta.057.mrpack).
|
||||
Reference in New Issue
Block a user