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

3.2 KiB

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.