示例#1
0
        public static int Validate()
        {
            if (TweenManager._requiresActiveReorganization)
            {
                TweenManager.ReorganizeActiveTweens();
            }
            int num = 0;

            for (int i = 0; i < TweenManager._maxActiveLookupId + 1; i++)
            {
                Tween tween = TweenManager._activeTweens[i];
                if (!tween.Validate())
                {
                    num++;
                    TweenManager.MarkForKilling(tween);
                }
            }
            if (num > 0)
            {
                TweenManager.DespawnTweens(TweenManager._KillList, false);
                int num2 = TweenManager._KillList.Count - 1;
                for (int j = num2; j > -1; j--)
                {
                    TweenManager.RemoveActiveTween(TweenManager._KillList[j]);
                }
                TweenManager._KillList.Clear();
            }
            return(num);
        }
示例#2
0
        public static List <Tween> GetActiveTweens(bool playing)
        {
            if (TweenManager._requiresActiveReorganization)
            {
                TweenManager.ReorganizeActiveTweens();
            }
            if (TweenManager.totActiveTweens <= 0)
            {
                return(null);
            }
            int          num  = TweenManager.totActiveTweens;
            List <Tween> list = new List <Tween>(num);

            for (int i = 0; i < num; i++)
            {
                Tween tween = TweenManager._activeTweens[i];
                if (tween.isPlaying == playing)
                {
                    list.Add(tween);
                }
            }
            if (list.Count > 0)
            {
                return(list);
            }
            return(null);
        }
示例#3
0
        // Token: 0x06000281 RID: 641 RVA: 0x0000E678 File Offset: 0x0000C878
        internal static List <Tween> GetTweensByTarget(object target, bool playingOnly)
        {
            if (TweenManager._requiresActiveReorganization)
            {
                TweenManager.ReorganizeActiveTweens();
            }
            if (TweenManager.totActiveTweens <= 0)
            {
                return(null);
            }
            int          num  = TweenManager.totActiveTweens;
            List <Tween> list = new List <Tween>(num);

            for (int i = 0; i < num; i++)
            {
                Tween tween = TweenManager._activeTweens[i];
                if (tween.target == target && (!playingOnly || tween.isPlaying))
                {
                    list.Add(tween);
                }
            }
            if (list.Count > 0)
            {
                return(list);
            }
            return(null);
        }
示例#4
0
        public static int TotalPlayingTweens()
        {
            if (!TweenManager.hasActiveTweens)
            {
                return(0);
            }
            if (TweenManager._requiresActiveReorganization)
            {
                TweenManager.ReorganizeActiveTweens();
            }
            int num = 0;

            for (int i = 0; i < TweenManager._maxActiveLookupId + 1; i++)
            {
                Tween tween = TweenManager._activeTweens[i];
                if (tween != null && tween.isPlaying)
                {
                    num++;
                }
            }
            return(num);
        }
示例#5
0
 // Token: 0x06000283 RID: 643 RVA: 0x0000E6F8 File Offset: 0x0000C8F8
 private static void AddActiveTween(Tween t)
 {
     if (TweenManager._requiresActiveReorganization)
     {
         TweenManager.ReorganizeActiveTweens();
     }
     t.active              = true;
     t.updateType          = DOTween.defaultUpdateType;
     t.isIndependentUpdate = DOTween.defaultTimeScaleIndependent;
     t.activeId            = (TweenManager._maxActiveLookupId = TweenManager.totActiveTweens);
     TweenManager._activeTweens[TweenManager.totActiveTweens] = t;
     if (t.updateType == UpdateType.Normal)
     {
         TweenManager.totActiveDefaultTweens++;
         TweenManager.hasActiveDefaultTweens = true;
     }
     else if (t.updateType == UpdateType.Fixed)
     {
         TweenManager.totActiveFixedTweens++;
         TweenManager.hasActiveFixedTweens = true;
     }
     else
     {
         TweenManager.totActiveLateTweens++;
         TweenManager.hasActiveLateTweens = true;
     }
     TweenManager.totActiveTweens++;
     if (t.tweenType == TweenType.Tweener)
     {
         TweenManager.totActiveTweeners++;
     }
     else
     {
         TweenManager.totActiveSequences++;
     }
     TweenManager.hasActiveTweens = true;
 }
