Exemplo n.º 1
0
 public AnimationNode(uint nodeType, string nodeTag)
     : base(nodeType, nodeTag)
 {
     this.mFlags = JazzAnimationFlags.Default;
     this.mPriority = JazzChunk.AnimationPriority.Unset;
     this.mBlendInTime = 0;
     this.mBlendOutTime = 0;
     this.mSpeed = 1;
     this.mActor = null;
     this.mTimingPriority = JazzChunk.AnimationPriority.Unset;
 }
Exemplo n.º 2
0
 public void SetFlags(JazzAnimationFlags flags, bool value)
 {
     if (value)
     {
         this.mFlags |= flags;
     }
     else
     {
         this.mFlags &= ~flags;
     }
 }
Exemplo n.º 3
0
 public AnimationNode(uint nodeType, string nodeTag)
     : base(nodeType, nodeTag)
 {
     this.mFlags          = JazzAnimationFlags.Default;
     this.mPriority       = JazzChunk.AnimationPriority.Unset;
     this.mBlendInTime    = 0;
     this.mBlendOutTime   = 0;
     this.mSpeed          = 1;
     this.mActor          = null;
     this.mTimingPriority = JazzChunk.AnimationPriority.Unset;
 }
Exemplo n.º 4
0
        public override void UpdateVisualization()
        {
            if (this.mScene.StateView == null)
            {
                return;
            }
            SizeF        size;
            float        w = 40;
            float        h = 15;
            string       name;
            IResourceKey rk;

            Graphics      g  = this.mScene.StateView.CreateGraphics();
            StringBuilder sb = new StringBuilder();

            ActorDefinition ad = this.mPlayNode.Actor;

            /*this.mActorString = "Actor: " + (ad == null ? "" : ad.Name);
             * //w = Math.Max(w, kAGW * this.mActorString.Length + 4);
             * size = g.MeasureString(this.mActorString, TextFont);
             * w = Math.Max(w, size.Width + 5);/* */
            sb.AppendLine("Actor: " + (ad == null ? "" : ad.Name));

            /*this.mPropsString = "Flags: "
             + AnimFlagString(this.mPlayNode.Flags);
             + //w = Math.Max(w, kAGW * this.mPropsString.Length + 4);
             + size = g.MeasureString(this.mPropsString, TextFont);
             + w = Math.Max(w, size.Width + 5);/* */
            sb.Append("Flags: ");
            sb.Append(AnimFlagString(this.mPlayNode.Flags));

            JazzAnimationFlags flags = this.mPlayNode.Flags;

            rk = this.mPlayNode.ClipKey;
            if (!string.IsNullOrEmpty(this.mPlayNode.ClipPattern))
            {
                /*this.mBaseClipString = "Base: "
                 + this.mPlayNode.ClipPattern;
                 + //w = Math.Max(w, kAGW * this.mBaseClipString.Length + 4);
                 + size = g.MeasureString(this.mBaseClipString, TextFont);
                 + w = Math.Max(w, size.Width + 5);
                 + h += kMGH;/* */
                sb.AppendLine();
                sb.Append("Base: ");
                sb.Append(this.mPlayNode.ClipPattern);

                if ((flags & kBaseClipMask)
                    != JazzAnimationFlags.TimingNormal)
                {
                    sb.Append(" (Social | Object Only)");
                }
                else if (
                    (flags & JazzAnimationFlags.BaseClipIsSocial)
                    != JazzAnimationFlags.TimingNormal)
                {
                    sb.Append(" (Social)");
                }
                else if (
                    (flags & JazzAnimationFlags.BaseClipIsObjectOnly)
                    != JazzAnimationFlags.TimingNormal)
                {
                    sb.Append(" (Object Only)");
                }
            }
            else if (rk != null && !rk.Equals(sZeroKey) && rk.Instance != 0)
            {
                /*this.mBaseClipString = "Base: " + rk.ToString();
                 * if (KeyNameReg.TryFindName(rk.Instance, out name))
                 * {
                 *  this.mBaseClipString += string.Concat(" ", name);
                 * }
                 * //w = Math.Max(w, kAGW * this.mBaseClipString.Length + 4);
                 * size = g.MeasureString(this.mBaseClipString, TextFont);
                 * w = Math.Max(w, size.Width + 5);
                 * h += kMGH;/* */
                sb.AppendLine();
                sb.Append("Base: ");
                if (KeyNameReg.TryFindName(rk.Instance, out name))
                {
                    sb.Append(name);
                }
                else if (KeyNameReg.TryFindGenCLIP(rk.Instance, out name))
                {
                    sb.Append(name);
                }
                else if (KeyNameReg.TryFindLabel(rk.Instance, out name))
                {
                    sb.Append(name);
                }
                else
                {
                    sb.Append("0x" + rk.Instance.ToString("X16"));
                }
                if ((flags & kBaseClipMask)
                    != JazzAnimationFlags.TimingNormal)
                {
                    sb.Append(" (Social | Object Only)");
                }
                else if (
                    (flags & JazzAnimationFlags.BaseClipIsSocial)
                    != JazzAnimationFlags.TimingNormal)
                {
                    sb.Append(" (Social)");
                }
                else if (
                    (flags & JazzAnimationFlags.BaseClipIsObjectOnly)
                    != JazzAnimationFlags.TimingNormal)
                {
                    sb.Append(" (Object Only)");
                }
            }

            /*else
            *  {
            *   this.mBaseClipString = null;
            *  }/* */

            rk = this.mPlayNode.TrackMaskKey;
            if (rk != null && !rk.Equals(sZeroKey) && rk.Instance != 0)
            {
                /*this.mTkMkString = "TkMk: " + rk.ToString();
                 * if (KeyNameReg.TryFindName(rk.Instance, out name))
                 * {
                 *  this.mTkMkString += string.Concat(" ", name);
                 * }
                 * //w = Math.Max(w, kAGW * this.mTkMkString.Length + 4);
                 * size = g.MeasureString(this.mTkMkString, TextFont);
                 * w = Math.Max(w, size.Width + 5);
                 * h += kMGH;/* */
                sb.AppendLine();
                sb.Append("TkMk: ");
                if (KeyNameReg.TryFindNameOrLabel(rk.Instance, out name))
                {
                    sb.Append(name);
                }
                else
                {
                    sb.Append("0x" + rk.Instance.ToString("X16"));
                }
            }

            /*else
            *  {
            *   this.mTkMkString = null;
            *  }/* */

            rk = this.mPlayNode.AdditiveClipKey;
            if (!string.IsNullOrEmpty(this.mPlayNode.AdditiveClipPattern))
            {
                /*this.mAddiClipString = "Addi: "
                 + this.mPlayNode.AdditiveClipPattern;
                 + //w = Math.Max(w, kAGW * this.mAddiClipString.Length + 4);
                 + size = g.MeasureString(this.mAddiClipString, TextFont);
                 + w = Math.Max(w, size.Width + 5);
                 + h += kMGH;/* */
                sb.AppendLine();
                sb.Append("Addi: ");
                sb.Append(this.mPlayNode.AdditiveClipPattern);

                if ((flags & kAdditiveClipMask)
                    != JazzAnimationFlags.TimingNormal)
                {
                    sb.Append(" (Social | Object Only)");
                }
                else if (
                    (flags & JazzAnimationFlags.AdditiveClipIsSocial)
                    != JazzAnimationFlags.TimingNormal)
                {
                    sb.Append(" (Social)");
                }
                else if (
                    (flags & JazzAnimationFlags.AdditiveClipIsObjectOnly)
                    != JazzAnimationFlags.TimingNormal)
                {
                    sb.Append(" (Object Only)");
                }
            }
            else if (rk != null && !rk.Equals(sZeroKey) && rk.Instance != 0)
            {
                /*this.mAddiClipString = "Addi: " + rk.ToString();
                 * if (KeyNameReg.TryFindName(rk.Instance, out name))
                 * {
                 *  this.mAddiClipString += string.Concat(" ", name);
                 * }
                 * //w = Math.Max(w, kAGW * this.mAddiClipString.Length + 4);
                 * size = g.MeasureString(this.mAddiClipString, TextFont);
                 * w = Math.Max(w, size.Width + 5);
                 * h += kMGH;/* */
                sb.AppendLine();
                sb.Append("Addi: ");
                if (KeyNameReg.TryFindName(rk.Instance, out name))
                {
                    sb.Append(name);
                }
                else if (KeyNameReg.TryFindGenCLIP(rk.Instance, out name))
                {
                    sb.Append(name);
                }
                else if (KeyNameReg.TryFindLabel(rk.Instance, out name))
                {
                    sb.Append(name);
                }
                else
                {
                    sb.Append("0x" + rk.Instance.ToString("X16"));
                }
                if ((flags & kAdditiveClipMask)
                    != JazzAnimationFlags.TimingNormal)
                {
                    sb.Append(" (Social | Object Only)");
                }
                else if (
                    (flags & JazzAnimationFlags.AdditiveClipIsSocial)
                    != JazzAnimationFlags.TimingNormal)
                {
                    sb.Append(" (Social)");
                }
                else if (
                    (flags & JazzAnimationFlags.AdditiveClipIsObjectOnly)
                    != JazzAnimationFlags.TimingNormal)
                {
                    sb.Append(" (Object Only)");
                }
            }

            /*else
            *  {
            *   this.mAddiClipString = null;
            *  }/* */

            this.mTextString = sb.ToString();
            size             = g.MeasureString(this.mTextString, sTextFont);
            w = Math.Max(w, size.Width + 5);
            h = Math.Max(h, size.Height + 5);

            this.mEntryAnchor.SetPosition(0, h / 2);
            this.mTargetAnchor.SetPosition(w, h / 2);

            if (this.mBorderPath == null)
            {
                this.mBorderPath = new GraphicsPath();
            }
            this.mBorderPath.Reset();
            AddRoundedRectangle(this.mBorderPath, 0, 0, w, h, 5);

            float bbp = 2 * AnchorPoint.Radius;

            this.BoundingBox = new RectangleF(
                -bbp, -bbp, w + 2 * bbp, h + 2 * bbp);
        }
