6.2 KiB
6.2 KiB
title, type, weight
| title | type | weight |
|---|---|---|
| Gestionnaire HUD | docs | 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 :
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
Player player = ...;
HudManager hudManager = player.getHudManager();
Afficher des Composants
// 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
// Masquer des composants spécifiques
hudManager.hideHudComponents(player.getPlayerRef(),
HudComponent.Compass,
HudComponent.Speedometer
);
Définir les Composants
Remplacer tous les composants visibles :
// 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
Set<HudComponent> visible = hudManager.getVisibleHudComponents();
if (visible.contains(HudComponent.Health)) {
// La barre de vie est visible
}
Réinitialiser le HUD
// 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 :
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 :
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 :
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 :
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
PlayerReflors 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 >}}