示例#6
0
        public static void Update(UpdateType updateType, float deltaTime, float independentTime)
        {
            if (TweenManager._requiresActiveReorganization)
            {
                TweenManager.ReorganizeActiveTweens();
            }
            TweenManager.isUpdateLoop = true;
            bool flag = false;
            int  num  = TweenManager._maxActiveLookupId + 1;

            for (int i = 0; i < num; i++)
            {
                Tween tween = TweenManager._activeTweens[i];
                if (tween != null && tween.updateType == updateType)
                {
                    if (!tween.active)
                    {
                        flag = true;
                        TweenManager.MarkForKilling(tween);
                    }
                    else if (tween.isPlaying)
                    {
                        tween.creationLocked = true;
                        float num2 = (tween.isIndependentUpdate ? independentTime : deltaTime) * tween.timeScale;
                        if (!tween.delayComplete)
                        {
                            num2 = tween.UpdateDelay(tween.elapsedDelay + num2);
                            if (num2 <= -1f)
                            {
                                flag = true;
                                TweenManager.MarkForKilling(tween);
                                goto IL_1CB;
                            }
                            if (num2 <= 0f)
                            {
                                goto IL_1CB;
                            }
                        }
                        if (!tween.startupDone && !tween.Startup())
                        {
                            flag = true;
                            TweenManager.MarkForKilling(tween);
                        }
                        else
                        {
                            float num3  = tween.position;
                            bool  flag2 = num3 >= tween.duration;
                            int   num4  = tween.completedLoops;
                            if (tween.duration <= 0f)
                            {
                                num3 = 0f;
                                num4 = ((tween.loops == -1) ? (tween.completedLoops + 1) : tween.loops);
                            }
                            else
                            {
                                if (tween.isBackwards)
                                {
                                    num3 -= num2;
                                    while (num3 < 0f)
                                    {
                                        if (num4 <= 0)
                                        {
                                            break;
                                        }
                                        num3 += tween.duration;
                                        num4--;
                                    }
                                }
                                else
                                {
                                    num3 += num2;
                                    while (num3 >= tween.duration && (tween.loops == -1 || num4 < tween.loops))
                                    {
                                        num3 -= tween.duration;
                                        num4++;
                                    }
                                }
                                if (flag2)
                                {
                                    num4--;
                                }
                                if (tween.loops != -1 && num4 >= tween.loops)
                                {
                                    num3 = tween.duration;
                                }
                            }
                            bool flag3 = Tween.DoGoto(tween, num3, num4, UpdateMode.Update);
                            if (flag3)
                            {
                                flag = true;
                                TweenManager.MarkForKilling(tween);
                            }
                        }
                    }
                }
                IL_1CB :;
            }
            if (flag)
            {
                TweenManager.DespawnTweens(TweenManager._KillList, false);
                int num5 = TweenManager._KillList.Count - 1;
                for (int j = num5; j > -1; j--)
                {
                    TweenManager.RemoveActiveTween(TweenManager._KillList[j]);
                }
                TweenManager._KillList.Clear();
            }
            TweenManager.isUpdateLoop = false;
        }
示例#7
0
        internal static void Update(UpdateType updateType, float deltaTime, float independentTime)
        {
            if (TweenManager._requiresActiveReorganization)
            {
                TweenManager.ReorganizeActiveTweens();
            }
            TweenManager.isUpdateLoop = true;
            bool flag = false;
            int  num  = TweenManager._maxActiveLookupId + 1;

            for (int i = 0; i < num; i++)
            {
                Tween tween = TweenManager._activeTweens[i];
                float num2;
                if (tween != null && tween.updateType == updateType)
                {
                    if (!tween.active)
                    {
                        flag = true;
                        TweenManager.MarkForKilling(tween);
                    }
                    else if (tween.isPlaying)
                    {
                        tween.creationLocked = true;
                        num2 = (tween.isIndependentUpdate ? independentTime : deltaTime) * tween.timeScale;
                        if (!tween.delayComplete)
                        {
                            num2 = tween.UpdateDelay(tween.elapsedDelay + num2);
                            if (num2 <= -1f)
                            {
                                flag = true;
                                TweenManager.MarkForKilling(tween);
                            }
                            else if (!(num2 <= 0f))
                            {
                                if (tween.playedOnce && tween.onPlay != null)
                                {
                                    Tween.OnTweenCallback(tween.onPlay);
                                }
                                goto IL_00d0;
                            }
                            continue;
                        }
                        goto IL_00d0;
                    }
                }
                continue;
IL_00d0:
                if (!tween.startupDone && !tween.Startup())
                {
                    flag = true;
                    TweenManager.MarkForKilling(tween);
                }
                else
                {
                    float position = tween.position;
                    bool  flag2    = position >= tween.duration;
                    int   num3     = tween.completedLoops;
                    if (tween.duration <= 0f)
                    {
                        position = 0f;
                        num3     = ((tween.loops == -1) ? (tween.completedLoops + 1) : tween.loops);
                    }
                    else
                    {
                        if (tween.isBackwards)
                        {
                            position -= num2;
                            while (position < 0f && num3 > 0)
                            {
                                position += tween.duration;
                                num3--;
                            }
                        }
                        else
                        {
                            position += num2;
                            while (true)
                            {
                                if (!(position >= tween.duration))
                                {
                                    break;
                                }
                                if (tween.loops != -1 && num3 >= tween.loops)
                                {
                                    break;
                                }
                                position -= tween.duration;
                                num3++;
                            }
                        }
                        if (flag2)
                        {
                            num3--;
                        }
                        if (tween.loops != -1 && num3 >= tween.loops)
                        {
                            position = tween.duration;
                        }
                    }
                    if (Tween.DoGoto(tween, position, num3, UpdateMode.Update))
                    {
                        flag = true;
                        TweenManager.MarkForKilling(tween);
                    }
                }
            }
            if (flag)
            {
                if (TweenManager._despawnAllCalledFromUpdateLoopCallback)
                {
                    TweenManager._despawnAllCalledFromUpdateLoopCallback = false;
                }
                else
                {
                    TweenManager.DespawnTweens(TweenManager._KillList, false);
                    for (int num4 = TweenManager._KillList.Count - 1; num4 > -1; num4--)
                    {
                        TweenManager.RemoveActiveTween(TweenManager._KillList[num4]);
                    }
                }
                TweenManager._KillList.Clear();
            }
            TweenManager.isUpdateLoop = false;
        }