Example #1
0
        private IEnumerator PatchRoutine(IEnumerator routine, bool Split, CoroutineQueue instance)
        {
            if (!Split)
            {
                yield return(routine);
            }
            else
            {
                while (routine.MoveNext())
                {
                    var CurrentOBJ = routine.Current;
                    if (CurrentOBJ != null && CurrentOBJ.GetType() == typeof(SkipRequeue))
                    {
                        yield return(((SkipRequeue)CurrentOBJ).Value);
                    }
                    else
                    {
                        yield return(CurrentOBJ);

                        instance.QueueRoutine(new CoroutineEntry(routine, true, instance, Module), true);
                        break;
                    }
                }
            }
            instance.CoroutineRunning = false;
            instance.CallNext();
        }