类 ChangeStateTask<T>

java.lang.Object
cn.wjybxx.btree.Task<T>
cn.wjybxx.btree.LeafTask<T>
cn.wjybxx.btree.fsm.ChangeStateTask<T>
所有已实现的接口:
ICancelTokenListener

public class ChangeStateTask<T> extends LeafTask<T>
作者:
wjybxx date - 2023/12/1
  • 构造器详细资料

    • ChangeStateTask

      public ChangeStateTask()
    • ChangeStateTask

      public ChangeStateTask(Task<T> nextState)
  • 方法详细资料

    • resetForRestart

      public void resetForRestart()
      从类复制的说明: Task
      重置任务以便重新启动(清理运行产生的所有临时数据)

      1. 和exit一样,清理的是运行时产生的临时数据,而不是所有数据;不过该方法是比exit更彻底的清理。 2. 钩子任务也应当被重置。 3. 与Task.beforeEnter()相同,重写方法时,应先执行父类逻辑,再重置自身属性。 4. 有临时数据的Task都应该重写该方法,行为树通常是需要反复执行的。

      覆盖:
      resetForRestart 在类中 Task<T>
    • execute

      protected void execute()
      从类复制的说明: Task
      Task的心跳方法,在Task进入完成状态之前会反复执行。 1.运行中可通过Task.setSuccess()Task.setFailed(int)Task.setCancelled()将自己更新为完成状态。 2.如果不想和Task.enter(int)同步执行,可通过Task.setSlowStart(boolean)实现。 3.不建议直接调用该方法,而是通过模板方法Task.template_execute(boolean)运行。
      指定者:
      execute 在类中 Task<T>
    • onEventImpl

      protected void onEventImpl(@Nonnull Object event)
      从类复制的说明: Task
      对于控制节点,通常将事件派发给约定的子节点或钩子节点。 对于叶子节点,通常自身处理事件。 注意: 1.转发事件时应该调用子节点的Task.onEvent(Object)方法 2.在AI这样的领域中,建议将事件转化为信息存储在Task或黑板中,而不是尝试立即做出反应。
      指定者:
      onEventImpl 在类中 Task<T>
    • getNextStateGuid

      public String getNextStateGuid()
    • setNextStateGuid

      public void setNextStateGuid(String nextStateGuid)
    • getNextState

      public Task<T> getNextState()
    • setNextState

      public void setNextState(Task<T> nextState)
    • getStateProps

      public Object getStateProps()
    • setStateProps

      public void setStateProps(Object stateProps)
    • getMachineName

      public String getMachineName()
    • setMachineName

      public void setMachineName(String machineName)
    • getDelayMode

      public byte getDelayMode()
    • setDelayMode

      public void setDelayMode(byte delayMode)
    • getDelayArg

      public int getDelayArg()
    • setDelayArg

      public void setDelayArg(int delayArg)