Exemple #1
0
 // Token: 0x06000269 RID: 617 RVA: 0x0000D8D4 File Offset: 0x0000BAD4
 internal static void Despawn(Tween t, bool modifyActiveLists = true)
 {
     if (t.onKill != null)
     {
         Tween.OnTweenCallback(t.onKill);
     }
     if (modifyActiveLists)
     {
         TweenManager.RemoveActiveTween(t);
     }
     if (t.isRecyclable)
     {
         TweenType tweenType = t.tweenType;
         if (tweenType != TweenType.Tweener)
         {
             if (tweenType == TweenType.Sequence)
             {
                 TweenManager._PooledSequences.Push(t);
                 TweenManager.totPooledSequences++;
                 Sequence sequence = (Sequence)t;
                 int      count    = sequence.sequencedTweens.Count;
                 for (int i = 0; i < count; i++)
                 {
                     TweenManager.Despawn(sequence.sequencedTweens[i], false);
                 }
             }
         }
         else
         {
             if (TweenManager._maxPooledTweenerId == -1)
             {
                 TweenManager._maxPooledTweenerId = TweenManager.maxTweeners - 1;
                 TweenManager._minPooledTweenerId = TweenManager.maxTweeners - 1;
             }
             if (TweenManager._maxPooledTweenerId < TweenManager.maxTweeners - 1)
             {
                 TweenManager._pooledTweeners[TweenManager._maxPooledTweenerId + 1] = t;
                 TweenManager._maxPooledTweenerId++;
                 if (TweenManager._minPooledTweenerId > TweenManager._maxPooledTweenerId)
                 {
                     TweenManager._minPooledTweenerId = TweenManager._maxPooledTweenerId;
                 }
             }
             else
             {
                 int j = TweenManager._maxPooledTweenerId;
                 while (j > -1)
                 {
                     if (TweenManager._pooledTweeners[j] == null)
                     {
                         TweenManager._pooledTweeners[j] = t;
                         if (j < TweenManager._minPooledTweenerId)
                         {
                             TweenManager._minPooledTweenerId = j;
                         }
                         if (TweenManager._maxPooledTweenerId < TweenManager._minPooledTweenerId)
                         {
                             TweenManager._maxPooledTweenerId = TweenManager._minPooledTweenerId;
                             break;
                         }
                         break;
                     }
                     else
                     {
                         j--;
                     }
                 }
             }
             TweenManager.totPooledTweeners++;
         }
     }
     else
     {
         TweenType tweenType = t.tweenType;
         if (tweenType != TweenType.Tweener)
         {
             if (tweenType == TweenType.Sequence)
             {
                 TweenManager.totSequences--;
                 Sequence sequence2 = (Sequence)t;
                 int      count2    = sequence2.sequencedTweens.Count;
                 for (int k = 0; k < count2; k++)
                 {
                     TweenManager.Despawn(sequence2.sequencedTweens[k], false);
                 }
             }
         }
         else
         {
             TweenManager.totTweeners--;
         }
     }
     t.active = false;
     t.Reset();
 }
