using Content.Shared.StatusIcon; using Robust.Shared.Prototypes; using Robust.Shared.Serialization; namespace Content.Shared.Access.Systems { public abstract class SharedAgentIdCardSystem : EntitySystem { // Just for friending for now } /// /// Key representing which is currently open. /// Useful when there are multiple UI for an object. Here it's future-proofing only. /// [Serializable, NetSerializable] public enum AgentIDCardUiKey : byte { Key, } /// /// Represents an state that can be sent to the client /// [Serializable, NetSerializable] public sealed class AgentIDCardBoundUserInterfaceState : BoundUserInterfaceState { public readonly HashSet> Icons; public string CurrentName { get; } public string CurrentJob { get; } public string CurrentJobIconId { get; } public AgentIDCardBoundUserInterfaceState(string currentName, string currentJob, string currentJobIconId, HashSet> icons) { Icons = icons; CurrentName = currentName; CurrentJob = currentJob; CurrentJobIconId = currentJobIconId; } } [Serializable, NetSerializable] public sealed class AgentIDCardNameChangedMessage : BoundUserInterfaceMessage { public string Name { get; } public AgentIDCardNameChangedMessage(string name) { Name = name; } } [Serializable, NetSerializable] public sealed class AgentIDCardJobChangedMessage : BoundUserInterfaceMessage { public string Job { get; } public AgentIDCardJobChangedMessage(string job) { Job = job; } } [Serializable, NetSerializable] public sealed class AgentIDCardJobIconChangedMessage : BoundUserInterfaceMessage { public ProtoId JobIconId { get; } public AgentIDCardJobIconChangedMessage(ProtoId jobIconId) { JobIconId = jobIconId; } } }