java.lang.Object
cn.wjybxx.btree.Task<T>
cn.wjybxx.btree.Decorator<T>
cn.wjybxx.btree.decorator.LoopDecorator<T>
cn.wjybxx.btree.decorator.UntilCond<T>
- 所有已实现的接口:
ICancelTokenListener
循环子节点直到给定的条件达成
- 作者:
- wjybxx date - 2023/12/1
-
字段概要
从类继承的字段 cn.wjybxx.btree.decorator.LoopDecorator
curLoop, maxLoop从类继承的字段 cn.wjybxx.btree.Decorator
child, inlineHelper -
构造器概要
构造器 -
方法概要
修饰符和类型方法说明getCond()protected voidonChildCompleted(Task<T> child) 子节点进入完成状态 1.避免方法数太多,实现类测试task的status即可 2.Task.getNormalizedStatus()有助于switch测试 3.task可能是取消状态,甚至可能没运行过直接失败(前置条件失败) 4.钩子任务和guard不会调用该方法 5.同一子节点连续通知的情况下,completed的逻辑应当覆盖Task.onChildRunning(Task, boolean)的影响。protected voidonChildRunning(Task<T> child, boolean starting) 子类如果支持内联,则重写该方法(超类不能安全内联)void重置任务以便重新启动(清理运行产生的所有临时数据)void从类继承的方法 cn.wjybxx.btree.decorator.LoopDecorator
beforeEnter, execute, getMaxLoop, hasNextLoop, setMaxLoop从类继承的方法 cn.wjybxx.btree.Decorator
addChildImpl, exit, getChild, getChild, getChildCount, getInlineHelper, indexChild, onEventImpl, removeChildImpl, setChild, setChildImpl, stopRunningChildren, visitChildren从类继承的方法 cn.wjybxx.btree.Task
addChild, canHandleEvent, checkCancel, enter, exportControlFlowOptions, getBlackboard, getCancelToken, getControl, getControlData, getControlFlowOptions, getEnterFrame, getEntity, getExitFrame, getFlags, getGuard, getNormalizedStatus, getPrevStatus, getReentryId, getRunFrames, getSharedProps, getStatus, getTaskEntry, isActiveInHierarchy, isActiveSelf, isAutoListenCancel, isAutoResetChildren, isBlackboardPerChild, isBreakInline, isCancelled, isCancelTokenPerChild, isCheckingGuard, isCompleted, isExited, isFailed, isFailedOrCancelled, isInlinable, isInvertedGuard, isManualCheckCancel, isRunning, isSlowStart, isStillborn, isSucceeded, onActiveInHierarchyChanged, onCancelRequested, onEvent, refreshActiveInHierarchy, registerCancelListener, removeAllChild, removeChild, removeChild, resetChildrenForRestart, resetForRestart, setActive, setAutoListenCancel, setAutoResetChildren, setBlackboard, setBlackboardPerChild, setBreakInline, setCancelled, setCancelToken, setCancelTokenPerChild, setChild, setChildCancelToken, setCompleted, setControl, setControlData, setEnterFrame, setExitFrame, setFailed, setFlags, setGuard, setGuardFailed, setInvertedGuard, setManualCheckCancel, setPrevStatus, setSharedProps, setSlowStart, setSuccess, stop, stop, stop, template_checkGuard, template_execute, template_executeInlined, template_startChild, template_startHook, unsetChildCancelToken, unsetControl
-
构造器详细资料
-
UntilCond
public UntilCond()
-
-
方法详细资料
-
resetForRestart
public void resetForRestart()从类复制的说明:Task重置任务以便重新启动(清理运行产生的所有临时数据)1. 和exit一样,清理的是运行时产生的临时数据,而不是所有数据;不过该方法是比exit更彻底的清理。 2. 钩子任务也应当被重置。 3. 与
Task.beforeEnter()相同,重写方法时,应先执行父类逻辑,再重置自身属性。 4. 有临时数据的Task都应该重写该方法,行为树通常是需要反复执行的。- 覆盖:
resetForRestart在类中Decorator<T>
-
onChildRunning
从类复制的说明:Decorator子类如果支持内联,则重写该方法(超类不能安全内联)- 覆盖:
onChildRunning在类中Decorator<T>- 参数:
starting- 是否是启动时调用,即首次调用
-
onChildCompleted
从类复制的说明:Task子节点进入完成状态 1.避免方法数太多,实现类测试task的status即可 2.Task.getNormalizedStatus()有助于switch测试 3.task可能是取消状态,甚至可能没运行过直接失败(前置条件失败) 4.钩子任务和guard不会调用该方法 5.同一子节点连续通知的情况下,completed的逻辑应当覆盖Task.onChildRunning(Task, boolean)的影响。 6.任何的回调和事件方法中都由用户自身检测取消信号- 指定者:
onChildCompleted在类中Task<T>
-
getCond
-
setCond
-