using Robust.Shared.Serialization; namespace Content.Shared.CartridgeLoader.Cartridges; /// /// Base UI message for NanoTask interactions /// public interface INanoTaskUiMessagePayload { } /// /// Dispatched when a new task is created /// [Serializable, NetSerializable, DataRecord] public sealed class NanoTaskAddTask : INanoTaskUiMessagePayload { /// /// The newly created task /// public readonly NanoTaskItem Item; public NanoTaskAddTask(NanoTaskItem item) { Item = item; } } /// /// Dispatched when an existing task is modified /// [Serializable, NetSerializable, DataRecord] public sealed class NanoTaskUpdateTask : INanoTaskUiMessagePayload { /// /// The task that was updated and its ID /// public readonly NanoTaskItemAndId Item; public NanoTaskUpdateTask(NanoTaskItemAndId item) { Item = item; } } /// /// Dispatched when an existing task is deleted /// [Serializable, NetSerializable, DataRecord] public sealed class NanoTaskDeleteTask : INanoTaskUiMessagePayload { /// /// The ID of the task to delete /// public readonly int Id; public NanoTaskDeleteTask(int id) { Id = id; } } /// /// Dispatched when a task is requested to be printed /// [Serializable, NetSerializable, DataRecord] public sealed class NanoTaskPrintTask : INanoTaskUiMessagePayload { /// /// The NanoTask to print /// public readonly NanoTaskItem Item; public NanoTaskPrintTask(NanoTaskItem item) { Item = item; } } /// /// Cartridge message event carrying the NanoTask UI messages /// [Serializable, NetSerializable] public sealed class NanoTaskUiMessageEvent : CartridgeMessageEvent { public readonly INanoTaskUiMessagePayload Payload; public NanoTaskUiMessageEvent(INanoTaskUiMessagePayload payload) { Payload = payload; } }