122 lines
7.3 KiB
Markdown
122 lines
7.3 KiB
Markdown
# HUD-036 — notifications choisies, vol porté et discrétion
|
||
|
||
Branche `codex/hud-gliding-stealth-beta036`, base beta.035.
|
||
Cible inchangée : Minecraft 26.3-pre-2, Java 25.
|
||
|
||
## Contrat jouable
|
||
|
||
Les notifications démarrent **en haut à droite**. Options → Notifications propose
|
||
les neuf ancrages : quatre coins, quatre milieux de bord et centre. La préférence
|
||
locale existante est conservée ; les fichiers antérieurs sans position prennent
|
||
le nouveau défaut. Aucun réglage de quête n’est ajouté.
|
||
|
||
Les colonnes F3 et les annonces natives réservent leur surface réelle, mesurée
|
||
sur la même image, y compris avec une échelle F3 différente. Le fil reste dans
|
||
la colonne choisie, se place dans une zone libre et réduit le nombre de lignes
|
||
si nécessaire. Barres de boss, sous-titres et ensemble vie/XP/hotbar réservent aussi
|
||
leur place. Quand aucun emplacement lisible ne reste, les messages attendent ;
|
||
le profiler circulaire et la visualisation de chunks suspendent le fil. F1, les
|
||
menus et les écrans de chargement le masquent également.
|
||
|
||
Un advancement commencé ne reste **plus suivi automatiquement à vie**. Ses
|
||
nouveaux progrès s’effacent comme les découvertes (durée réglable 3–15 secondes,
|
||
5 par défaut, plus deux secondes pour les progrès). Un état inchangé ne relance
|
||
pas le délai. La mort et la réapparition effacent le fil temporaire sans rejouer
|
||
les anciens critères ni les découvertes.
|
||
|
||
Dans **Advancements**, cliquer sur une icône visible et incomplète l’épingle ;
|
||
cliquer à nouveau retire le suivi. Un `+` doré marque l’icône et une indication
|
||
FR/EN explique le geste. Glisser la carte de l’arbre ne bascule jamais le suivi.
|
||
Jusqu’à **trois objectifs** sont choisis ; un quatrième remplace le plus ancien.
|
||
Les critères reçus du serveur alimentent les jauges, même avant le premier
|
||
critère réussi. Une réussite complète retire automatiquement l’épingle.
|
||
Le choix survit à la mort et à la reconnexion, séparément pour chaque compte
|
||
et monde local ou adresse de serveur. Les préférences restent uniquement dans
|
||
`config/sanctuary-notifications.json` ; les clés de contexte sont hachées.
|
||
L’option Objectifs épinglés masque ces suivis sans oublier la sélection.
|
||
Les progrès récents non épinglés gardent leur bref affichage temporaire.
|
||
|
||
## Déplacements
|
||
|
||
Porter un animal volant sur sa tête permet de **planer automatiquement pendant
|
||
la descente** : vitesse verticale plafonnée à 0,12 bloc/tick, sans impulsion vers
|
||
le haut. Les poules comptent parmi les oiseaux qui amortissent la chute. Les
|
||
familiers utilisent l’espèce de leur œuf. Le compagnon doit réellement être porté ;
|
||
un animal proche ou simplement suiveur ne suffit pas. Le ralentissement dû au
|
||
portage reste appliqué. Le vol créatif, les élytres, l’eau et la lave conservent
|
||
leur fonctionnement. Une pile de joueurs ne transmet pas ce pouvoir à son socle.
|
||
|
||
La distance de chute accumulée est effacée pendant le plané. Relâcher l’animal
|
||
rétablit immédiatement la gravité et l’accumulation d’une nouvelle chute : aucune
|
||
potion persistante ni immunité générale aux dégâts.
|
||
|
||
Allongé ou au repos **au sol**, le joueur réduit de moitié sa visibilité dans
|
||
les tests natifs de détection des mobs. L’effet se combine avec les règles
|
||
Minecraft déjà présentes. À proximité, les mobs peuvent encore détecter et
|
||
frapper. Le plongeon, la nage et le vol ne procurent pas ce bonus. Les cibles
|
||
existantes ne sont pas effacées de force. La petite silhouette native demeure,
|
||
y compris son intérêt face aux flèches ; aucun changement de visée des squelettes.
|
||
|
||
## Compatibilité
|
||
|
||
Aucun changement de schéma des sauvegardes serveur, des identifiants de jeu, des
|
||
récompenses, des recettes, des générations ou des expansions. Les deux préférences
|
||
client nouvelles et le suivi restent hors des mondes. Aucune installation de jeu
|
||
personnelle n’est mise à jour par ce ticket.
|
||
|
||
## Suite, non implémentée ici
|
||
|
||
- Quêtes en haut à gauche : après les blocs rubis/saphir et leur contrat serveur.
|
||
- Temps réel : horloge et fuseau système automatiques en solo ; fuseau choisi
|
||
dans la configuration serveur en multijoueur. Une région solaire approximative
|
||
choisie séparément doit déterminer latitude/saison/date, lever et coucher du
|
||
soleil. Le fuseau seul ne suffit pas à déterminer la géographie. Ne pas demander
|
||
d’adresse personnelle, ne pas collecter la géolocalisation ni publier une position
|
||
précise. Définir avant implémentation le profil solaire de secours en solo,
|
||
les changements d’heure, le passage de minuit et la migration du temps des mondes.
|
||
|
||
## Vérifications
|
||
|
||
`./gradlew check build assemblePack assembleTestPack` réussi avec les suites
|
||
ciblées `corrections,notifications,carry,movement,progression,recipes,collections` :
|
||
**36 tests serveur**, dont la matrice des 126 advancements de collections.
|
||
Le contrôle de géométrie couvre 180 combinaisons et les collisions F3/toasts/boss/HUD.
|
||
|
||
Deux parcours client natifs réussissent sur des mondes plats de développement :
|
||
- « A Balanced Diet » après rotten flesh expire ; clic/re-clic/glissement de
|
||
l’arbre, épingle conservée après respawn et retirée après réussite.
|
||
- 36 combinaisons GUI/position avec F3, son échelle indépendante, boss, hotbar,
|
||
réglages enregistrés et écrans FR/EN inspectés visuellement.
|
||
- Vraie descente du joueur avec un perroquet porté et atterrissage sans dégâts.
|
||
- Sorties des collections Archery, Woodworking, Boats and Rafts et Books and
|
||
Storage trouvées dans le filtre JEI ; ouverture des vraies recettes arc,
|
||
établi, bateau et livre sans possession préalable, avec inconnus préservés.
|
||
|
||
La persistance du choix est contrôlée dans le fichier client ; la mort/respawn
|
||
est exercée en jeu. La conservation à la reconnexion utilise ce même contexte
|
||
chargé au retour, sans parcours supplémentaire de redémarrage pour ce ticket.
|
||
La discrétion est contrôlée par les tests de détection natifs côté serveur ;
|
||
l’équilibre face à plusieurs mobs en partie reste à apprécier.
|
||
|
||
Exports locaux vérifiés : [normal](../build/Sanctuary-beta.036.mrpack) et
|
||
[monde plat rapide](../build/Sanctuary-Test-beta.036.mrpack). Les 1 335 classes du
|
||
mod, les trois classes du module de test, les JAR imbriqués et les ressources
|
||
correspondent au build. Les collections et générations restent identiques ;
|
||
les packs beta.034/beta.035 sont inchangés.
|
||
Reçu : `build/corrections036-artifact.json` ; captures :
|
||
`build/corrections036-evidence/`. Logs : `build/corrections036-check-final.log`,
|
||
`build/corrections036-client-options-final.log`, `build/blueprint036-client.log`.
|
||
|
||
## Retour JEI intégré
|
||
|
||
Une collection pouvait enseigner ses recettes tout en laissant leurs sorties
|
||
masquées dans le catalogue d’objets de JEI. La recherche de l’arc, d’un bateau ou
|
||
d’un livre restait donc impossible tant que le joueur ne l’avait pas possédé.
|
||
|
||
Les sorties des recettes connues deviennent désormais consultables dans JEI.
|
||
Leur index se reconstruit sur changement du carnet ou du runtime, pas à chaque
|
||
image. Cela n’ajoute aucune possession au carnet Discovery, ne révèle pas les
|
||
matières premières inconnues et ne débloque aucune autre recette. L’aptitude
|
||
Catalogue reste nécessaire. Les définitions de collections côté serveur,
|
||
récompenses et format de carnet restent inchangés ; pas de changement du fork JEI.
|