JourneyMapV6Plugin
JM6 插件(847 行,全 mod 最大文件)
基本信息
| 属性 | 值 |
|---|---|
| 路径 | com.gtnewhorizons.navigator.internal.journeymap.v6.JourneyMapV6Plugin |
| 行数 | 847(全 mod 最大文件) |
| 手段 | JM6 官方插件 API(非 mixin) |
为何最大
LayerManager 是 623 行 (本 mod 第 2 大),本类 847 行超过它。
| 地图 | 全屏接入方式 | 行数 |
|---|---|---|
| JM5 | mixin(FullscreenMixin) | 343 |
| JM6 | 本类(官方插件 API) | 847 |
| Xaero World Map | mixin(GuiMapMixin) | 332 |
⚠️ JM6 是三条路径里最长的,
而 README.md 却把 JM5 的 API 标为废弃
(deprecated because they support only JourneyMap 5)。
即:最长的实现对应最新的地图版本, 而较短的 mixin 实现反而被废弃 —— 因为 mixin 方案无法同时支持两个版本。
承担全部 JM6 能力
| 能力 | 对应 API |
|---|---|
| 图层渲染 | LayerRenderer + UniversalRenderStep |
| JM6 原生 overlay | UniversalLayerRenderer.withJourneyMapV6Overlays(:89-107) |
| 点击交互 | UniversalInteractableRenderer.onMapClick(:54) |
| 路点 | JourneyMapV6WaypointManager(64 行) |
| 搜索 | SearchBar |
⚠️ withJourneyMapV6Overlays 的两个重载
(:89-99 / :101-107)的第 2 个带 boolean 参数,
对应 journeyMapV6OverlaysReplaceRenderSteps()(:122-126)——
overlay 替代渲染步骤还是叠加,二选一。
仍需 mixin 的部分
JourneyMapV6FullscreenMixin(42 行) 与 MapChatMixin(28 行) —— 共 70 行 的 mixin 仍存在,用于输入拦截与搜索框绘制。
所以 JM6 是「插件 API 为主 + 少量 mixin 补输入」。
与 JM5 的对比总结
| 维度 | JM5 | JM6 |
|---|---|---|
| 接入手段 | 纯 mixin(7 个,621 行) | 插件 API(847 行)+ 2 个 mixin(70 行) |
| 状态标记 | JourneyMapV5Fullscreen(18 行) | 本类 |
| 渲染器 | JMLayerRenderer(已废弃) | 本类 + 地图中立 API |
| 路点 | JMWaypointManager(65 行) | JourneyMapV6WaypointManager(64 行) |
| 版本判定 | Util.isJourneyMapV5Installed() |
Util.isJourneyMapV6Installed() |
相关
- JourneyMapIntegration - 上层门面
- JourneyMapV6WaypointManager - 同包路点管理
- UniversalLayerRenderer -
withJourneyMapV6Overlays - JourneyMapV6FullscreenMixin - 仍需的输入 mixin