public static ReferencedAnimationChain FromAnimationChain(FlatRedBall.Graphics.Animation.AnimationChain animationChain) { ReferencedAnimationChain rac = new ReferencedAnimationChain(); // Vic says: This used to set the AnimationChainListFileName as a relative // name, but that shouldn't be done until the file is saved. rac.AnimationChainListFileName = animationChain.ParentAchxFileName; rac.AnimationChainName = animationChain.Name; return(rac); }
public AnimationChainList ToAnimationChainList(string contentManagerName, bool throwError) { mToRuntimeErrors.Clear(); AnimationChainList list = new AnimationChainList(); list.FileRelativeTextures = FileRelativeTextures; list.TimeMeasurementUnit = TimeMeasurementUnit; list.Name = mFileName; string oldRelativeDirectory = FileManager.RelativeDirectory; try { if (this.FileRelativeTextures) { FileManager.RelativeDirectory = FileManager.GetDirectory(mFileName); } foreach (AnimationChainSave animationChain in this.AnimationChains) { try { FlatRedBall.Graphics.Animation.AnimationChain newChain = null; newChain = animationChain.ToAnimationChain(contentManagerName, this.TimeMeasurementUnit, this.CoordinateType); newChain.mIndexInLoadedAchx = list.Count; newChain.ParentAchxFileName = mFileName; list.Add(newChain); } catch (Exception e) { mToRuntimeErrors.Add(e.ToString()); if (throwError) { throw new Exception("Error loading AnimationChain", e); } } } } finally { FileManager.RelativeDirectory = oldRelativeDirectory; } return(list); }