WaypointManagerMixin

LATE JM5:路点管理器

基本信息

属性 值
路径 com.gtnewhorizons.navigator.mixins.late.journeymap.WaypointManagerMixin
行数 27
注解 @Mixin(WaypointManager.class)(:14)
构建器 Mixins 的 JOURNEYMAP_V5

⚠️ 目标类名 WaypointManager 与本 mod 自己的 WaypointManager 同名 —— 但完全不同的类:

类 包 角色
本 mod 的 WaypointManager com.gtnewhorizons.navigator.api.model.waypoints 抽象基类(25 行)
JM5 的 WaypointManager journeymap.common(描述符推断) mixin 目标

⚠️ 本文件无 remap = false(@Mixin 层), 所以字段/方法映射靠注入点上的 remap = false 补救。

唯一的 @Inject(:17)

@Inject(method = "toggleItems", at = @At("HEAD"), remap = false, require = 1)
参数 值
method toggleItems(短名,无描述符)
at @At("HEAD")
remap false(写在注入点上)
require 1

⚠️ remap = false 写在 @Inject 上而非 @Mixin 上 —— 这解释了同构建器内 @Mixin 层 remap 设置不一致却仍能工作。

⚠️ require = 1 与 MiniMapMixin 相同 —— 签名不匹配就崩,不静默跳过。

注入目的

toggleItems 是 JM5 路点管理器里「切换(勾选)路点」的方法 (地图上点路点条目的开关)。

Navigator 注入它是为了让 JMWaypointManager(65 行) 或 InteractableLayerManager 的 setActiveWaypoint / clearActiveWaypoint(:82-104) 与 JM5 内部的勾选状态保持同步。

⚠️ 在 HEAD 注入 = 注入代码先于原方法体执行, 所以可以在原逻辑前改字段/取消。

三个"路点管理器"的对照

类 行 角色
WaypointManager 25 本 mod 抽象基类(3 个抽象方法)
JMWaypointManager 65 本类实现(JM5 侧)
本 mixin 27 mixin 目标 JM5 的 WaypointManager

⚠️ 三个名字高度相似,但一个是抽象基类、一个是实现、一个是 mixin。

相关