public static IEnumerator ReturnVoid(SimpleCoroutineAwaiter awaiter, object instruction)
            {
                // For simple instructions we assume that they don't throw exceptions
                yield return(instruction);

                awaiter.Complete(null);
            }
        public static IEnumerator ResourceRequest(
            SimpleCoroutineAwaiter <Object> awaiter, ResourceRequest instruction)
        {
            yield return(instruction);

            awaiter.Complete(instruction.asset, null);
        }
Example #3
0
        public static SimpleCoroutineAwaiter <T> GetAwaiter <T>(this IEnumerator <T> coroutine)
        {
            var awaiter = new SimpleCoroutineAwaiter <T>();

            RunOnUnityScheduler(() => TaskDelegator.Instance.StartCoroutine(new CoroutineWrapper <T>(coroutine, awaiter).Run()));
            return(awaiter);
        }
Example #4
0
        public static SimpleCoroutineAwaiter <UnityEngine.Object> GetAwaiter(this AssetBundleRequest instruction)
        {
            var awaiter = new SimpleCoroutineAwaiter <UnityEngine.Object>();

            RunOnUnityScheduler(() => TaskDelegator.Instance.StartCoroutine(AssetBundleRequest(awaiter, instruction)));
            return(awaiter);
        }
Example #5
0
#pragma warning restore 618

        private static SimpleCoroutineAwaiter GetAwaiterReturnVoid(object instruction)
        {
            var awaiter = new SimpleCoroutineAwaiter();

            RunOnUnityScheduler(() => TaskDelegator.Instance.StartCoroutine(ReturnVoid(awaiter, instruction)));
            return(awaiter);
        }
 public CoroutineWrapper(
     IEnumerator coroutine, SimpleCoroutineAwaiter <T> awaiter)
 {
     processStack = new Stack <IEnumerator>();
     processStack.Push(coroutine);
     this.awaiter = awaiter;
 }
Example #7
0
        public static IEnumerator UnityWebRequest(
            SimpleCoroutineAwaiter <UnityWebRequest> awaiter, UnityWebRequestAsyncOperation instruction)
        {
            yield return(instruction);

            awaiter.Complete(instruction.webRequest, null);
        }
        public static IEnumerator AssetBundleCreateRequest(
            SimpleCoroutineAwaiter <AssetBundle> awaiter, AssetBundleCreateRequest instruction)
        {
            yield return(instruction);

            awaiter.Complete(instruction.assetBundle, null);
        }
    public static SimpleCoroutineAwaiter <object> GetAwaiter(this IEnumerator coroutine)
    {
        var awaiter = new SimpleCoroutineAwaiter <object>();

        RunOnUnityScheduler(() => AsyncCoroutineRunner.Instance.StartCoroutine(new CoroutineWrapper <object>(coroutine, awaiter).Run()));
        return(awaiter);
    }
    static SimpleCoroutineAwaiter <T> GetAwaiterReturnSelf <T>(T instruction)
    {
        var awaiter = new SimpleCoroutineAwaiter <T>();

        RunOnUnityScheduler(() => AsyncCoroutineRunner.Instance.StartCoroutine(InstructionWrappers.ReturnSelf(awaiter, instruction)));
        return(awaiter);
    }
    public static SimpleCoroutineAwaiter <UnityEngine.Object> GetAwaiter(this AssetBundleRequest instruction)
    {
        var awaiter = new SimpleCoroutineAwaiter <UnityEngine.Object>();

        RunOnUnityScheduler(() => AsyncCoroutineRunner.Instance.StartCoroutine(InstructionWrappers.AssetBundleRequest(awaiter, instruction)));
        return(awaiter);
    }
        public static IEnumerator ReturnSelf <T>(
            SimpleCoroutineAwaiter <T> awaiter, T instruction)
        {
            yield return(instruction);

            awaiter.Complete(instruction, null);
        }
        public static IEnumerator AssetBundleRequest(
            SimpleCoroutineAwaiter <UnityEngine.Object> awaiter, AssetBundleRequest instruction)
        {
            yield return(instruction);

            awaiter.Complete(instruction.asset, null);
        }
Example #14
0
 public CoroutineWrapper(
     IEnumerator coroutine, SimpleCoroutineAwaiter <object> awaiter)
 {
     _processStack = new Stack <IEnumerator>();
     _processStack.Push(coroutine);
     _awaiter = awaiter;
 }
Example #15
0
        public static SimpleCoroutineAwaiter <UnityEngine.Object> GetAwaiter(this ResourceRequest instruction)
        {
            var awaiter = new SimpleCoroutineAwaiter <UnityEngine.Object>();

            RunOnUnityScheduler(() => CoroutineManager.Instance.Start(
                                    InstructionWrappers.ResourceRequest(awaiter, instruction)));
            return(awaiter);
        }
Example #16
0
        public static SimpleCoroutineAwaiter <UnityEngine.Object> GetAwaiter(this ResourceRequest instruction)
        {
            var awaiter = new SimpleCoroutineAwaiter <UnityEngine.Object>();

            UnitySystem.RunOnUnityScheduler(() => UnitySystem.SystemBehavior.StartCoroutine(
                                                InstructionWrappers.ResourceRequest(awaiter, instruction)));
            return(awaiter);
        }
Example #17
0
        static SimpleCoroutineAwaiter <T> GetAwaiterReturnSelf <T>(T instruction)
        {
            var awaiter = new SimpleCoroutineAwaiter <T>();

            UnitySystem.RunOnUnityScheduler(() => UnitySystem.SystemBehavior.StartCoroutine(
                                                InstructionWrappers.ReturnSelf(awaiter, instruction)));
            return(awaiter);
        }
