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), 所以这整套示例默认不可见。

相关