Example #1
0
 private void NextFrame()
 {
     if (eAnim != null)
     {
         timeElapsedInCurrentFrame -= currentFrameDuration;
         Transition transition = null;
         if (eAnim.Animation.isUseTransitions())
         {
             transition = eAnim.Animation.getTranstionForFrame(currentFrame);
         }
         currentFrame++;
         if (!string.IsNullOrEmpty(then) && currentFrame == eAnim.frames.Count)
         {
             Play(then);
         }
         else if (transition != null)
         {
             isTransitioning = true;
             transitionManager.PrepareTransition(transition, GetFrameTexture(currentFrame));
             transitionManager.DoTransition((_, __) =>
             {
                 isTransitioning = false;
                 SetFrame(currentFrame);
             });
         }
         else
         {
             SetFrame(currentFrame);
         }
     }
 }
Example #2
0
        private void SetSlide(int i)
        {
            if (slides != null && i < slides.frames.Count)
            {
                var texture = slides.frames[i].Image;

                if (slides.Animation.isUseTransitions() && i > 0)
                {
                    var transition = slides.Animation.getTranstionForFrame(currentSlide);
                    transitionManager.PrepareTransition(transition, texture);
                    wasDisabled = uAdventureRaycaster.Instance.Disabled;
                    uAdventureRaycaster.Instance.Disabled = true;
                    transitionManager.DoTransition((_, t) =>
                    {
                        this.currentSlide = i;
                        SetBackground(t);
                        uAdventureRaycaster.Instance.Disabled = wasDisabled;
                    });
                }
                else
                {
                    this.currentSlide = i;
                    SetBackground(texture);
                }
            }
        }
Example #3
0
        public IRunnerChapterTarget RunTarget(string scene_id, int transition_time = 0, TransitionType transition_type = 0, Interactuable notifyObject = null, bool trace = true)
        {
            Debug.Log("Run target: " + scene_id);
            GUIManager.Instance.ShowHand(false);
            MenuMB.Instance.hide(true);

            IChapterTarget target = GameState.GetChapterTarget(scene_id);

            var transition = new Transition();

            transition.setTime(transition_time);
            transition.setType(transition_type);
            transitionManager.PrepareTransition(transition);

            if (runnerTarget != null && runnerTarget.Data == target && scene_id == GameState.CurrentTarget)
            {
                runnerTarget.RenderScene();
            }
            else
            {
                if (runnerTarget != null)
                {
                    runnerTarget.Destroy();
                }

                // Here we connect with the IChapterTargetFactory and create an IRunnerChapterTarget

                runnerTarget            = RunnerChapterTargetFactory.Instance.Instantiate(target);
                runnerTarget.Data       = target;
                GameState.CurrentTarget = target.getId();
            }

            if (trace && OnTargetChanged != null)
            {
                OnTargetChanged(target);
            }

            waitingRunTarget = true;
            if (notifyObject != null)
            {
                executeStack.Push(new KeyValuePair <Interactuable, ExecutionEvent>(notifyObject, null));
            }
            uAdventureRaycaster.Instance.Override = this.gameObject;

            return(runnerTarget);
        }
Example #4
0
        public IRunnerChapterTarget RunTarget(string scene_id, int transition_time = 0, TransitionType transition_type = 0, Interactuable notifyObject = null, bool trace = true)
        {
            Debug.Log("Run target: " + scene_id);
            if (GUIManager.Instance)
            {
                GUIManager.Instance.ShowHand(false);
            }
            if (MenuMB.Instance)
            {
                MenuMB.Instance.hide(true);
            }

            IChapterTarget target = GameState.GetChapterTarget(scene_id);

            if (TransitionManager != null)
            {
                var transition = new Transition();
                transition.setTime(transition_time);
                transition.setType(transition_type);
                TransitionManager.PrepareTransition(transition);
            }

            if (runnerTarget != null && runnerTarget.Data == target && scene_id == GameState.CurrentTarget)
            {
                runnerTarget.RenderScene();
                waitingRunTarget = true;
            }
            else
            {
                waitingTargetDestroy = true;
                System.Action runTarget = () =>
                {
                    waitingTargetDestroy = false;
                    waitingRunTarget     = true;
                    if (trace)
                    {
                        GameState.CurrentTarget = target.getId();
                    }
                    runnerTarget.RenderScene();

                    if (trace && OnTargetChanged != null)
                    {
                        OnTargetChanged(target);
                    }
                };

                var oldTarget = runnerTarget;

                // Here we connect with the IChapterTargetFactory and create an IRunnerChapterTarget
                runnerTarget      = RunnerChapterTargetFactory.Instance.Instantiate(target);
                runnerTarget.Data = target;
                Debug.Log("Target gameobject: " + runnerTarget.gameObject);
                DontDestroyOnLoad(runnerTarget.gameObject);
                Debug.Log("Target creado: " + runnerTarget);

                System.Action afterChapterLoad = () =>
                {
                    if (oldTarget != null)
                    {
                        oldTarget.Destroy(0f, runTarget);
                    }
                    else
                    {
                        runTarget();
                    }
                };

                if (loadedChapter != GameState.CurrentChapter)
                {
                    LoadChapter(GameState.CurrentChapter)
                    .Then(() =>
                    {
                        loadedChapter = GameState.CurrentChapter;
                        afterChapterLoad();
                    })
                    .Catch(ex =>
                    {
                        Debug.LogError(ex);
                    });
                }
                else
                {
                    afterChapterLoad();
                }
            }

            if (notifyObject != null)
            {
                executeStack.Push(new KeyValuePair <Interactuable, ExecutionEvent>(notifyObject, null));
            }

            if (uAdventureRaycaster.Instance)
            {
                uAdventureRaycaster.Instance.Override = this.gameObject;
            }

            return(runnerTarget);
        }