Example #18
0
    public static SimpleCoroutineAwaiter <UnityWebRequest> GetAwaiter(this UnityWebRequestAsyncOperation instruction)
    {
        var awaiter = new SimpleCoroutineAwaiter <UnityWebRequest>();

        RunOnUnityScheduler(() => AsyncCoroutineRunner.Instance.StartCoroutine(
                                InstructionWrappers.UnityWebRequest(awaiter, instruction)));
        return(awaiter);
    }
Example #19
0
        public static SimpleCoroutineAwaiter <AssetBundle> GetAwaiter(this AssetBundleCreateRequest instruction)
        {
            var awaiter = new SimpleCoroutineAwaiter <AssetBundle>();

            RunOnUnityScheduler(() => CoroutineManager.Instance.Start(
                                    InstructionWrappers.AssetBundleCreateRequest(awaiter, instruction)));
            return(awaiter);
        }
        public static SimpleCoroutineAwaiter <Object> GetAwaiter(this ResourceRequest instruction)
        {
            var awaiter    = new SimpleCoroutineAwaiter <Object>();
            var enumerator = InstructionWrappers.ResourceRequest(awaiter, instruction);

            RunOnUnityScheduler(() => RunCoroutine(enumerator));
            return(awaiter);
        }
        private static SimpleCoroutineAwaiter <T> GetAwaiterReturnSelf <T>(T instruction)
        {
            var awaiter    = new SimpleCoroutineAwaiter <T>();
            var enumerator = InstructionWrappers.ReturnSelf(awaiter, instruction);

            RunOnUnityScheduler(() => RunCoroutine(enumerator));
            return(awaiter);
        }
        public static SimpleCoroutineAwaiter <object> GetAwaiter(this IEnumerator coroutine)
        {
            var awaiter    = new SimpleCoroutineAwaiter <object>();
            var enumerator = new CoroutineWrapper <object>(coroutine, awaiter).Run();

            RunOnUnityScheduler(() => RunCoroutine(enumerator));
            return(awaiter);
        }
        public static SimpleCoroutineAwaiter <AssetBundle> GetAwaiter(this AssetBundleCreateRequest instruction)
        {
            var awaiter    = new SimpleCoroutineAwaiter <AssetBundle>();
            var enumerator = InstructionWrappers.AssetBundleCreateRequest(awaiter, instruction);

            RunOnUnityScheduler(() => RunCoroutine(enumerator));
            return(awaiter);
        }
        public static SimpleCoroutineAwaiter <AssetBundle> GetAwaiter(this AssetBundleCreateRequest instruction)
        {
            var awaiter = new SimpleCoroutineAwaiter <AssetBundle>();

            ContextUtils.RunOnUnityScheduler(() => AsyncCoroutineRunner.Instance.StartCoroutine(
                                                 InstructionWrappers.AssetBundleCreateRequest(awaiter, instruction)));
            return(awaiter);
        }
    private static SimpleCoroutineAwaiter GetAwaiterReturnVoid(object instruction)
    {
        var awaiter = new SimpleCoroutineAwaiter();

        RunOnUnityScheduler(() => AsyncCoroutineRunner.Instance.StartCoroutine(
                                InstructionWrappers.ReturnVoid(awaiter, instruction)));
        return(awaiter);
    }
Example #26
0
        public static SimpleCoroutineAwaiter <UnityEngine.Object> GetAwaiter(this ResourceRequest instruction)
        {
            var awaiter          = new SimpleCoroutineAwaiter <UnityEngine.Object>();
            var resource_request = InstructionWrappers.ResourceRequest(awaiter, instruction);

            RunOnUnityScheduler(() => AsyncCoroutineRunnerGlobal.StartRoutine(resource_request, nameof(GetAwaiter) + "(UnityObject)"));

            return(awaiter);
        }
Example #27
0
        public static SimpleCoroutineAwaiter <object> GetAwaiter(this IEnumerator coroutine)
        {
            var awaiter        = new SimpleCoroutineAwaiter <object>();
            var simple_routine = new CoroutineWrapper <object>(coroutine, awaiter).Run();

            RunOnUnityScheduler(() => AsyncCoroutineRunnerGlobal.StartRoutine(simple_routine, nameof(GetAwaiter) + "(object)"));

            return(awaiter);
        }
Example #28
0
        public static SimpleCoroutineAwaiter <T> GetAwaiter <T>(this IEnumerator <T> coroutine)
        {
            var awaiter        = new SimpleCoroutineAwaiter <T>();
            var simple_routine = new CoroutineWrapper <T>(coroutine, awaiter).Run();

            RunOnUnityScheduler(() => AsyncCoroutineRunnerGlobal.StartRoutine(simple_routine, nameof(GetAwaiter) + "<" + typeof(T).Name + ">"));

            return(awaiter);
        }
Example #29
0
        static SimpleCoroutineAwaiter <T> GetAwaiterReturnSelf <T>(T instruction)
        {
            var awaiter     = new SimpleCoroutineAwaiter <T>();
            var return_self = InstructionWrappers.ReturnSelf(awaiter, instruction);

            RunOnUnityScheduler(() => AsyncCoroutineRunnerGlobal.StartRoutine(return_self));

            return(awaiter);
        }
Example #30
0
        public static SimpleCoroutineAwaiter <UnityEngine.Object> GetAwaiter(this AssetBundleRequest instruction)
        {
            var awaiter = new SimpleCoroutineAwaiter <UnityEngine.Object>();
            var asset_bundle_request = InstructionWrappers.AssetBundleRequest(awaiter, instruction);

            RunOnUnityScheduler(() => AsyncCoroutineRunnerGlobal.StartRoutine(asset_bundle_request, nameof(AssetBundleRequest)));

            return(awaiter);
        }