Skip to content

🖥️ HUD, диагностика и отрисовка интерфейса ​

ПараметрСпецификация
Движок отрисовкиnet.minecraft.client.gui.GuiGraphicsExtractor
Экранный контекстnet.minecraft.client.gui.screens.worldselection.AbstractGameRulesScreen
Цвет текста при наведении0xFFFFFFAA (Мягкая желтая подсветка)
Обычный цвет текста0xFFFFFFFF (Яркий белый)
Фон заголовка при наведении0x22FFFFFF (Полупрозрачный белый прямоугольник)
Разделитель категорий0x44AAAAAA (Горизонтальная линия)
Цвет включенного переключателя0x4400FF00 (Изумрудно-зеленый)
Цвет выключенного переключателя0x44FF0000 (Рубиново-красный)
Озвучивание доступностиNarratedElementType.TITLE (NarrationPriority.HOVERED)

📖 Обзор механики ​

Minecraft 26.2 существенно модернизировал графический конвейер клиента, переведя стандартные операции отрисовки на подсистему GuiGraphicsExtractor.

Collapsible Game Rules изначально оптимизирован под этот движок, обеспечивая прямое заполнение векторных областей, центрирование текста и поддержку экранного диктора без просадок FPS.


🎨 Цветовая палитра интерфейса ​

КомпонентШестнадцатеричный ARGBОписаниеМесто применения
Заливка при наведении0x22FFFFFF13% полупрозрачный белый оверлей.Заголовки категорий и кнопки панели действий.
Разделительная черта0x44AAAAAA27% полупрозрачная серая линия толщиной 1px.Нижняя грань заголовков и панели действий.
Текст при наведении0xFFFFFFAAМягкий желтый оттенок.Названия категорий и кнопок при наведении мыши.
Стандартный текст0xFFFFFFFF100% белый цвет.Названия категорий и значок количества правил.
Значок количества правилChatFormatting.GRAYВанильный серый цвет ( (N rules)).Суффикс после названия категории.
Фон включенного режима0x4400FF0027% полупрозрачный зеленый.Фон переключателя BooleanToggleWidget в режиме ✔ ON.
Фон выключенного режима0x44FF000027% полупрозрачный красный.Фон переключателя BooleanToggleWidget в режиме ✖ OFF.

💻 Детали реализации отрисовки ​

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

🔊 Звуковые сигналы и обратная связь ​

  • Событие: SoundEvents.UI_BUTTON_CLICK
  • Громкость: 1.0F
  • Высота тона: 1.0F
  • Условия срабатывания:
    • Клик левой или правой кнопкой мыши по категории.
    • Нажатие Пробела или Enter на заголовке категории.
    • Стрелка влево (свернуть) или Стрелка вправо (развернуть).
    • Клики по кнопкам «Развернуть все» и «Свернуть все».

🔗 Связанная документация ​

Official documentation & web portal for Dasik Igaijinn mods.