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