public UndoRedoService(IWorldTreeService worldTreeService, IAssetService assetService, ISerializationNecessities serializationNecessities, ITrwDiffBuilder diffBuilder) { this.worldTreeService = worldTreeService; this.diffBuilder = diffBuilder; var handlers = serializationNecessities.GetTrwHandlerContainer(SaveLoadConstants.WorldSerializationType); var typeRedirects = serializationNecessities.GetTrwHandlerTypeRedirects(SaveLoadConstants.WorldSerializationType); diffApplier = new TrwSerializationDiffApplier(handlers, typeRedirects, x => x.Add(SaveLoadConstants.AssetDictBagKey, new Dictionary <string, IAsset>()), x => x.Add(SaveLoadConstants.AssetDictBagKey, assetService.Assets)); diffIdentityComparer = new UndoRedoDiffIdentityComparer(); undoStack = new Stack <IUndoable>(); redoStack = new Stack <IUndoable>(); guiObserver = null; }
public void SetObserver(IGuiObserver <IUndoRedoService, object> observer) { guiObserver = observer; }