using Content.Shared.Access.Systems; using Content.Shared.PDA; using Content.Shared.StatusIcon; using Robust.Shared.GameStates; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; namespace Content.Shared.Access.Components; [RegisterComponent, NetworkedComponent] [AutoGenerateComponentState] [Access(typeof(SharedIdCardSystem), typeof(SharedPdaSystem), typeof(SharedAgentIdCardSystem), Other = AccessPermissions.ReadWrite)] public sealed partial class IdCardComponent : Component { [DataField("fullName"), ViewVariables(VVAccess.ReadWrite)] [AutoNetworkedField] // FIXME Friends public string? FullName; [DataField("jobTitle")] [AutoNetworkedField] [Access(typeof(SharedIdCardSystem), typeof(SharedPdaSystem), typeof(SharedAgentIdCardSystem), Other = AccessPermissions.ReadWrite), ViewVariables(VVAccess.ReadWrite)] public string? JobTitle; /// /// The state of the job icon rsi. /// [DataField("jobIcon", customTypeSerializer: typeof(PrototypeIdSerializer))] [AutoNetworkedField] public string JobIcon = "JobIconUnknown"; /// /// The unlocalized names of the departments associated with the job /// [DataField("jobDepartments")] [AutoNetworkedField] public List JobDepartments = new(); /// /// Determines if accesses from this card should be logged by /// [DataField, ViewVariables(VVAccess.ReadWrite)] public bool BypassLogging; [DataField] public LocId NameLocId = "access-id-card-component-owner-name-job-title-text"; [DataField] public LocId FullNameLocId = "access-id-card-component-owner-full-name-job-title-text"; [DataField] public bool CanMicrowave = true; }