| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 |
- using Content.Shared.Access.Systems;
- using Content.Shared.Containers.ItemSlots;
- using Robust.Shared.GameStates;
- using Robust.Shared.Prototypes;
- using Robust.Shared.Serialization;
- namespace Content.Shared.Access.Components;
- [RegisterComponent, NetworkedComponent, AutoGenerateComponentState]
- [Access(typeof(SharedIdCardConsoleSystem))]
- public sealed partial class IdCardConsoleComponent : Component
- {
- public const int MaxFullNameLength = 30;
- public const int MaxJobTitleLength = 30;
- public static string PrivilegedIdCardSlotId = "IdCardConsole-privilegedId";
- public static string TargetIdCardSlotId = "IdCardConsole-targetId";
- [DataField]
- public ItemSlot PrivilegedIdSlot = new();
- [DataField]
- public ItemSlot TargetIdSlot = new();
- [Serializable, NetSerializable]
- public sealed class WriteToTargetIdMessage : BoundUserInterfaceMessage
- {
- public readonly string FullName;
- public readonly string JobTitle;
- public readonly List<ProtoId<AccessLevelPrototype>> AccessList;
- public readonly ProtoId<AccessLevelPrototype> JobPrototype;
- public WriteToTargetIdMessage(string fullName, string jobTitle, List<ProtoId<AccessLevelPrototype>> accessList, ProtoId<AccessLevelPrototype> jobPrototype)
- {
- FullName = fullName;
- JobTitle = jobTitle;
- AccessList = accessList;
- JobPrototype = jobPrototype;
- }
- }
- // Put this on shared so we just send the state once in PVS range rather than every time the UI updates.
- [DataField, AutoNetworkedField]
- public List<ProtoId<AccessLevelPrototype>> AccessLevels = new()
- {
- "Armory",
- "Atmospherics",
- "Bar",
- "Brig",
- "Detective",
- "Captain",
- "Cargo",
- "Chapel",
- "Chemistry",
- "ChiefEngineer",
- "ChiefMedicalOfficer",
- "Command",
- "Cryogenics",
- "Engineering",
- "External",
- "HeadOfPersonnel",
- "HeadOfSecurity",
- "Hydroponics",
- "Janitor",
- "Kitchen",
- "Lawyer",
- "Maintenance",
- "Medical",
- "Quartermaster",
- "Research",
- "ResearchDirector",
- "Salvage",
- "Security",
- "Service",
- "Theatre",
- };
- [Serializable, NetSerializable]
- public sealed class IdCardConsoleBoundUserInterfaceState : BoundUserInterfaceState
- {
- public readonly string PrivilegedIdName;
- public readonly bool IsPrivilegedIdPresent;
- public readonly bool IsPrivilegedIdAuthorized;
- public readonly bool IsTargetIdPresent;
- public readonly string TargetIdName;
- public readonly string? TargetIdFullName;
- public readonly string? TargetIdJobTitle;
- public readonly List<ProtoId<AccessLevelPrototype>>? TargetIdAccessList;
- public readonly List<ProtoId<AccessLevelPrototype>>? AllowedModifyAccessList;
- public readonly ProtoId<AccessLevelPrototype> TargetIdJobPrototype;
- public IdCardConsoleBoundUserInterfaceState(bool isPrivilegedIdPresent,
- bool isPrivilegedIdAuthorized,
- bool isTargetIdPresent,
- string? targetIdFullName,
- string? targetIdJobTitle,
- List<ProtoId<AccessLevelPrototype>>? targetIdAccessList,
- List<ProtoId<AccessLevelPrototype>>? allowedModifyAccessList,
- ProtoId<AccessLevelPrototype> targetIdJobPrototype,
- string privilegedIdName,
- string targetIdName)
- {
- IsPrivilegedIdPresent = isPrivilegedIdPresent;
- IsPrivilegedIdAuthorized = isPrivilegedIdAuthorized;
- IsTargetIdPresent = isTargetIdPresent;
- TargetIdFullName = targetIdFullName;
- TargetIdJobTitle = targetIdJobTitle;
- TargetIdAccessList = targetIdAccessList;
- AllowedModifyAccessList = allowedModifyAccessList;
- TargetIdJobPrototype = targetIdJobPrototype;
- PrivilegedIdName = privilegedIdName;
- TargetIdName = targetIdName;
- }
- }
- [Serializable, NetSerializable]
- public enum IdCardConsoleUiKey : byte
- {
- Key,
- }
- }
|