61 lines
3.2 KiB
Markdown
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.
|