// Token: 0x06000052 RID: 82 RVA: 0x00004A28 File Offset: 0x00002C28
        public static tk2dSpriteAnimationClip AddAnimation(this GameObject obj, string name, string spriteDirectory, int fps, NPCBuilder.AnimationType type, DirectionalAnimation.DirectionType directionType = DirectionalAnimation.DirectionType.None, DirectionalAnimation.FlipType flipType = DirectionalAnimation.FlipType.None)
        {
            obj.AddComponent <tk2dSpriteAnimator>();
            AIAnimator aianimator = obj.GetComponent <AIAnimator>();
            bool       flag       = !aianimator;

            if (flag)
            {
                aianimator = NPCBuilder.CreateNewAIAnimator(obj);
            }
            DirectionalAnimation directionalAnimation = aianimator.GetDirectionalAnimation(name, directionType, type);
            bool flag2 = directionalAnimation == null;

            if (flag2)
            {
                directionalAnimation = new DirectionalAnimation
                {
                    AnimNames = new string[0],
                    Flipped   = new DirectionalAnimation.FlipType[0],
                    Type      = directionType,
                    Prefix    = string.Empty
                };
            }
            directionalAnimation.AnimNames = directionalAnimation.AnimNames.Concat(new string[]
            {
                name
            }).ToArray <string>();
            directionalAnimation.Flipped = directionalAnimation.Flipped.Concat(new DirectionalAnimation.FlipType[]
            {
                flipType
            }).ToArray <DirectionalAnimation.FlipType>();
            aianimator.AssignDirectionalAnimation(name, directionalAnimation, type);
            return(NPCBuilder.BuildAnimation(aianimator, name, spriteDirectory, fps));
        }
        // Token: 0x06000057 RID: 87 RVA: 0x00004D04 File Offset: 0x00002F04
        public static void AssignDirectionalAnimation(this AIAnimator aiAnimator, string name, DirectionalAnimation animation, NPCBuilder.AnimationType type)
        {
            switch (type)
            {
            case NPCBuilder.AnimationType.Move:
                aiAnimator.MoveAnimation = animation;
                break;

            case NPCBuilder.AnimationType.Idle:
                aiAnimator.IdleAnimation = animation;
                break;

            case NPCBuilder.AnimationType.Fidget:
                aiAnimator.IdleFidgetAnimations.Add(animation);
                break;

            case NPCBuilder.AnimationType.Flight:
                aiAnimator.FlightAnimation = animation;
                break;

            case NPCBuilder.AnimationType.Hit:
                aiAnimator.HitAnimation = animation;
                break;

            case NPCBuilder.AnimationType.Talk:
                aiAnimator.TalkAnimation = animation;
                break;

            default:
                aiAnimator.OtherAnimations.Add(new AIAnimator.NamedDirectionalAnimation
                {
                    anim = animation,
                    name = name
                });
                break;
            }
        }
        // Token: 0x06000056 RID: 86 RVA: 0x00004C8C File Offset: 0x00002E8C
        public static DirectionalAnimation GetDirectionalAnimation(this AIAnimator aiAnimator, string name, DirectionalAnimation.DirectionType directionType, NPCBuilder.AnimationType type)
        {
            DirectionalAnimation directionalAnimation = null;

            switch (type)
            {
            case NPCBuilder.AnimationType.Move:
                directionalAnimation = aiAnimator.MoveAnimation;
                break;

            case NPCBuilder.AnimationType.Idle:
                directionalAnimation = aiAnimator.IdleAnimation;
                break;

            case NPCBuilder.AnimationType.Flight:
                directionalAnimation = aiAnimator.FlightAnimation;
                break;

            case NPCBuilder.AnimationType.Hit:
                directionalAnimation = aiAnimator.HitAnimation;
                break;

            case NPCBuilder.AnimationType.Talk:
                directionalAnimation = aiAnimator.TalkAnimation;
                break;
            }
            bool flag = directionalAnimation != null;
            DirectionalAnimation result;

            if (flag)
            {
                result = directionalAnimation;
            }
            else
            {
                result = null;
            }
            return(result);
        }