WaypointManager
路点管理接口
基本信息
| 属性 | 值 |
|---|---|
| 路径 | com.gtnewhorizons.navigator.api.model.waypoints.WaypointManager |
| 行数 | 25 |
| 类型 | abstract class |
| 子类 | JMWaypointManager、XaeroWaypointManager、JourneyMapV6WaypointManager、VoxelMapWaypointManager |
两个 final 字段(:9-10)
protected final InteractableLayerManager manager;
protected final SupportedMods mod;
| 字段 | 说明 |
|---|---|
manager |
所属的可交互图层管理器 |
mod |
目标地图模组 |
⚠️ 构造器参数名是 layerManager(:12)但字段名是 manager ——
参数名与字段名不同(this.manager = layerManager)。
⚠️ manager 类型是 InteractableLayerManager 而不是
LayerManager 基类 ——
所以路点管理只对可交互图层可用。
三个抽象方法
| 方法 | 行 | 语义 |
|---|---|---|
clearActiveWaypoint() |
:18-19 |
清除当前活动路点 |
updateActiveWaypoint(Waypoint) |
:21-22 |
设置/更新当前活动路点 |
hasWaypoint() |
:24-25 |
当前是否有活动路点 |
⚠️ 只有 3 个方法(约 6 行)—— 没有「增/删/列出路点」的方法。 说明本接口只管「活动路点」这 1 个状态, 批量路点的增删由地图模组自己的 API 负责 (JourneyMapV5Renderer、 JourneyMapV6Plugin 等内部类)。
⚠️ hasWaypoint() 返回 boolean 但没有 getActiveWaypoint() ——
拿不到当前路点对象!这是一个不对称的接口:
能问「有没有」但不能问「是哪个」。
消费方必须自己记住最后一次
updateActiveWaypoint 传的值。
四个子类
| 子类 | 行 | 目标 |
|---|---|---|
| JMWaypointManager | 65 | JourneyMap 5 |
| XaeroWaypointManager | 83 | Xaero |
| JourneyMapV6WaypointManager | 64 | JourneyMap 6 |
| VoxelMapWaypointManager | 75 | VoxelMap(死代码) |
⚠️ JM5 与 JM6 各一个实现 ——
两者的路点 API 完全不同,所以拆成两个类
(对应 Mixins 的 JOURNEYMAP_V5 / JOURNEYMAP_V6
两个独立构建器)。
相关
- Waypoint - 被管理的值对象
- InteractableLayerManager -
manager字段的类型 - UniversalInteractableStep - 双击调用
updateActiveWaypoint