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()

相关