Exemplo n.º 5
0
 public static string AnimFlagString(JazzAnimationFlags flags)
 {
     if (flags == JazzAnimationFlags.TimingNormal)
     {
         return "Timing Normal";
     }
     StringBuilder fsb = new StringBuilder();
     if ((flags & JazzAnimationFlags.TimingMask)
         != JazzAnimationFlags.TimingNormal)
     {
         if ((flags & JazzAnimationFlags.TimingMaster)
             == JazzAnimationFlags.TimingMaster)
         {
             fsb.Append("Timing Master");
         }
         else if ((flags & JazzAnimationFlags.TimingSlave)
             == JazzAnimationFlags.TimingSlave)
         {
             fsb.Append("Timing Slave");
         }
         else
         {
             fsb.Append("Timing Ignored");
         }
     }
     else
     {
         fsb.Append("Timing Normal");
     }
     if ((flags & JazzAnimationFlags.AtEnd)
         != JazzAnimationFlags.TimingNormal)
     {
         fsb.Append(" | At End");
     }
     if ((flags & JazzAnimationFlags.LoopAsNeeded)
         != JazzAnimationFlags.TimingNormal)
     {
         fsb.Append(" | Loop As Needed");
     }
     if ((flags & JazzAnimationFlags.OverridePriority)
         != JazzAnimationFlags.TimingNormal)
     {
         fsb.Append(" | Override Priority");
     }
     if ((flags & kMirrorMask)
         != JazzAnimationFlags.TimingNormal)
     {
         fsb.Append(" | (Override) Mirror");
     }
     else if ((flags & JazzAnimationFlags.Mirror)
         != JazzAnimationFlags.TimingNormal)
     {
         fsb.Append(" | Mirror");
     }
     else if ((flags & JazzAnimationFlags.OverrideMirror)
         != JazzAnimationFlags.TimingNormal)
     {
         fsb.Append(" | Override Mirror");
     }
     if ((flags & JazzAnimationFlags.Interruptible)
         != JazzAnimationFlags.TimingNormal)
     {
         fsb.Append(" | Interruptible");
     }
     if ((flags & JazzAnimationFlags.ForceBlend)
         != JazzAnimationFlags.TimingNormal)
     {
         fsb.Append(" | Force Blend");
     }
     if ((flags & kTimingPriorityMask)
         != JazzAnimationFlags.TimingNormal)
     {
         fsb.Append(" | Use Timing Priority (As Clock Master)");
     }
     else
         if ((flags & JazzAnimationFlags.UseTimingPriority)
             == JazzAnimationFlags.UseTimingPriority)
         {
             fsb.Append(" | Use Timing Priority");
         }
         else
             if ((flags & JazzAnimationFlags.UseTimingPriorityAsClockMaster)
                 != JazzAnimationFlags.TimingNormal)
             {
                 fsb.Append(" | Use Timing Priority As Clock Master");
             }
     if ((flags & JazzAnimationFlags.HoldPose)
         != JazzAnimationFlags.HoldPose)
     {
         fsb.Append(" | Hold Pose");
     }
     if ((flags & JazzAnimationFlags.BlendMotionAccumulation)
         != JazzAnimationFlags.TimingNormal)
     {
         fsb.Append(" | Blend Motion Accumulation");
     }
     return fsb.ToString();
 }
