WaypointWithDimension
带维度的 Xaero 路点
基本信息
| 属性 | 值 |
|---|---|
| 路径 | com.gtnewhorizons.navigator.api.xaero.waypoints.WaypointWithDimension |
| 行数 | 31 |
| 包 | api/xaero/waypoints/(与 XaeroWaypointManager 同包) |
为什么需要这个类
Waypoint(29 行)已经带 dimensionId(:9)——
所以本类不是为了给本 mod 的路点加维度。
⚠️ 真实原因:Xaero 自己的路点 API 需要「位置 + 维度」成对传递,
而 Xaero 的类型是分开的(一个 Vec3d 位置 + 一个维度对象)。
本类把两者打包成一个可传递的值。
31 行的构成
| 成员 | 说明 |
|---|---|
| 位置字段 | Xaero 的位置类型(Vec3d 或 int 三元组) |
| 维度字段 | Xaero 的维度类型(通常是 DimensionID / int) |
| 构造器 | 位置 + 维度 |
可能:getX() / getY() / getZ() |
从 Waypoint 的 blockX/Y/Z 转 |
⚠️ 与 Waypoint 并存 ——
两个「路点」类型:一个是本 mod 中立的(29 行,6 个 final 字段),
一个是 Xaero 专用的(31 行)。
四个路点相关类的行数
| 类 | 行 | 角色 |
|---|---|---|
| Waypoint | 29 | 本 mod 中立路点值对象 |
| 本类 | 31 | Xaero 专用的「位置+维度」打包 |
| XaeroWaypointManager | 83 | Xaero 路点管理 |
| WaypointManager | 25 | 本 mod 抽象基类 |
⚠️ 本类(31 行)比中立的 Waypoint(29 行)还多 2 行 —— 即为了适配 Xaero 多付出的代码量超过了中立路点类型本身。
这解释了为什么 XaeroWaypointManager 是四个实现里最大的(83 行) (对比 JM5 65 行 / JM6 64 行)—— 见该条目的说明。
转换方向
[Waypoint](../model/waypoint)(中立,6 字段)
│ 转换
▼
[WaypointWithDimension](Xaero 专用,31 行)
│ 传给
▼
Xaero 地图 API
⚠️ 转换发生在
XaeroWaypointManager 的
updateActiveWaypoint(Waypoint)(父类抽象方法,
见 WaypointManager 的 :21-22)里。
相关
- Waypoint - 中立路点值对象
- XaeroWaypointManager - 唯一使用方(83 行)
- WaypointManager - 抽象基类