Skip to content

🖥️ HUD, Diagnósticos y Renderizado de UI

ParámetroEspecificación
Motor Gráficonet.minecraft.client.gui.GuiGraphicsExtractor
Contexto de Pantallanet.minecraft.client.gui.screens.worldselection.AbstractGameRulesScreen
Color de Texto al Enfocar0xFFFFFFAA (Amarillo suave)
Color de Texto Normal0xFFFFFFFF (Blanco nítido)
Caja de Fondo al Enfocar0x22FFFFFF (Blanco translúcido)
Separador de Categoría0x44AAAAAA (Línea gris delimitadora)
Fondo de Botón Activo0x4400FF00 (Verde esmeralda)
Fondo de Botón Inactivo0x44FF0000 (Rojo rubí)
Narración de PantallaNarratedElementType.TITLE (NarrationPriority.HOVERED)

📖 Visión General

Minecraft 26.2 reestructuró el pipeline gráfico del cliente, trasladando las operaciones de dibujo a la arquitectura moderna GuiGraphicsExtractor.

Collapsible Game Rules está diseñado de forma nativa para este motor, aplicando rellenos vectoriales directos, centrado métrico tipográfico y lectura accesible sin caída de fotogramas.


🎨 Paleta de Colores de la Interfaz

ComponenteCódigo Hex ARGBDescripción VisualUso
Fondo al Pasar Cursor0x22FFFFFFRecuadro blanco con 13% de opacidad.Encabezado de categorías y botones globales.
Línea Separadora0x44AAAAAALínea gris clara de 1px con 27% de opacidad.Borde inferior de categorías y acciones globales.
Texto con Cursor Encima0xFFFFFFAATono amarillo claro destacado.Nombres de categorías y botones enfocados.
Texto Estándar0xFFFFFFFFBlanco puro al 100%.Nombres de categorías e insignias.
Insignia de ConteoChatFormatting.GRAYGris Vanilla ( (N rules)).Sufijo añadido tras el nombre de la categoría.
Fondo Activado0x4400FF00Verde esmeralda con 27% de opacidad.Fondo para estado ✔ ON en BooleanToggleWidget.
Fondo Desactivado0x44FF0000Rojo rubí con 27% de opacidad.Fondo para estado ✖ OFF en BooleanToggleWidget.

💻 Implementación de Renderizado

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);
}

🔊 Sonido y Respuestas Táctiles

  • Evento: SoundEvents.UI_BUTTON_CLICK
  • Volumen: 1.0F
  • Tono: 1.0F
  • Momentos de Disparo:
    • Clic izquierdo o derecho en el encabezado de una categoría.
    • Teclas Espacio / Enter sobre una categoría.
    • Flecha izquierda (plegar) o Flecha derecha (desplegar).
    • Clic en los botones «Expand All» o «Collapse All».

🔗 Documentación Relacionada

Official documentation & web portal for Dasik Igaijinn mods.