Exemplo n.º 6
0
        private void CreateFlagsCommand(object value)
        {
            JazzAnimationFlags flags = (JazzAnimationFlags)value;

            this.mScene.Container.UndoRedo.Submit(new FlagsCommand(this, flags));
        }
Exemplo n.º 7
0
        public static string AnimFlagString(JazzAnimationFlags flags)
        {
            if (flags == JazzAnimationFlags.TimingNormal)
            {
                return("Timing Normal");
            }
            StringBuilder fsb = new StringBuilder();

            if ((flags & JazzAnimationFlags.TimingMask)
                != JazzAnimationFlags.TimingNormal)
            {
                if ((flags & JazzAnimationFlags.TimingMaster)
                    == JazzAnimationFlags.TimingMaster)
                {
                    fsb.Append("Timing Master");
                }
                else if ((flags & JazzAnimationFlags.TimingSlave)
                         == JazzAnimationFlags.TimingSlave)
                {
                    fsb.Append("Timing Slave");
                }
                else
                {
                    fsb.Append("Timing Ignored");
                }
            }
            else
            {
                fsb.Append("Timing Normal");
            }
            if ((flags & JazzAnimationFlags.AtEnd)
                != JazzAnimationFlags.TimingNormal)
            {
                fsb.Append(" | At End");
            }
            if ((flags & JazzAnimationFlags.LoopAsNeeded)
                != JazzAnimationFlags.TimingNormal)
            {
                fsb.Append(" | Loop As Needed");
            }
            if ((flags & JazzAnimationFlags.OverridePriority)
                != JazzAnimationFlags.TimingNormal)
            {
                fsb.Append(" | Override Priority");
            }
            if ((flags & kMirrorMask)
                != JazzAnimationFlags.TimingNormal)
            {
                fsb.Append(" | (Override) Mirror");
            }
            else if ((flags & JazzAnimationFlags.Mirror)
                     != JazzAnimationFlags.TimingNormal)
            {
                fsb.Append(" | Mirror");
            }
            else if ((flags & JazzAnimationFlags.OverrideMirror)
                     != JazzAnimationFlags.TimingNormal)
            {
                fsb.Append(" | Override Mirror");
            }
            if ((flags & JazzAnimationFlags.Interruptible)
                != JazzAnimationFlags.TimingNormal)
            {
                fsb.Append(" | Interruptible");
            }
            if ((flags & JazzAnimationFlags.ForceBlend)
                != JazzAnimationFlags.TimingNormal)
            {
                fsb.Append(" | Force Blend");
            }
            if ((flags & kTimingPriorityMask)
                != JazzAnimationFlags.TimingNormal)
            {
                fsb.Append(" | Use Timing Priority (As Clock Master)");
            }
            else
            if ((flags & JazzAnimationFlags.UseTimingPriority)
                == JazzAnimationFlags.UseTimingPriority)
            {
                fsb.Append(" | Use Timing Priority");
            }
            else
            if ((flags & JazzAnimationFlags.UseTimingPriorityAsClockMaster)
                != JazzAnimationFlags.TimingNormal)
            {
                fsb.Append(" | Use Timing Priority As Clock Master");
            }
            if ((flags & JazzAnimationFlags.HoldPose)
                != JazzAnimationFlags.HoldPose)
            {
                fsb.Append(" | Hold Pose");
            }
            if ((flags & JazzAnimationFlags.BlendMotionAccumulation)
                != JazzAnimationFlags.TimingNormal)
            {
                fsb.Append(" | Blend Motion Accumulation");
            }
            return(fsb.ToString());
        }
Exemplo n.º 8
0
 public void SetFlags(JazzAnimationFlags flags, bool value)
 {
     if (value)
     {
         this.mFlags |= flags;
     }
     else
     {
         this.mFlags &= ~flags;
     }
 }