using System; using System.Collections.Generic; using System.Linq; using Barotrauma.Extensions; using Barotrauma.Items.Components; using Microsoft.Xna.Framework; namespace Barotrauma { /// /// Implementation of the Command pattern. /// /// /// /// Created by Markus Isberg on 11th of March 2020 for the submarine editor. /// "Implementing a global undo and redo with Memento pattern proved too difficult of a task for me so I implemented it with this pattern instead." /// internal abstract partial class Command { /// /// A method that should apply a new state on an object or perform an action /// public abstract void Execute(); /// /// A method that should revert Execute() method's actions /// public abstract void UnExecute(); /// /// State no longer exists, clean up the lingering garbage /// public abstract void Cleanup(); } }