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 的渲染器, 属于被三方差异撑起来的体积,不是冗余。

相关