DirtyChunkLayerManager
脏区块调试图层
基本信息
| 属性 | 值 |
|---|---|
| 路径 | com.gtnewhorizons.navigator.impl.DirtyChunkLayerManager |
| 行数 | 100 |
| 父类 | LayerManager |
| 单例 | INSTANCE |
本仓唯一的可见图层
⚠️ 默认不生效 ——
ClientProxy(:22-24)只在
GeneralConfig.enableDebugLayers(默认 false,
见 GeneralConfig)为真时注册本单例。
即:这是本 mod 自带的唯一可见图层,而且是调试用的、默认关闭的。
INSTANCE 单例
NavigatorApi.registerLayerManager(DirtyChunkLayerManager.INSTANCE); // clientproxy :23
⚠️ 本类在根包 com.gtnewhorizons.navigator.impl(无子包),
与 internal(非公开)和 api(公开)并列。
⚠️ 4 个 impl 类都在同一个包(无子目录)——
与 api/model/{layers,steps,...} 的多子包结构相反。
图层内容
「脏区块」= 被修改过(block change / 玩家交互)的区块。
本类用 ILocationProvider 表示每个脏区块,
通过 LayerManager 的
addExtraLocation(:494-498,支持非区块网格)
与 invalidateLocation 系列维护。
100 行的构成
| 成员 | 作用 |
|---|---|
INSTANCE |
单例 |
addLayerRenderer(LayerManager, SupportedMods) |
为 3 个地图模组各造渲染器 |
generateLocation(...) 重载 |
生成脏区块数据点 |
onUpdatePre / onUpdatePost |
缓存前后钩子 |
| DirtyChunkButtonManager 的持有 | 图层按钮 |
4 个 impl 类的协作
| 类 | 行 | 角色 |
|---|---|---|
| 本类 | 100 | 图层管理 |
| DirtyChunkButtonManager | 24 | 图层按钮 |
| DirtyChunkLocation | 63 | 数据源(ILocationProvider 实现) |
| DirtyChunkRenderStep | 39 | 渲染步骤 |
⚠️ 4 个类合起来 226 行 —— 构成一个完整的「数据源 → 图层 → 按钮 → 渲染」最小示例, 即本 mod 的参考实现 / 使用范本。
⚠️ DirtyChunkRenderStep(39 行)
很可能是 UniversalRenderStep 的子类
(UniversalRenderStep 280 行是地图中立基类)。
相关
- ClientProxy - 注册方(条件注册)
- GeneralConfig -
enableDebugLayers(默认false) - DirtyChunkButtonManager / DirtyChunkLocation / DirtyChunkRenderStep - 同包三兄弟
- LayerManager - 父类