导航 API
提供管理玩家导航、追踪任务目标位置、以及导航系统生命周期的功能
导航管理
这些方法用于创建、更新和销毁玩家的导航
创建或更新导航
为玩家创建或更新一个导航,使其追踪特定的任务目标
fun createOrUpdateNavigation(player: Player, objectiveEntity: ObjectiveEntity)fun createOrUpdateNavigation(player: Player, questEntity: QuestEntity)参数:
player: 要创建或更新导航的玩家实例objectiveEntity: 要追踪的目标数据实体questEntity: 要追踪的任务数据实体
功能:
- 根据提供的任务或目标数据,为玩家创建或更新一个导航如果玩家已有导航,系统会更新它;如果没有,则会创建一个新的
恢复导航
恢复玩家的导航,此操作仅在内存中进行,不会写入数据库
fun restoreNavigation(player: Player, navigationEntity: NavigationEntity)参数:
player: 玩家实例navigationEntity: 导航数据实体
功能:
- 将数据库中的导航数据加载到内存中,常用于玩家上线时恢复上次的导航状态
销毁导航
销毁玩家的指定导航,使其停止追踪
fun destroyNavigation(player: Player, objectiveEntity: ObjectiveEntity)fun destroyNavigation(player: Player, questEntity: QuestEntity)fun destroyNavigation(player: Player, questId: String)参数:
player: 玩家实例objectiveEntity: 要销毁的目标数据实体questEntity: 要销毁的任务数据实体questId: 任务的唯一标识符
功能:
- 销毁玩家对特定目标或任务的导航追踪
停止导航
停止玩家的所有导航通常用于玩家下线或退出游戏时
fun stopNavigation(player: Player)参数:
player: 玩家实例
功能:
- 清除玩家的所有导航数据,使其停止任何追踪行为
导航状态查询
这些方法用于查询玩家当前的导航状态
获取当前导航列表
获取玩家当前正在进行的所有导航上下文
fun getActiveNavigations(player: Player): List<NavigationContext>参数:
player: 玩家实例
返回:
- 返回一个包含
NavigationContext实例的列表
构建导航上下文
根据目标数据实体构建导航上下文
fun buildNavigationContext(player: Player, objectiveEntity: ObjectiveEntity): NavigationContext?参数:
player: 玩家实例objectiveEntity: 目标数据实体
返回:
- 返回对应的导航上下文
NavigationContext,如果无法构建则返回null
导航渲染器
这些方法用于管理导航的渲染方式,允许开发者自定义导航的显示效果
注册渲染器
注册一个或多个自定义导航渲染器
fun registerRenderer(vararg renderer: NavigationRenderer)参数:
renderer: 一个或多个实现了NavigationRenderer接口的实例
获取渲染器
根据 ID 获取已注册的导航渲染器
fun getRenderer(rendererId: String? = null): NavigationRenderer?参数:
rendererId: 渲染器的唯一标识符,默认为null
返回:
- 返回对应的
NavigationRenderer实例
导航系统生命周期
这些方法用于管理整个导航系统的生命周期
启动导航系统
启动导航系统的后台任务和功能
fun start()关闭导航系统
关闭导航系统的所有后台任务和功能
fun shutdown()