internal PartAnimation(PartAnimation copyFromAnimation)
        {
            EventTrigger        = copyFromAnimation.EventTrigger;
            RotationSet         = copyFromAnimation.RotationSet;
            RotCenterSet        = copyFromAnimation.RotCenterSet;
            CurrentEmissivePart = copyFromAnimation.CurrentEmissivePart;
            AnimationId         = copyFromAnimation.AnimationId;
            ResetEmissives      = copyFromAnimation.ResetEmissives;
            EmissiveIds         = copyFromAnimation.EmissiveIds;

            //Unique Animation ID
            _uid = Guid.NewGuid();

            TypeSet          = copyFromAnimation.TypeSet;
            Muzzle           = copyFromAnimation.Muzzle;
            MoveToSetIndexer = copyFromAnimation.MoveToSetIndexer;
            NumberOfMoves    = copyFromAnimation.NumberOfMoves;
            System           = copyFromAnimation.System;
            SubpartId        = copyFromAnimation.SubpartId;
            MotionDelay      = copyFromAnimation.MotionDelay;
            DoesLoop         = copyFromAnimation.DoesLoop;
            DoesReverse      = copyFromAnimation.DoesReverse;
            TriggerOnce      = copyFromAnimation.TriggerOnce;
            _currentMove     = 0;
            MovesPivotPos    = copyFromAnimation.MovesPivotPos;
            FinalPos         = copyFromAnimation.FinalPos;
            HomePos          = copyFromAnimation.HomePos;
            HasMovement      = copyFromAnimation.HasMovement;
            EmissiveParts    = copyFromAnimation.EmissiveParts;
            EventIdLookup    = copyFromAnimation.EventIdLookup;
        }
 protected bool Equals(PartAnimation other)
 {
     return(Equals(_uid, other._uid));
 }