DirtyChunkButtonManager
调试图层按钮
基本信息
| 属性 | 值 |
|---|---|
| 路径 | com.gtnewhorizons.navigator.impl.DirtyChunkButtonManager |
| 行数 | 24 |
| 父类 | ButtonManager(90 行) |
本 mod 对 ButtonManager 的唯一实现
24 行实现 ButtonManager 的 2 个抽象方法(各约 10 行)。
| 抽象方法 | 实现要点 |
|---|---|
getIcon(SupportedMods mod, String theme) |
按 mod 返回不同 ResourceLocation;theme 大概率被忽略 |
getButtonText() |
返回固定文本(3 个地图共用,见 ButtonManager 条目) |
⚠️ getIcon 的 theme 参数被忽略 ——
所以本示例不演示主题适配。
DrawUtils 与 ButtonManager 提到的主题差异
在本示例里没体现。
是消费方设 setOnToggle 的
ButtonManager 的
onToggle(:20)初值 null,必须由
LayerManager 或
DirtyChunkLayerManager
调 setOnToggle(...) 注入回调 —— 否则 toggle() 会 NPE。
⚠️ 24 行里应该包含这个 setOnToggle 调用,
否则本按钮不可用(点一下就崩)。
参考实现的定位
4 个 impl 类构成完整最小示例:
DirtyChunkLocation (ILocationProvider 实现,63 行)
↓
DirtyChunkLayerManager (LayerManager,100 行) ← 单例 INSTANCE
↓
DirtyChunkRenderStep (渲染步骤,39 行)
↑
DirtyChunkButtonManager (ButtonManager,24 行)
⚠️ 默认不注册(enableDebugLayers 默认 false),
所以这整套示例默认不可见。
相关
- ButtonManager - 父类
- DirtyChunkLayerManager - 持有者
- GeneralConfig -
enableDebugLayers - SizableGuiTexturedButton - Xaero 按钮控件