public void Remove(Effect effect) { if (disposedValue) { throw new ObjectDisposedException(nameof(Project)); } effects.Remove(effect); effect.Dispose(); changed = true; refreshEffectsStatus(); OnEffectsChanged?.Invoke(this, EventArgs.Empty); }
public Effect AddEffect(string effectName) { if (disposedValue) { throw new ObjectDisposedException(nameof(Project)); } var effect = new ScriptedEffect(this, scriptManager.Get(effectName)); effects.Add(effect); changed = true; effect.OnChanged += effect_OnChanged; refreshEffectsStatus(); OnEffectsChanged?.Invoke(this, EventArgs.Empty); QueueEffectUpdate(effect); return(effect); }