Files
tbd-station-14/Content.Shared/CartridgeLoader/Cartridges/NanoTaskUiMessageEvent.cs
pathetic meowmeow 4576555e5b NanoTask (#34095)
2025-03-15 09:24:23 -07:00

92 lines
2.1 KiB
C#

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