InteractableLayer
可交互图层绑定
基本信息
| 属性 | 值 |
|---|---|
| 路径 | com.gtnewhorizons.navigator.api.model.layers.InteractableLayer |
| 行数 | 31(api/model/layers 包最小) |
| 类型 | interface |
| 实现 | UniversalInteractableRenderer(25 行处 implements) |
接口规模
31 行全是 javadoc + 一个方法。
⚠️ 本接口没有自己的 draw ——
它只提供「这个图层可交互」的类型标记与
悬停状态的读写契约。
唯一实现
UniversalInteractableRenderer(200 行):
public class UniversalInteractableRenderer extends UniversalLayerRenderer implements InteractableLayer // :25
protected UniversalInteractableStep<?> hoveredRenderStep = null; // :29
⚠️ 只有 UniversalInteractableRenderer 实现本接口 —— 地图专用的 JMLayerRenderer 与 XaeroLayerRenderer 不实现, 即地图专用渲染路径下没有交互能力。
⚠️ 但 JMInteractableLayerRenderer(119 行)
与 XaeroInteractableLayerRenderer(110 行)
又提供了交互渲染器 —— 它们是独立的类,不走 InteractableLayer 接口。
即交互能力有 3 套实现(地图中立 + JM5 专用 + Xaero 专用),
但只有地图中立那套通过 InteractableLayer 接口暴露。
hoveredRenderStep 的作用
UniversalInteractableRenderer 的 hoveredRenderStep(:29)
记录当前鼠标悬停的渲染步骤,由 onMouseMove(:41-~52)更新,
供 onMapClick(:54)、getTooltip(:97)、
isMouseOver 系列使用。
⚠️ 字段类型是 UniversalInteractableStep<?>(带通配符)——
所以只能按 RenderStep 通用方式用,不能拿具体泛型参数。
相关
- UniversalInteractableRenderer - 唯一实现
- UniversalLocationInteractableStep - 被追踪的步骤类型
- InteractableLayerManager - 管理层