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 两个独立构建器)。

相关