/// <summary> /// Get action from its name /// </summary> /// <param name="Animation">Animation to look at</param> /// <param name="ActionName">Name of the action</param> /// <returns>AMTAction if found, null if not found</returns> public static AMTAction GetActionFromName(AMTAnimation Animation, string ActionName) { foreach (AMTAction a in Animation.Actions) { if (a.Name.Equals(ActionName)) { return(a); } } return(null); }
public static string CheckReference(AMTAnimation Animation, AMTAction CurrentAction, AMTAction ActionToAdd) { foreach (AMTFrame f in ActionToAdd.Frames) { if (f.ActionRef != null) { if (f.ActionRef == CurrentAction.Name) { return(ActionToAdd.Name); } else { return(CheckReference(Animation, CurrentAction, GetActionFromName(Animation, f.ActionRef))); } } } return(null); }
/// <summary> /// Expand Current action with action reference frames into Action with frame reference frames /// </summary> /// <param name="Animation">Current Animation</param> /// <param name="Action">Action to Expand</param> /// <returns>New expanded action</returns> public static AMTAction ExpandFrame(AMTAnimation Animation, AMTAction Action) { AMTAction ExpandedAction = new AMTAction(); ExpandedAction.Name = Action.Name; ExpandedAction.Frames.Clear(); foreach (AMTFrame f in Action.Frames) { if (f.ActionRef != null) { AMTAction EmbeddedAction = AMTUtil.GetActionFromName(Animation, f.ActionRef); AMTAction ExpandedEmbeddedAction = ExpandFrame(Animation, EmbeddedAction); foreach (AMTFrame fe in ExpandedEmbeddedAction.Frames) { ExpandedAction.Frames.Add(fe); } } else { ExpandedAction.Frames.Add(f); } } return(ExpandedAction); }
public static AMTAction GetDefaultAction(AMTAnimation Animation) { return(GetActionFromName(Animation, Animation.Manifest.DefaultAction)); }