/// <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); }
/// <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; } }