--- title: Systèmes UI type: docs weight: 5 --- La section Systèmes UI couvre l'interface utilisateur, les permissions et les pages personnalisées. ## Vue d'Ensemble {{< cards cols="2" >}} {{< card link="hud-manager" title="Gestionnaire HUD" subtitle="Contrôler la visibilité des éléments HUD" icon="eye" >}} {{< card link="custom-pages" title="Pages Personnalisées" subtitle="Créer des interfaces interactives" icon="document" >}} {{< card link="windows" title="Fenêtres" subtitle="Conteneurs d'inventaire et crafting" icon="collection" >}} {{< card link="ui-files" title="Fichiers UI" subtitle="Le langage de balisage .ui" icon="code" >}} {{< card link="ui-syntax" title="Syntaxe UI" subtitle="Variables, imports, templates" icon="document" >}} {{< card link="ui-widgets" title="Widgets UI" subtitle="Types de widgets disponibles" icon="cube" >}} {{< card link="ui-properties" title="Propriétés UI" subtitle="Anchor, layout, padding" icon="adjustments" >}} {{< card link="ui-styles" title="Styles UI" subtitle="Système de styles" icon="color-swatch" >}} {{< card link="permissions" title="Permissions" subtitle="Permissions joueur et contrôle d'accès" icon="shield-check" >}} {{< /cards >}} ### Architecture UI Le système UI se compose de trois couches principales : 1. **HUD** - Éléments persistants à l'écran (barre de vie, hotbar, etc.) 2. **Pages** - Overlays plein écran (menus, interfaces personnalisées) 3. **Fenêtres** - Interfaces de conteneur (coffres, crafting) ### Accéder au Système UI ```java Player player = ...; // Gestionnaire HUD - contrôle la visibilité des composants HUD HudManager hudManager = player.getHudManager(); // Gestionnaire de Pages - gère les overlays et pages personnalisées PageManager pageManager = player.getPageManager(); // Gestionnaire de Fenêtres - gère les interfaces de conteneur WindowManager windowManager = player.getWindowManager(); ``` ## Utilisation Rapide ### Afficher/Masquer les Éléments HUD ```java // Masquer le compas et le speedomètre hudManager.hideHudComponents(player.getPlayerRef(), HudComponent.Compass, HudComponent.Speedometer ); // N'afficher que les éléments essentiels hudManager.setVisibleHudComponents(player.getPlayerRef(), HudComponent.Hotbar, HudComponent.Health, HudComponent.Reticle ); ``` ### Ouvrir une Page Personnalisée ```java // Créer et ouvrir une page personnalisée MyCustomPage page = new MyCustomPage(player.getPlayerRef()); pageManager.openCustomPage( player.getReference(), player.getReference().getStore(), page ); ``` ### Ouvrir une Fenêtre de Conteneur ```java // Ouvrir un conteneur de coffre ContainerWindow window = new ContainerWindow( 1, // ID de fenêtre WindowType.Container, chestContainer ); pageManager.setPageWithWindows(ref, store, Page.None, true, window); ``` ## Bonnes Pratiques {{< callout type="info" >}} **Directives UI :** - Utilisez toujours `PlayerRef` lors de l'appel des méthodes HUD - Nettoyez les pages et fenêtres lors de la déconnexion du joueur - Utilisez `sendUpdate()` pour les petits changements, `rebuild()` pour les changements majeurs - Testez les interactions UI dans différents modes de jeu {{< /callout >}}