using System; using Artemis.Core; using Artemis.Core.LayerEffects; namespace Artemis.UI.Shared.Services.ProfileEditor.Commands; /// /// Represents a profile editor command that can be used to remove a layer effect from a profile element. /// public class RemoveLayerEffect : IProfileEditorCommand, IDisposable { private readonly RenderProfileElement _renderProfileElement; private readonly BaseLayerEffect _layerEffect; private bool _executed; /// /// Creates a new instance of the class. /// public RemoveLayerEffect(BaseLayerEffect layerEffect) { _renderProfileElement = layerEffect.ProfileElement; _layerEffect = layerEffect; } /// public string DisplayName => "Remove layer effect"; /// public void Execute() { _renderProfileElement.RemoveLayerEffect(_layerEffect); _executed = true; } /// public void Undo() { _renderProfileElement.AddLayerEffect(_layerEffect); _executed = false; } /// public void Dispose() { if (_executed) _layerEffect.Dispose(); } }