private System.Collections.Generic.IEnumerator <float> InnerRunOperation(System.Collections.Generic.IEnumerator <float> coroutine) { yield return(MEC.Timing.WaitUntilDone(MEC.Timing.RunCoroutine(coroutine))); CurrentState = AsyncTimingOperationLoadingState.Completed; OnCompleted?.Invoke(); }
public AsyncTimingOperation Run() { if (CurrentState == AsyncTimingOperationLoadingState.Running) { throw new AsyncTimingException(this, "Coroutine is alreay running"); } CurrentState = AsyncTimingOperationLoadingState.Running; MEC.Timing.RunCoroutine(InnerRunOperation(coroutine)); return(this); }
public AsyncTimingOperation() { CurrentState = AsyncTimingOperationLoadingState.Failed; }
public AsyncTimingOperation(System.Collections.Generic.IEnumerator <float> coroutine) { CurrentState = AsyncTimingOperationLoadingState.Initialized; this.coroutine = coroutine; }
public AsyncTimingException(IAsyncTiming timingOperation, string message) : base(message) { TimingOperation = timingOperation; StateWhenExceptionWasThow = timingOperation.CurrentState; }