mirror of
https://github.com/WWhiteDreamProject/wwdpublic.git
synced 2026-04-17 05:27:38 +03:00
# Description There was a miscommunication, and I bungled the repository during the last round of merges. The Mirror Bot is not quite finished yet, and some polishing needs to happen behind the scenes before we can actually start doing this. Also new policies from the discord are pending regarding how these PRs need to be handled. I'll need to either reopen or remake the reverted PRs, since we do actually still need them. But we need PRs mirrored from Wizards' Den in order to go through the list properly. 
135 lines
4.6 KiB
C#
135 lines
4.6 KiB
C#
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<string> AccessList;
|
|
public readonly string JobPrototype;
|
|
|
|
public WriteToTargetIdMessage(string fullName, string jobTitle, List<string> accessList, string 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", Delta V: Removed Brig Access
|
|
"Boxer", // DeltaV - Add Boxer access
|
|
"Detective",
|
|
"Captain",
|
|
"Cargo",
|
|
"Chapel",
|
|
"Chemistry",
|
|
"ChiefEngineer",
|
|
"ChiefMedicalOfficer",
|
|
"Clown", // DeltaV - Add Clown access
|
|
"Command",
|
|
"Cryogenics",
|
|
"Engineering",
|
|
"External",
|
|
"HeadOfPersonnel",
|
|
"HeadOfSecurity",
|
|
"Hydroponics",
|
|
"Janitor",
|
|
"Kitchen",
|
|
"Lawyer",
|
|
"Library", // DeltaV - Add Library access
|
|
"Maintenance",
|
|
"Medical",
|
|
"Mime", // DeltaV - Add Mime access
|
|
"Musician", // DeltaV - Add Musician access
|
|
"Paramedic", // DeltaV - Add Paramedic access
|
|
"Psychologist", // DeltaV - Add Psychologist access
|
|
"Quartermaster",
|
|
"Reporter", // DeltaV - Add Reporter access
|
|
"Research",
|
|
"ResearchDirector",
|
|
"Salvage",
|
|
"Security",
|
|
"Service",
|
|
"Theatre",
|
|
"Orders", // DeltaV - Orders, see Resources/Prototypes/DeltaV/Access/cargo.yml
|
|
"Mail", // Nyanotrasen - Mail, see Resources/Prototypes/Nyanotrasen/Access/cargo.yml
|
|
"Mantis", // DeltaV - Psionic Mantis, see Resources/Prototypes/DeltaV/Access/epistemics.yml
|
|
"Zookeeper", // DeltaV - Add Zookeeper access
|
|
};
|
|
|
|
[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 string[]? TargetIdAccessList;
|
|
public readonly string[]? AllowedModifyAccessList;
|
|
public readonly string TargetIdJobPrototype;
|
|
|
|
public IdCardConsoleBoundUserInterfaceState(bool isPrivilegedIdPresent,
|
|
bool isPrivilegedIdAuthorized,
|
|
bool isTargetIdPresent,
|
|
string? targetIdFullName,
|
|
string? targetIdJobTitle,
|
|
string[]? targetIdAccessList,
|
|
string[]? allowedModifyAccessList,
|
|
string 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,
|
|
}
|
|
}
|