DrawUtils
绘制辅助(291 行)
基本信息
| 属性 | 值 |
|---|---|
| 路径 | com.gtnewhorizons.navigator.api.util.DrawUtils |
| 行数 | 291(api/util 包最大文件) |
地图中立绘制层需要跨 3 个地图模组(JM5 / JM6 / Xaero)统一画图, 而三者的渲染 API 各不相同。本类提供与地图模组无关的绘制原语。
承担的工作
| 类别 | 说明 |
|---|---|
| 矩形 / 线段 | 地图中立的基本图元 |
| 文本 | 需适配三种地图的字体与缩放 |
| 图标 | 图层按钮图标(见 ButtonManager 的 getIcon(SupportedMods, String)) |
| 缩放换算 | 屏幕 ↔ 方块 ↔ 区块坐标 |
⚠️ getIcon(SupportedMods mod, String theme) 带 theme 参数 ——
说明三个地图模组的图标主题机制不同
(JourneyMap 有自己的主题,Xaero 的图标集也不同),
所以 ButtonManager 的实现方要按 mod + theme 返回不同 ResourceLocation。
与地图专用渲染器的关系
| 类别 | 类 |
|---|---|
| 地图中立 | UniversalLayerRenderer → UniversalRenderStep |
| JourneyMap 5 | JMLayerRenderer → JMRenderStep |
| Xaero | XaeroLayerRenderer → XaeroRenderStep |
⚠️ README.md 明确说 JM5 专用 API 已废弃
(The JourneyMap-specific renderer and render-step APIs are deprecated because they support only JourneyMap 5)。
所以本类是推荐的实现路径。
规模说明
291 行在「工具类」里偏大,但因为要同时适配 JM5 的 GL 状态、JM6 的新插件 API、Xaero 的渲染器, 属于被三方差异撑起来的体积,不是冗余。
相关
- UniversalRenderStep - 主要调用方
- ClickPos - 坐标换算的协作类
- SizedGuiTexturedButton - 按钮绘制