Interface IBehaviorGroup

All Known Implementing Classes:
BehaviorGroup, EmptyBehaviorGroup

@PowerNukkitXOnly @Since("1.6.0.0-PNX") public interface IBehaviorGroup
行为组是一个基本的、独立的AI单元 它由若干个(核心)行为IBehavior、控制器IController、传感器ISensor以及一个寻路器IRouteFinder和记忆存储器IMemoryStorage组成 注:核心行为指的是不会被行为优先级影响的行为,其激活状态只取决于其自身的评估器
  • Method Details

    • evaluateBehaviors

      void evaluateBehaviors(EntityIntelligent entity)
      调用行为组内部的所有行为IBehavior的评估器IBehaviorEvaluator
      Parameters:
      entity - 目标实体对象
    • evaluateCoreBehaviors

      void evaluateCoreBehaviors(EntityIntelligent entity)
      调用行为组内部的所有核心行为IBehavior的评估器IBehaviorEvaluator
      Parameters:
      entity - 目标实体对象
    • collectSensorData

      void collectSensorData(EntityIntelligent entity)
      调用行为组内部的所有传感器ISensor,并将传感器返回的记忆数据写入到记忆存储器中IMemoryStorage
      Parameters:
      entity - 目标实体对象
    • tickRunningBehaviors

      void tickRunningBehaviors(EntityIntelligent entity)
      调用行为组内部所有被激活的行为IBehavior的执行器IBehaviorExecutor
      Parameters:
      entity - 目标实体对象
    • tickRunningCoreBehaviors

      void tickRunningCoreBehaviors(EntityIntelligent entity)
      调用行为组内部所有被激活的核心行为IBehavior的执行器IBehaviorExecutor
      Parameters:
      entity - 目标实体对象
    • applyController

      void applyController(EntityIntelligent entity)
      应用行为内部所有的控制器IController
      Parameters:
      entity - 目标实体对象
    • getBehaviors

      Set<IBehavior> getBehaviors()
      Returns:
      行为组包含的行为 IBehavior
    • getCoreBehaviors

      Set<IBehavior> getCoreBehaviors()
      Returns:
      行为组包含的核心行为 IBehavior
    • getRunningBehaviors

      Set<IBehavior> getRunningBehaviors()
      Returns:
      被激活的行为 IBehavior
    • getRunningCoreBehaviors

      Set<IBehavior> getRunningCoreBehaviors()
      Returns:
      被激活的核心行为 IBehavior
    • getSensors

      Set<ISensor> getSensors()
      Returns:
      行为组包含的传感器 ISensor
    • getControllers

      Set<IController> getControllers()
      Returns:
      行为组包含的控制器 IController
    • getRouteFinder

      IRouteFinder getRouteFinder()
      Returns:
      行为组使用的寻路器 IRouteFinder
    • updateRoute

      void updateRoute(EntityIntelligent entity)
      通过行为组使用的寻路器更新当前位置到目标位置路径
      Parameters:
      entity - 目标实体
    • getMemoryStorage

      IMemoryStorage getMemoryStorage()
      Returns:
      行为组的记忆存储器 IMemoryStorage
    • isForceUpdateRoute

      boolean isForceUpdateRoute()
      Returns:
      下一gt是否强制更新路径
    • setForceUpdateRoute

      void setForceUpdateRoute(boolean forceUpdateRoute)
      要求下一gt立即更新路径
      Parameters:
      forceUpdateRoute - 立即更新路径
    • debugTick

      default void debugTick(EntityIntelligent entity)
      EntityAI.DEBUG == true 时此方法每1gt调用一次,用于debug模式相关内容的刷新