IEnumerator InterruptSequencer(Sequencable input) { _interrupted = true; if (_currentlySequencing) { _currentlySequencing.Interrupt(); } if (input) { yield return(input.GiveTurn()); } _counter = 0; yield return(Wait(IntervalAfterInterrupt)); _interrupted = false; }
public IEnumerator Execute() { yield return(Wait(InitialInterval)); while (true) { if (_interrupted) { yield return(null); } else { _currentlySequencing = Sequencables[_counter % Sequencables.Length]; _counter++; yield return(_currentlySequencing.GiveTurn()); } } }