public static tk2dSpriteAnimationClip AddAnimation(this GameObject obj, string name, string spriteDirectory, int fps, AnimationType type, DirectionType directionType = DirectionType.None, FlipType flipType = FlipType.None) { obj.AddComponent <tk2dSpriteAnimator>(); AIAnimator aiAnimator = obj.GetComponent <AIAnimator>(); if (!aiAnimator) { aiAnimator = CreateNewAIAnimator(obj); } DirectionalAnimation animation = aiAnimator.GetDirectionalAnimation(name, directionType, type); if (animation == null) { animation = new DirectionalAnimation() { AnimNames = new string[0], Flipped = new FlipType[0], Type = directionType, Prefix = string.Empty }; } animation.AnimNames = animation.AnimNames.Concat(new string[] { name }).ToArray(); animation.Flipped = animation.Flipped.Concat(new FlipType[] { flipType }).ToArray(); aiAnimator.AssignDirectionalAnimation(name, animation, type); return(BuildAnimation(aiAnimator, name, spriteDirectory, fps)); }
public static DirectionalAnimation GetDirectionalAnimation(this AIAnimator aiAnimator, string name, DirectionType directionType, AnimationType type) { DirectionalAnimation result = null; switch (type) { case AnimationType.Idle: result = aiAnimator.IdleAnimation; break; case AnimationType.Move: result = aiAnimator.MoveAnimation; break; case AnimationType.Flight: result = aiAnimator.FlightAnimation; break; case AnimationType.Hit: result = aiAnimator.HitAnimation; break; case AnimationType.Talk: result = aiAnimator.TalkAnimation; break; } if (result != null) { return(result); } return(null); }
// Token: 0x060000C2 RID: 194 RVA: 0x00008A8C File Offset: 0x00006C8C public static DirectionalAnimation GetDirectionalAnimation(this AIAnimator aiAnimator, string name, DirectionalAnimation.DirectionType directionType, CompanionBuilder.AnimationType type) { DirectionalAnimation directionalAnimation = null; switch (type) { case CompanionBuilder.AnimationType.Move: directionalAnimation = aiAnimator.MoveAnimation; break; case CompanionBuilder.AnimationType.Idle: directionalAnimation = aiAnimator.IdleAnimation; break; case CompanionBuilder.AnimationType.Flight: directionalAnimation = aiAnimator.FlightAnimation; break; case CompanionBuilder.AnimationType.Hit: directionalAnimation = aiAnimator.HitAnimation; break; case CompanionBuilder.AnimationType.Talk: directionalAnimation = aiAnimator.TalkAnimation; break; } bool flag = directionalAnimation != null; DirectionalAnimation result; if (flag) { result = directionalAnimation; } else { result = null; } return(result); }
// Token: 0x060000C0 RID: 192 RVA: 0x0000891C File Offset: 0x00006B1C public static tk2dSpriteAnimationClip AddAnimation(this GameObject obj, string name, string spriteDirectory, int fps, CompanionBuilder.AnimationType type, DirectionalAnimation.DirectionType directionType = DirectionalAnimation.DirectionType.None, DirectionalAnimation.FlipType flipType = DirectionalAnimation.FlipType.None) { AIAnimator orAddComponent = obj.GetOrAddComponent <AIAnimator>(); DirectionalAnimation directionalAnimation = orAddComponent.GetDirectionalAnimation(name, directionType, type); bool flag = directionalAnimation == null; if (flag) { 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>(); orAddComponent.AssignDirectionalAnimation(name, directionalAnimation, type); return(CompanionBuilder.BuildAnimation(orAddComponent, name, spriteDirectory, fps)); }
public static tk2dSpriteAnimationClip AddAnimation(this GameObject obj, string name, string spriteDirectory, int fps, AnimationType type, DirectionType directionType = DirectionType.None, tk2dSpriteAnimationClip.WrapMode wrapMode = tk2dSpriteAnimationClip.WrapMode.Loop, FlipType flipType = FlipType.None, bool assignAnimation = true) { AIAnimator aiAnimator = obj.GetOrAddComponent <AIAnimator>(); DirectionalAnimation animation = aiAnimator.GetDirectionalAnimation(name, directionType, type); if (animation == null) { animation = new DirectionalAnimation() { AnimNames = new string[0], Flipped = new FlipType[0], Type = directionType, Prefix = string.Empty }; } animation.AnimNames = animation.AnimNames.Concat(new string[] { name }).ToArray(); animation.Flipped = animation.Flipped.Concat(new FlipType[] { flipType }).ToArray(); if (assignAnimation) { aiAnimator.AssignDirectionalAnimation(name, animation, type); } return(BuildAnimation(aiAnimator, name, spriteDirectory, fps, wrapMode)); }
// 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)); }
public static void AdvAddAnimation(this AIAnimator targetAnimator, string animationName, DirectionalAnimation.DirectionType directionality, CompanionBuilder.AnimationType AnimationType, List <DirectionalAnimationData> AnimData) { List <string> subAnimNames = new List <string>(); foreach (DirectionalAnimationData data in AnimData) { subAnimNames.Add(data.subAnimationName); tk2dSpriteCollectionData tk2dSpriteCollectionData = targetAnimator.GetComponent <tk2dSpriteCollectionData>(); if (!tk2dSpriteCollectionData) { tk2dSpriteCollectionData = SpriteBuilder.ConstructCollection(targetAnimator.gameObject, targetAnimator.name + "_collection"); } string[] resourceNames = ResourceExtractor.GetResourceNames(); List <int> list = new List <int>(); for (int i = 0; i < resourceNames.Length; i++) { if (resourceNames[i].StartsWith(data.pathDirectory.Replace('/', '.'), StringComparison.OrdinalIgnoreCase)) { // ETGModConsole.Log($"Resource Found: {resourceNames[i]}."); list.Add(SpriteBuilder.AddSpriteToCollection(resourceNames[i], tk2dSpriteCollectionData)); } } //ETGModConsole.Log($"Adding animation {data.subAnimationName} with list length {list.Count}."); tk2dSpriteAnimationClip tk2dSpriteAnimationClip = SpriteBuilder.AddAnimation(targetAnimator.spriteAnimator, tk2dSpriteCollectionData, list, data.subAnimationName, data.wrapMode); tk2dSpriteAnimationClip.fps = (float)data.fps; } if (AnimationType != CompanionBuilder.AnimationType.Other) { DirectionalAnimation newDirectionalAnimation = new DirectionalAnimation { Type = directionality, Flipped = new DirectionalAnimation.FlipType[subAnimNames.Count], AnimNames = subAnimNames.ToArray(), Prefix = string.Empty, }; switch (AnimationType) { case CompanionBuilder.AnimationType.Idle: targetAnimator.IdleAnimation = newDirectionalAnimation; break; case CompanionBuilder.AnimationType.Move: targetAnimator.MoveAnimation = newDirectionalAnimation; break; case CompanionBuilder.AnimationType.Hit: targetAnimator.HitAnimation = newDirectionalAnimation; break; case CompanionBuilder.AnimationType.Talk: targetAnimator.TalkAnimation = newDirectionalAnimation; break; case CompanionBuilder.AnimationType.Flight: targetAnimator.FlightAnimation = newDirectionalAnimation; break; case CompanionBuilder.AnimationType.Fidget: if (targetAnimator.IdleFidgetAnimations == null) { targetAnimator.IdleFidgetAnimations = new List <DirectionalAnimation>(); } targetAnimator.IdleFidgetAnimations.Add(newDirectionalAnimation); break; } } else { AIAnimator.NamedDirectionalAnimation newOtheranim = new AIAnimator.NamedDirectionalAnimation { name = animationName, anim = new DirectionalAnimation { Prefix = animationName, Type = directionality, Flipped = new DirectionalAnimation.FlipType[subAnimNames.Count], AnimNames = subAnimNames.ToArray(), } }; if (targetAnimator.OtherAnimations == null) { targetAnimator.OtherAnimations = new List <AIAnimator.NamedDirectionalAnimation>(); } targetAnimator.OtherAnimations.Add(newOtheranim); } }