using System; using ShrinkEventBus; namespace ShrinkDataSaver.Integration { public class SettingsChangedEvent : IShrinkEvent { public string Key { get; internal set; } public object Value { get; internal set; } public T Get() => (T)Convert.ChangeType(Value, typeof(T)); } public class SaveStartedEvent : IShrinkEvent { public int SlotIndex { get; internal set; } public long Timestamp { get; internal set; } } public class SaveCompletedEvent : IShrinkEvent { public int SlotIndex { get; internal set; } public string[] ModuleNames { get; internal set; } public long Timestamp { get; internal set; } } public class SaveFailedEvent : IShrinkEvent { public int SlotIndex { get; internal set; } public string ErrorMessage { get; internal set; } } public class LoadStartedEvent : IShrinkEvent { public int SlotIndex { get; internal set; } public long Timestamp { get; internal set; } } public class LoadCompletedEvent : IShrinkEvent { public int SlotIndex { get; internal set; } public string[] ModuleNames { get; internal set; } public int Version { get; internal set; } public long Timestamp { get; internal set; } } public class LoadFailedEvent : IShrinkEvent { public int SlotIndex { get; internal set; } public string ErrorMessage { get; internal set; } } public class MigrationCompletedEvent : IShrinkEvent { public int SlotIndex { get; internal set; } public int FromVersion { get; internal set; } public int ToVersion { get; internal set; } } public class SlotDeletedEvent : IShrinkEvent { public int SlotIndex { get; internal set; } } }