public IDisposable Execute(IContextState <IEnumerator> state, IContext context) { var routine = state.Execute(context); var dispose = routine.RunWithSubRoutines(); return(dispose); }
public void Execute() { if (IsActive || _behaviour == null) { return; } IsActive = true; //activate state var routine = _behaviour.Execute(_entity); var disposableItem = routine.RunWithSubRoutines(); //add lifetime cleanup actions LifeTime.AddDispose(disposableItem); LifeTime.AddCleanUpAction(_behaviour.Exit); }
private void StartState(IContextState <TAwaiter> state, IContext context) { var routine = state.Execute(context); _stateExecution = _stateExecutor.Execute(routine); }