Files
sanctuary-beta/docs/fut-navigation-beta088.md
2026-09-16 11:41:27 +02:00

61 lines
3.2 KiB
Markdown

# beta.088 — Navigation du Fût sans recentrage de souris
Branche : `codex/fut-navigation-beta088`.
## Problème et correction ciblée
Changer de page ou appliquer une recherche remplaçait le menu serveur via
`openMenu`. Minecraft envoyait d'abord une fermeture au client, puis une
ouverture. Cette fermeture reprenait la souris pour le jeu et la recentrait,
obligeant à revenir sur le bouton à chaque clic.
La transition nettoie désormais l'ancien menu côté serveur avec
`doCloseContainer`, sans envoyer l'écran de fermeture intermédiaire. Le
nouveau menu est ensuite ouvert normalement : la souris reste libérée et
conserve sa position. Cela concerne la pagination et la recherche du Fût,
ainsi que les onglets du Fourneau qui utilisent la même navigation.
Chaque page garde un nouvel identifiant de menu : les paquets de clics ou de
navigation de la page précédente sont toujours rejetés. Les contrôles de
portée, d'accès, de structure, d'objet porté au curseur et la limite de
fréquence restent en place. La fermeture réelle du coffre reste native.
Aucun changement de stockage, de sauvegarde, de textures ou de libellés.
## Vérifications
Le parcours natif existant a été étendu avec un contrôle des paquets réseau
sur un second joueur de test : sans correction, la navigation envoie un
`ClientboundContainerClosePacket` et le test échoue. Avec la correction,
aucune fermeture intermédiaire, et une fermeture réelle envoie toujours
son paquet. Ce contrôle reste valable si la fenêtre de test est inactive.
Côté client, le test place réellement le curseur sur le bouton puis clique
trois fois sur Suivant et deux fois sur Précédent sans le déplacer. Sa
position est vérifiée après chaque page, après une recherche localisée en
français et après chacun des trois onglets du Fourneau. Échap ferme le menu
normalement côté client et côté serveur.
Les essais existants passent également : 729 cases, deux joueurs utilisant
le même stock, objets au curseur, identifiants périmés, transfert rapide,
hoppers, démontage, casse, persistance et cuisson native partagée.
Aucun serveur dédié lancé, aucune EULA acceptée, aucun monde personnel touché.
Journaux : `build/fut088-before-client.log` (régression reproduite) et
`build/fut088-client.log` (succès en 39 secondes). Le parcours reste activé
par `-PsanctuaryMultiblocks084ClientTests=true` avec
`-PsanctuaryClientTests=true -PsanctuaryQuickTests=true`.
`check build assemblePack assembleTestPack` réussit en 2 min 23 s
(124 tâches, 103 exécutées), avec le GameTest dédié explicitement exclu.
Journal : `build/fut088-check.log`. Le reçu `build/fut088-artifact.json`
vérifie les sources, le JAR, les archives normal/Test et la conservation de
tous les assets beta.087. Seules `MultiblockMenu` et sa classe interne de
transfert changent dans les classes compilées (décalage des lignes de debug
pour cette dernière).
Livraison locale : `build/Sanctuary-beta.088.mrpack` et
`build/Sanctuary-Test-beta.088.mrpack`. Les archives beta.087 restent intactes.
Aucun déploiement dans l'instance Prism ni sur le canal publié. Un essai LAN
avec deux clients distincts reste à réaliser ; le test d'accès partagé utilise
un second joueur serveur dans le client de développement.