public static void AddKeyframe(string sequenceName, IKeyframe newKeyframe) { AnimationSequence.AnimationSequenceType sequenceTypeFromKeyframe = AnimationSequence.AnimationSequenceType.Transformation; if (newKeyframe is SpriteSheetKeyframe) { sequenceTypeFromKeyframe = AnimationSequence.AnimationSequenceType.SpriteSheet; } if (newKeyframe is ColourKeyframe) { sequenceTypeFromKeyframe = AnimationSequence.AnimationSequenceType.Colour; } if (newKeyframe is SkeletalKeyframe) { sequenceTypeFromKeyframe = AnimationSequence.AnimationSequenceType.Skeletal; } if (!Sequences.ContainsKey(sequenceName)) { AddSequence(sequenceName, sequenceTypeFromKeyframe, false); } if (Sequences[sequenceName].SequenceType == sequenceTypeFromKeyframe) { Sequences[sequenceName].Keyframes.Add(newKeyframe); } }
public static void AddSequence(string name, AnimationSequence.AnimationSequenceType sequenceType, bool loops) { AnimationSequence newSequence = new AnimationSequence(sequenceType); newSequence.Loops = loops; Sequences.Add(name, newSequence); }
public static void AddSequence(XElement xmlSequenceData) { string sequenceName = ""; AnimationSequence.AnimationSequenceType sequenceType = AnimationSequence.AnimationSequenceType.Transformation; if (!Sequences.ContainsKey(xmlSequenceData.Attribute("name").Value)) { foreach (AnimationSequence.AnimationSequenceType item in Enum.GetValues(typeof(AnimationSequence.AnimationSequenceType))) { if (item.ToString().ToLower().Equals(xmlSequenceData.Attribute("type").Value.Trim().ToLower())) { sequenceName = xmlSequenceData.Attribute("name").Value; sequenceType = item; AddSequence(sequenceName, item, xmlSequenceData.Attribute("loops").Value == "yes"); break; } } } if (!string.IsNullOrEmpty(sequenceName)) { foreach (XElement frame in xmlSequenceData.Element("keyframes").Elements()) { switch (sequenceType) { case AnimationSequence.AnimationSequenceType.Transformation: AddTransformationKeyframe(sequenceName, frame); break; case AnimationSequence.AnimationSequenceType.SpriteSheet: AddSpriteSheetKeyframe(sequenceName, frame); break; case AnimationSequence.AnimationSequenceType.Colour: AddColourKeyframe(sequenceName, frame); break; case AnimationSequence.AnimationSequenceType.Skeletal: AddSkeletalKeyframe(sequenceName, frame); break; } } } }