Skip to content

🖥️ HUD、诊断与 UI 渲染

参数规格说明
图形绘制引擎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 对客户端渲染管线进行了重大重构,将标准 GUI 绘制操作全面迁移至现代 GuiGraphicsExtractor 子系统。

Collapsible Game Rules 完全原生基于该绘图引擎构建,采用直接矢量颜色填充、字体度量居中计算与无障碍朗读输出,实现零帧率开销。


🎨 调色盘与视觉诊断

视觉组件ARGB 十六进制视觉外观描述应用位置
悬停填充0x22FFFFFF13% 不透明度白色矩形覆盖。类别标题悬停与全局按钮悬停。
边框分隔线0x44AAAAAA27% 不透明度浅灰 1px 分割线。类别标题与全局按钮的底部边缘。
悬停文本0xFFFFFFAA柔和亮黄色文本。鼠标悬停时的类别文本与按钮文本。
标准文本0xFFFFFFFF100% 纯白文本。类别标题文本与规则计数徽章。
计数徽章ChatFormatting.GRAY原版灰色文本 ( (N rules))。附加于类别标题后的后缀。
开关开启底色0x4400FF0027% 不透明度翡翠绿。BooleanToggleWidget✔ ON 状态背景。
开关关闭底色0x44FF000027% 不透明度宝石红。BooleanToggleWidget✖ OFF 状态背景。

💻 渲染实现细节

現代 GuiGraphicsExtractor 管线

CollapsibleCategoryRuleEntry.extractContent(...) 内部:

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
  • 触发时机:
    • 鼠标左键或右键点击类别标题。
    • 键盘按下空格键 / 回车键切换类别。
    • 键盘按下左方向键(折叠)或右方向键(展开)。
    • 鼠标点击 [ Expand All ][ Collapse All ] 按钮。

🔗 相关文档

Official documentation & web portal for Dasik Igaijinn mods.