6.6 KiB
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 :
{
"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.