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(); }