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 通用方式用,不能拿具体泛型参数。

相关