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。
相关
- Mixins -
JOURNEYMAP_V5构建器 - JMWaypointManager - 本 mod 侧实现
- WaypointManager - 抽象基类