コード例 #1
0
 /// <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);
 }
コード例 #2
0
 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);
 }
コード例 #3
0
        /// <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);
        }
コード例 #4
0
 public static AMTAction GetDefaultAction(AMTAnimation Animation)
 {
     return(GetActionFromName(Animation, Animation.Manifest.DefaultAction));
 }