Skip to content

🖥️ HUD, Diagnósticos & Renderização de Interface

ParâmetroEspecificação
Motor Gráficonet.minecraft.client.gui.GuiGraphicsExtractor
Contexto de Telanet.minecraft.client.gui.screens.worldselection.AbstractGameRulesScreen
Cor do Texto ao Focar0xFFFFFFAA (Destaque amarelo suave)
Cor do Texto Normal0xFFFFFFFF (Branco nítido)
Caixa de Foco Superior0x22FFFFFF (Branco translúcido)
Divisória de Categoria0x44AAAAAA (Borda horizontal)
Fundo de Botão Ativo0x4400FF00 (Verde esmeralda)
Fundo de Botão Inativo0x44FF0000 (Vermelho rubi)
Narração de AcessibilidadeNarratedElementType.TITLE (NarrationPriority.HOVERED)

📖 Visão Geral

O Minecraft 26.2 modernizou profundamente a estrutura de renderização do cliente, migrando comandos convencionais de desenho para o subsistema GuiGraphicsExtractor.

O Collapsible Game Rules aproveita esse motor graficamente moderno para desenho direto de polígonos, centralização baseada na tipografia e suporte a leitores de tela sem perda de quadros por segundo.


🎨 Paleta de Cores da Interface

Componente VisualCódigo Hex ARGBDescriçãoOnde é Aplicado
Preenchimento de Foco0x22FFFFFFFundo branco com 13% de opacidade.Destaque de categorias e botões globais.
Borda Divisória0x44AAAAAALinha cinza clara de 1px com 27% de opacidade.Parte inferior de categorias e ações.
Texto com Cursor0xFFFFFFAAAmarelo suave luminoso.Rótulos de categorias e botões ao passar o mouse.
Texto Padrão0xFFFFFFFFBranco 100% puro.Títulos principais e contagem de regras.
Emblema de ContagemChatFormatting.GRAYCinza Vanilla ( (N rules)).Sufixo adicionado aos títulos de categoria.
Fundo do Modo Ligado0x4400FF00Verde esmeralda com 27% de opacidade.Fundo para o estado ✔ ON em BooleanToggleWidget.
Fundo do Modo Desligado0x44FF0000Vermelho rubi com 27% de opacidade.Fundo para o estado ✖ OFF em BooleanToggleWidget.

💻 Implementação do Renderizador

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

🔊 Retorno Sonoro e Acessibilidade

  • Evento: SoundEvents.UI_BUTTON_CLICK
  • Volume: 1.0F
  • Pitch: 1.0F
  • Disparadores:
    • Clique esquerdo ou direito sobre um cabeçalho.
    • Teclas Espaço / Enter sobre uma categoria focada.
    • Seta esquerda (recolher) ou Seta direita (expandir).
    • Cliques em «Expand All» ou «Collapse All».

🔗 Documentação Relacionada

Official documentation & web portal for Dasik Igaijinn mods.