public void AddNewHKXToLoad(string name, byte[] data) { lock (_lock_animDict) { if (animHKXsToLoad.ContainsKey(name)) { animHKXsToLoad.Remove(name); } animHKXsToLoad.Add(name, data); } lock (_lock_AdditiveOverlays) { var overlay = _additiveBlendOverlays.FirstOrDefault(a => a.Name == name); if (overlay != null) { _additiveBlendOverlays.Remove(overlay); } if (_additiveBlendOverlayNames.Contains(name)) { _additiveBlendOverlayNames.Remove(name); } } lock (_lock_animCache) { if (AnimationCache.ContainsKey(name)) { AnimationCache.Remove(name); } } }
public void AddNewAnimation(string name, NewHavokAnimation anim) { lock (_lock_animDict) { if (animHKXsToLoad.ContainsKey(name)) { animHKXsToLoad.Remove(name); } } lock (_lock_AdditiveOverlays) { var overlay = _additiveBlendOverlays.FirstOrDefault(a => a.Name == name); if (overlay != null) { _additiveBlendOverlays.Remove(overlay); } if (_additiveBlendOverlayNames.Contains(name)) { _additiveBlendOverlayNames.Remove(name); } if (anim.IsAdditiveBlend) { _additiveBlendOverlayNames.Add(anim.Name); _additiveBlendOverlays.Add(NewHavokAnimation.Clone(anim)); } } lock (_lock_animCache) { if (AnimationCache.ContainsKey(name)) { AnimationCache.Remove(name); } AnimationCache.Add(name, anim); } }