java.lang.Object
cn.wjybxx.btree.Task<T>
cn.wjybxx.btree.Decorator<T>
cn.wjybxx.btree.fsm.StateMachineTask<T>
cn.wjybxx.btree.fsm.StackStateMachineTask<T>
- 所有已实现的接口:
ICancelTokenListener
栈式状态机,在普通状态机的基础上支持了redo和undo
- 作者:
- wjybxx date - 2023/12/1
-
字段概要
从类继承的字段 cn.wjybxx.btree.fsm.StateMachineTask
handler, initStateName, stateCfgs, tempNextState从类继承的字段 cn.wjybxx.btree.Decorator
child, inlineHelper -
构造器概要
构造器 -
方法概要
修饰符和类型方法说明final booleanaddRedoState(Task<T> curState) 向redo队列中添加一个状态final booleanaddUndoState(Task<T> curState) 向undo队列中添加一个状态protected voidbeforeChangeState(Task<T> curState, Task<T> nextState) protected voidexit()该方法在Task进入完成状态时执行 1.该方法与Task.enter(int)对应,通常用于停止Task.enter(int)中启动的逻辑。intint查看redo对应的state查看undo对应的statefinal booleanredoChangeState(ChangeStateArgs changeStateArgs) 重新进入到下一个状态void重置任务以便重新启动(清理运行产生的所有临时数据)final voidsetRedoQueueCapacity(int capacity) 设置redo队列大小final voidsetUndoQueueCapacity(int capacity) 设置undo队列大小final booleanundoChangeState(ChangeStateArgs changeStateArgs) 撤销到前一个状态从类继承的方法 cn.wjybxx.btree.fsm.StateMachineTask
addStateCfg, beforeEnter, changeState, changeState, changeState, changeState, changeState, execute, findStateMachine, findStateMachine, getCurState, getHandler, getInitStateName, getName, getStateCfg, getStateCfg, getStateCfgs, onChildCompleted, onChildRunning, redoChangeState, setHandler, setInitStateName, setName, setStateCfgs, undoChangeState从类继承的方法 cn.wjybxx.btree.Decorator
addChildImpl, 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, isBreakInline, isCancelled, 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, setBreakInline, setCancelled, setCancelToken, 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
-
构造器详细资料
-
StackStateMachineTask
public StackStateMachineTask()
-
-
方法详细资料
-
peekUndoState
查看undo对应的state -
peekRedoState
查看redo对应的state -
setUndoQueueCapacity
public final void setUndoQueueCapacity(int capacity) 设置undo队列大小 -
setRedoQueueCapacity
public final void setRedoQueueCapacity(int capacity) 设置redo队列大小 -
addUndoState
向undo队列中添加一个状态- 返回:
- 是否添加成功
-
addRedoState
向redo队列中添加一个状态- 返回:
- 是否添加成功
-
undoChangeState
撤销到前一个状态- 覆盖:
undoChangeState在类中StateMachineTask<T>- 返回:
- 如果有前一个状态则返回true
-
redoChangeState
重新进入到下一个状态- 覆盖:
redoChangeState在类中StateMachineTask<T>- 返回:
- 如果有下一个状态则返回true
-
resetForRestart
public void resetForRestart()从类复制的说明:Task重置任务以便重新启动(清理运行产生的所有临时数据)1. 和exit一样,清理的是运行时产生的临时数据,而不是所有数据;不过该方法是比exit更彻底的清理。 2. 钩子任务也应当被重置。 3. 与
Task.beforeEnter()相同,重写方法时,应先执行父类逻辑,再重置自身属性。 4. 有临时数据的Task都应该重写该方法,行为树通常是需要反复执行的。- 覆盖:
resetForRestart在类中StateMachineTask<T>
-
exit
protected void exit()从类复制的说明:Task该方法在Task进入完成状态时执行 1.该方法与Task.enter(int)对应,通常用于停止Task.enter(int)中启动的逻辑。 2.该方法也用于清理部分运行时产生的临时数据。 3.一定记得取消注册的各种监听器。- 覆盖:
exit在类中StateMachineTask<T>
-
beforeChangeState
- 覆盖:
beforeChangeState在类中StateMachineTask<T>
-
getUndoQueueCapacity
public int getUndoQueueCapacity() -
getRedoQueueCapacity
public int getRedoQueueCapacity()
-