Init
This commit is contained in:
232
content/ui-systems/hud-manager.fr.md
Normal file
232
content/ui-systems/hud-manager.fr.md
Normal file
@@ -0,0 +1,232 @@
|
||||
---
|
||||
title: Gestionnaire HUD
|
||||
type: docs
|
||||
weight: 1
|
||||
---
|
||||
|
||||
Le `HudManager` contrôle quels composants HUD sont visibles pour le joueur.
|
||||
|
||||
**Package:** `com.hypixel.hytale.server.core.entity.entities.player.hud`
|
||||
|
||||
## Composants HUD
|
||||
|
||||
Tous les composants HUD disponibles :
|
||||
|
||||
| Composant | Description |
|
||||
|-----------|-------------|
|
||||
| `HudComponent.Hotbar` | Barre d'objets du joueur |
|
||||
| `HudComponent.StatusIcons` | Icônes d'effets de statut |
|
||||
| `HudComponent.Reticle` | Réticule/viseur |
|
||||
| `HudComponent.Chat` | Fenêtre de chat |
|
||||
| `HudComponent.Requests` | UI des demandes en attente |
|
||||
| `HudComponent.Notifications` | Notifications d'alerte |
|
||||
| `HudComponent.KillFeed` | Messages de kill/mort |
|
||||
| `HudComponent.InputBindings` | Indications de contrôle |
|
||||
| `HudComponent.PlayerList` | Liste des joueurs (Tab) |
|
||||
| `HudComponent.EventTitle` | Grands titres d'événements |
|
||||
| `HudComponent.Compass` | Boussole de direction |
|
||||
| `HudComponent.ObjectivePanel` | Suivi de quêtes/objectifs |
|
||||
| `HudComponent.PortalPanel` | Interface de portail |
|
||||
| `HudComponent.BuilderToolsLegend` | Indications d'outils de construction |
|
||||
| `HudComponent.Speedometer` | Indicateur de vitesse |
|
||||
| `HudComponent.UtilitySlotSelector` | UI des slots d'utilitaires |
|
||||
| `HudComponent.BlockVariantSelector` | Sélecteur de variantes de blocs |
|
||||
| `HudComponent.BuilderToolsMaterialSlotSelector` | Slots de matériaux du builder |
|
||||
| `HudComponent.Stamina` | Barre d'endurance |
|
||||
| `HudComponent.AmmoIndicator` | Compteur de munitions |
|
||||
| `HudComponent.Health` | Barre de vie |
|
||||
| `HudComponent.Mana` | Barre de mana |
|
||||
| `HudComponent.Oxygen` | Barre d'oxygène/respiration |
|
||||
| `HudComponent.Sleep` | Indicateur de sommeil |
|
||||
|
||||
## Composants par Défaut
|
||||
|
||||
Ces composants sont visibles par défaut :
|
||||
|
||||
```java
|
||||
Set<HudComponent> DEFAULT = Set.of(
|
||||
HudComponent.UtilitySlotSelector,
|
||||
HudComponent.BlockVariantSelector,
|
||||
HudComponent.StatusIcons,
|
||||
HudComponent.Hotbar,
|
||||
HudComponent.Chat,
|
||||
HudComponent.Notifications,
|
||||
HudComponent.KillFeed,
|
||||
HudComponent.InputBindings,
|
||||
HudComponent.Reticle,
|
||||
HudComponent.Compass,
|
||||
HudComponent.Speedometer,
|
||||
HudComponent.ObjectivePanel,
|
||||
HudComponent.PortalPanel,
|
||||
HudComponent.EventTitle,
|
||||
HudComponent.Stamina,
|
||||
HudComponent.AmmoIndicator,
|
||||
HudComponent.Health,
|
||||
HudComponent.Mana,
|
||||
HudComponent.Oxygen,
|
||||
HudComponent.BuilderToolsLegend,
|
||||
HudComponent.Sleep
|
||||
);
|
||||
```
|
||||
|
||||
## Accéder au Gestionnaire HUD
|
||||
|
||||
```java
|
||||
Player player = ...;
|
||||
HudManager hudManager = player.getHudManager();
|
||||
```
|
||||
|
||||
## Afficher des Composants
|
||||
|
||||
```java
|
||||
// Afficher des composants spécifiques (additif)
|
||||
hudManager.showHudComponents(player.getPlayerRef(),
|
||||
HudComponent.Health,
|
||||
HudComponent.Stamina,
|
||||
HudComponent.Hotbar
|
||||
);
|
||||
|
||||
// Afficher depuis un Set
|
||||
Set<HudComponent> components = Set.of(
|
||||
HudComponent.Chat,
|
||||
HudComponent.Notifications
|
||||
);
|
||||
hudManager.showHudComponents(player.getPlayerRef(), components);
|
||||
```
|
||||
|
||||
## Masquer des Composants
|
||||
|
||||
```java
|
||||
// Masquer des composants spécifiques
|
||||
hudManager.hideHudComponents(player.getPlayerRef(),
|
||||
HudComponent.Compass,
|
||||
HudComponent.Speedometer
|
||||
);
|
||||
```
|
||||
|
||||
## Définir les Composants
|
||||
|
||||
Remplacer tous les composants visibles :
|
||||
|
||||
```java
|
||||
// Définir exactement les composants visibles (remplace tout)
|
||||
hudManager.setVisibleHudComponents(player.getPlayerRef(),
|
||||
HudComponent.Hotbar,
|
||||
HudComponent.Health
|
||||
);
|
||||
|
||||
// Vider tous les composants HUD
|
||||
hudManager.setVisibleHudComponents(player.getPlayerRef());
|
||||
```
|
||||
|
||||
## Requêter les Composants Visibles
|
||||
|
||||
```java
|
||||
Set<HudComponent> visible = hudManager.getVisibleHudComponents();
|
||||
|
||||
if (visible.contains(HudComponent.Health)) {
|
||||
// La barre de vie est visible
|
||||
}
|
||||
```
|
||||
|
||||
## Réinitialiser le HUD
|
||||
|
||||
```java
|
||||
// Réinitialiser aux composants par défaut et vider le HUD personnalisé
|
||||
hudManager.resetHud(player.getPlayerRef());
|
||||
|
||||
// Réinitialiser l'état UI complet
|
||||
hudManager.resetUserInterface(player.getPlayerRef());
|
||||
```
|
||||
|
||||
## HUD Personnalisé
|
||||
|
||||
Pour les overlays persistants :
|
||||
|
||||
```java
|
||||
public class ScoreboardHud extends CustomUIHud {
|
||||
|
||||
public ScoreboardHud(PlayerRef ref) {
|
||||
super(ref);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void build(UICommandBuilder builder) {
|
||||
// L'extension .ui est OBLIGATOIRE
|
||||
builder.append("Hud/Scoreboard.ui");
|
||||
builder.set("#score", 1500);
|
||||
builder.set("#rank", "Or");
|
||||
}
|
||||
}
|
||||
|
||||
// Définir le HUD personnalisé
|
||||
hudManager.setCustomHud(player.getPlayerRef(), new ScoreboardHud(player.getPlayerRef()));
|
||||
|
||||
// Supprimer le HUD personnalisé
|
||||
hudManager.setCustomHud(player.getPlayerRef(), null);
|
||||
```
|
||||
|
||||
## Exemples Pratiques
|
||||
|
||||
### Mode Cinématique
|
||||
|
||||
Masquer toute l'UI pour les cinématiques :
|
||||
|
||||
```java
|
||||
public void enterCinematicMode(Player player) {
|
||||
HudManager hud = player.getHudManager();
|
||||
|
||||
// Stocker l'état actuel si nécessaire pour restauration
|
||||
Set<HudComponent> previous = new HashSet<>(hud.getVisibleHudComponents());
|
||||
|
||||
// Vider tout le HUD
|
||||
hud.setVisibleHudComponents(player.getPlayerRef());
|
||||
}
|
||||
|
||||
public void exitCinematicMode(Player player, Set<HudComponent> restore) {
|
||||
player.getHudManager().setVisibleHudComponents(player.getPlayerRef(), restore);
|
||||
}
|
||||
```
|
||||
|
||||
### Mode HUD Minimal
|
||||
|
||||
N'afficher que les composants essentiels :
|
||||
|
||||
```java
|
||||
public void setMinimalHud(Player player) {
|
||||
player.getHudManager().setVisibleHudComponents(player.getPlayerRef(),
|
||||
HudComponent.Hotbar,
|
||||
HudComponent.Health,
|
||||
HudComponent.Reticle
|
||||
);
|
||||
}
|
||||
```
|
||||
|
||||
### HUD Mode Construction
|
||||
|
||||
Afficher les composants spécifiques au builder :
|
||||
|
||||
```java
|
||||
public void enableBuilderHud(Player player) {
|
||||
HudManager hud = player.getHudManager();
|
||||
hud.showHudComponents(player.getPlayerRef(),
|
||||
HudComponent.BuilderToolsLegend,
|
||||
HudComponent.BuilderToolsMaterialSlotSelector,
|
||||
HudComponent.BlockVariantSelector
|
||||
);
|
||||
}
|
||||
```
|
||||
|
||||
## Bonnes Pratiques
|
||||
|
||||
{{< callout type="info" >}}
|
||||
**Directives HUD :**
|
||||
- Utilisez toujours `PlayerRef` lors de l'appel des méthodes HUD
|
||||
- Stockez l'état précédent avant de vider si vous devez restaurer plus tard
|
||||
- Considérez le mode de jeu lors du choix des composants à afficher
|
||||
- Utilisez `resetHud()` pour revenir à l'état par défaut
|
||||
{{< /callout >}}
|
||||
|
||||
{{< callout type="warning" >}}
|
||||
**Note de Performance :** Évitez le basculement rapide des composants HUD car chaque changement envoie des paquets au client.
|
||||
{{< /callout >}}
|
||||
Reference in New Issue
Block a user