Exemple #2
0
        // Token: 0x06000270 RID: 624 RVA: 0x0000DEB0 File Offset: 0x0000C0B0
        internal static int FilteredOperation(OperationType operationType, FilterType filterType, object id, bool optionalBool, float optionalFloat, object optionalObj = null, object[] optionalArray = null)
        {
            int  num  = 0;
            bool flag = false;
            int  num2 = (optionalArray == null) ? 0 : optionalArray.Length;

            for (int i = TweenManager._maxActiveLookupId; i > -1; i--)
            {
                Tween tween = TweenManager._activeTweens[i];
                if (tween != null && tween.active)
                {
                    bool flag2 = false;
                    switch (filterType)
                    {
                    case FilterType.All:
                        flag2 = true;
                        break;

                    case FilterType.TargetOrId:
                        flag2 = (id.Equals(tween.id) || id.Equals(tween.target));
                        break;

                    case FilterType.TargetAndId:
                        flag2 = (id.Equals(tween.id) && optionalObj != null && optionalObj.Equals(tween.target));
                        break;

                    case FilterType.AllExceptTargetsOrIds:
                        flag2 = true;
                        for (int j = 0; j < num2; j++)
                        {
                            object obj = optionalArray[j];
                            if (obj.Equals(tween.id) || obj.Equals(tween.target))
                            {
                                flag2 = false;
                                break;
                            }
                        }
                        break;
                    }
                    if (flag2)
                    {
                        switch (operationType)
                        {
                        case OperationType.Complete:
                        {
                            bool autoKill = tween.autoKill;
                            if (TweenManager.Complete(tween, false, (optionalFloat > 0f) ? UpdateMode.Update : UpdateMode.Goto))
                            {
                                num += ((!optionalBool) ? 1 : (autoKill ? 1 : 0));
                                if (autoKill)
                                {
                                    if (TweenManager.isUpdateLoop)
                                    {
                                        tween.active = false;
                                    }
                                    else
                                    {
                                        flag = true;
                                        TweenManager._KillList.Add(tween);
                                    }
                                }
                            }
                            break;
                        }

                        case OperationType.Despawn:
                            num++;
                            if (TweenManager.isUpdateLoop)
                            {
                                tween.active = false;
                            }
                            else
                            {
                                TweenManager.Despawn(tween, false);
                                flag = true;
                                TweenManager._KillList.Add(tween);
                            }
                            break;

                        case OperationType.Flip:
                            if (TweenManager.Flip(tween))
                            {
                                num++;
                            }
                            break;

                        case OperationType.Goto:
                            TweenManager.Goto(tween, optionalFloat, optionalBool, UpdateMode.Goto);
                            num++;
                            break;

                        case OperationType.Pause:
                            if (TweenManager.Pause(tween))
                            {
                                num++;
                            }
                            break;

                        case OperationType.Play:
                            if (TweenManager.Play(tween))
                            {
                                num++;
                            }
                            break;

                        case OperationType.PlayForward:
                            if (TweenManager.PlayForward(tween))
                            {
                                num++;
                            }
                            break;

                        case OperationType.PlayBackwards:
                            if (TweenManager.PlayBackwards(tween))
                            {
                                num++;
                            }
                            break;

                        case OperationType.Rewind:
                            if (TweenManager.Rewind(tween, optionalBool))
                            {
                                num++;
                            }
                            break;

                        case OperationType.SmoothRewind:
                            if (TweenManager.SmoothRewind(tween))
                            {
                                num++;
                            }
                            break;

                        case OperationType.Restart:
                            if (TweenManager.Restart(tween, optionalBool))
                            {
                                num++;
                            }
                            break;

                        case OperationType.TogglePause:
                            if (TweenManager.TogglePause(tween))
                            {
                                num++;
                            }
                            break;

                        case OperationType.IsTweening:
                            if (!tween.isComplete || !tween.autoKill)
                            {
                                num++;
                            }
                            break;
                        }
                    }
                }
            }
            if (flag)
            {
                for (int k = TweenManager._KillList.Count - 1; k > -1; k--)
                {
                    TweenManager.RemoveActiveTween(TweenManager._KillList[k]);
                }
                TweenManager._KillList.Clear();
            }
            return(num);
        }
Exemple #3
0
        internal static void Despawn(Tween t, bool modifyActiveLists = true)
        {
            if (t.onKill != null)
            {
                Tween.OnTweenCallback(t.onKill);
            }
            if (modifyActiveLists)
            {
                TweenManager.RemoveActiveTween(t);
            }
            if (t.isRecyclable)
            {
                switch (t.tweenType)
                {
                case TweenType.Sequence:
                {
                    TweenManager._PooledSequences.Push(t);
                    TweenManager.totPooledSequences++;
                    Sequence sequence = (Sequence)t;
                    int      count    = sequence.sequencedTweens.Count;
                    for (int i = 0; i < count; i++)
                    {
                        TweenManager.Despawn(sequence.sequencedTweens[i], false);
                    }
                    break;
                }

                case TweenType.Tweener:
                    if (TweenManager._maxPooledTweenerId == -1)
                    {
                        TweenManager._maxPooledTweenerId = TweenManager.maxTweeners - 1;
                        TweenManager._minPooledTweenerId = TweenManager.maxTweeners - 1;
                    }
                    if (TweenManager._maxPooledTweenerId < TweenManager.maxTweeners - 1)
                    {
                        TweenManager._pooledTweeners[TweenManager._maxPooledTweenerId + 1] = t;
                        TweenManager._maxPooledTweenerId++;
                        if (TweenManager._minPooledTweenerId > TweenManager._maxPooledTweenerId)
                        {
                            TweenManager._minPooledTweenerId = TweenManager._maxPooledTweenerId;
                        }
                    }
                    else
                    {
                        int num = TweenManager._maxPooledTweenerId;
                        while (num > -1)
                        {
                            if (TweenManager._pooledTweeners[num] != null)
                            {
                                num--;
                                continue;
                            }
                            TweenManager._pooledTweeners[num] = t;
                            if (num < TweenManager._minPooledTweenerId)
                            {
                                TweenManager._minPooledTweenerId = num;
                            }
                            if (TweenManager._maxPooledTweenerId >= TweenManager._minPooledTweenerId)
                            {
                                break;
                            }
                            TweenManager._maxPooledTweenerId = TweenManager._minPooledTweenerId;
                            break;
                        }
                    }
                    TweenManager.totPooledTweeners++;
                    break;
                }
            }
            else
            {
                switch (t.tweenType)
                {
                case TweenType.Sequence:
                {
                    TweenManager.totSequences--;
                    Sequence sequence2 = (Sequence)t;
                    int      count2    = sequence2.sequencedTweens.Count;
                    for (int j = 0; j < count2; j++)
                    {
                        TweenManager.Despawn(sequence2.sequencedTweens[j], false);
                    }
                    break;
                }

                case TweenType.Tweener:
                    TweenManager.totTweeners--;
                    break;
                }
            }
            t.active = false;
            t.Reset();
        }