Skip to content

🖥️ HUD, Diagnose & UI-Rendering

ParameterSpezifikation
Grafik-Enginenet.minecraft.client.gui.GuiGraphicsExtractor
Bildschirm-Kontextnet.minecraft.client.gui.screens.worldselection.AbstractGameRulesScreen
Textfarbe bei Hover0xFFFFFFAA (Sanftes Gelb)
Standard-Textfarbe0xFFFFFFFF (Klares Weiß)
Kasten bei Hover0x22FFFFFF (Dezente weiße Fläche)
Kategorie-Trennlinie0x44AAAAAA (Horizontale Begrenzung)
Farbe Schalter Aktiv0x4400FF00 (Smaragdgrün)
Farbe Schalter Inaktiv0x44FF0000 (Rubinrot)
SprachausgabeNarratedElementType.TITLE (NarrationPriority.HOVERED)

📖 Übersicht

Minecraft 26.2 hat die Rendering-Pipeline grundlegend modernisiert und GUI-Zeichenoperationen auf das moderne GuiGraphicsExtractor-Subsystem umgestellt.

Collapsible Game Rules wurde direkt für diese Engine entwickelt und bietet Vektorfarbfüllungen, zentrierte Schriftmetriken und Screenreader-Ausgabe ohne Performanceverlust.


🎨 Farbpalette der Benutzeroberfläche

KomponenteHex-ARGB-CodeBeschreibungEinsatzort
Hover-Fläche0x22FFFFFFWeiß mit 13% Deckkraft.Überfahrene Kategorie-Header und Aktionsbuttons.
Trennlinie0x44AAAAAAHelles Grau mit 27% Deckkraft (1px).Untere Kante von Headern und Aktionsleiste.
Text bei Hover0xFFFFFFAASanft leuchtendes Gelb.Text überfahrener Buttons und Header.
Standard-Text0xFFFFFFFF100% reines Weiß.Regulärer Kategorietext und Zähler-Badges.
Zähler-BadgeChatFormatting.GRAYKlassisches Vanilla-Grau ( (N rules)).An Kategorie-Titel angehängter Suffix.
Schalter Aktiv0x4400FF00Smaragdgrün mit 27% Deckkraft.Hintergrund für ✔ ON in BooleanToggleWidget.
Schalter Inaktiv0x44FF0000Rubinrot mit 27% Deckkraft.Hintergrund für ✖ OFF in BooleanToggleWidget.

💻 Rendering-Implementierung

java
@Override
public void extractContent(GuiGraphicsExtractor graphics, int mouseX, int mouseY, boolean hovered, float a) {
    // 1. Premium Highlight on hover
    if (hovered) {
        graphics.fill(this.getX() - 2, this.getY(), this.getX() + this.getWidth() + 2, this.getY() + 24, 0x22FFFFFF);
    }

    // 2. Directional arrow, label, and child count badge
    String prefix = this.expanded ? "▼ " : "▶ ";
    Component countBadge = Component.literal(" (" + this.childCount + " rules)").withStyle(ChatFormatting.GRAY);
    Component display = Component.literal(prefix).append(this.label).append(countBadge);

    // 3. Centered text with dynamic hover tint
    graphics.centeredText(Minecraft.getInstance().font, display,
            this.getContentXMiddle(), this.getContentY() + 5, hovered ? 0xFFFFFFAA : 0xFFFFFFFF);
    
    // 4. Subtle separating line at the bottom
    graphics.fill(this.getX() + 10, this.getY() + 23, this.getX() + this.getWidth() - 10, this.getY() + 24, 0x44AAAAAA);
}

🔊 Audio- und Barrierefreiheits-Feedback

  • Sound-Ereignis: SoundEvents.UI_BUTTON_CLICK
  • Lautstärke: 1.0F
  • Tonhöhe: 1.0F
  • Auslöser:
    • Mausklick auf Kategorie-Header.
    • Tastendruck auf Leertaste / Eingabe bei fokussierter Kategorie.
    • Pfeiltaste links (einklappen) oder rechts (ausklappen).
    • Klick auf «Expand All» oder «Collapse All».

🔗 Weiterführende Dokumentation

Official documentation & web portal for Dasik Igaijinn mods.