Пример #1
0
        /// <summary>
        /// Add specified bone effect and update state to make it work. If the effect is already added then this does nothing.
        /// </summary>
        public void AddBoneEffect(BoneEffect effect)
        {
            if (_additionalBoneEffects.Contains(effect))
            {
                return;
            }

            _additionalBoneEffects.Add(effect);
        }
Пример #2
0
        /// <summary>
        /// Add specified bone effect and update state to make it work. If the effect is already added then this does nothing.
        /// </summary>
        public void AddBoneEffect(BoneEffect effect)
        {
            if (_additionalBoneEffects.Contains(effect))
            {
                return;
            }

            _additionalBoneEffects.Add(effect);

            var newEffects = effect.GetAffectedBones(this).Except(Modifiers.Select(x => x.BoneName)).ToList();

            if (newEffects.Any())
            {
                foreach (var boneName in newEffects)
                {
                    Modifiers.Add(new BoneModifier(boneName));
                }
                ModifiersFillInTransforms();
                NeedsBaselineUpdate = true;
            }
        }