+++ /dev/null
-using Content.Shared.Access.Components;
-
-namespace Content.Client.Access.Components;
-
-[RegisterComponent]
-[ComponentReference(typeof(SharedIdCardConsoleComponent))]
-public sealed class IdCardConsoleComponent : SharedIdCardConsoleComponent {}
-using Content.Client.Access.Components;
+using Content.Shared.Access.Components;
using Content.Shared.Access.Systems;
using Content.Shared.Containers.ItemSlots;
using Content.Shared.CrewManifest;
using Robust.Client.GameObjects;
using Robust.Shared.Prototypes;
-using static Content.Shared.Access.Components.SharedIdCardConsoleComponent;
+using static Content.Shared.Access.Components.IdCardConsoleComponent;
namespace Content.Client.Access.UI
{
public sealed class IdCardConsoleBoundUserInterface : BoundUserInterface
-using System.Collections.Generic;
using System.Linq;
using Content.Shared.Access;
using Content.Shared.Access.Systems;
using Robust.Client.UserInterface.Controls;
using Robust.Client.UserInterface.CustomControls;
using Robust.Client.UserInterface.XAML;
-using Robust.Shared.Localization;
-using Robust.Shared.Maths;
using Robust.Shared.Prototypes;
-using static Content.Shared.Access.Components.SharedIdCardConsoleComponent;
+using static Content.Shared.Access.Components.IdCardConsoleComponent;
namespace Content.Client.Access.UI
{
+++ /dev/null
-using Content.Server.Access.Systems;
-using Content.Shared.Access.Components;
-
-namespace Content.Server.Access.Components;
-
-[RegisterComponent]
-[ComponentReference(typeof(SharedIdCardConsoleComponent))]
-[Access(typeof(IdCardConsoleSystem))]
-public sealed class IdCardConsoleComponent : SharedIdCardConsoleComponent
-{
-}
using Robust.Server.GameObjects;
using Robust.Shared.Containers;
using Robust.Shared.Prototypes;
-using static Content.Shared.Access.Components.SharedIdCardConsoleComponent;
+using static Content.Shared.Access.Components.IdCardConsoleComponent;
namespace Content.Server.Access.Systems;
{
base.Initialize();
- SubscribeLocalEvent<SharedIdCardConsoleComponent, WriteToTargetIdMessage>(OnWriteToTargetIdMessage);
+ SubscribeLocalEvent<IdCardConsoleComponent, WriteToTargetIdMessage>(OnWriteToTargetIdMessage);
// one day, maybe bound user interfaces can be shared too.
- SubscribeLocalEvent<SharedIdCardConsoleComponent, ComponentStartup>(UpdateUserInterface);
- SubscribeLocalEvent<SharedIdCardConsoleComponent, EntInsertedIntoContainerMessage>(UpdateUserInterface);
- SubscribeLocalEvent<SharedIdCardConsoleComponent, EntRemovedFromContainerMessage>(UpdateUserInterface);
+ SubscribeLocalEvent<IdCardConsoleComponent, ComponentStartup>(UpdateUserInterface);
+ SubscribeLocalEvent<IdCardConsoleComponent, EntInsertedIntoContainerMessage>(UpdateUserInterface);
+ SubscribeLocalEvent<IdCardConsoleComponent, EntRemovedFromContainerMessage>(UpdateUserInterface);
}
- private void OnWriteToTargetIdMessage(EntityUid uid, SharedIdCardConsoleComponent component, WriteToTargetIdMessage args)
+ private void OnWriteToTargetIdMessage(EntityUid uid, IdCardConsoleComponent component, WriteToTargetIdMessage args)
{
if (args.Session.AttachedEntity is not { Valid: true } player)
return;
UpdateUserInterface(uid, component, args);
}
- private void UpdateUserInterface(EntityUid uid, SharedIdCardConsoleComponent component, EntityEventArgs args)
+ private void UpdateUserInterface(EntityUid uid, IdCardConsoleComponent component, EntityEventArgs args)
{
if (!component.Initialized)
return;
/// <summary>
/// Called whenever an access button is pressed, adding or removing that access from the target ID card.
- /// Writes data passed from the UI into the ID stored in <see cref="SharedIdCardConsoleComponent.TargetIdSlot"/>, if present.
+ /// Writes data passed from the UI into the ID stored in <see cref="IdCardConsoleComponent.TargetIdSlot"/>, if present.
/// </summary>
private void TryWriteToTargetId(EntityUid uid,
string newFullName,
List<string> newAccessList,
string newJobProto,
EntityUid player,
- SharedIdCardConsoleComponent? component = null)
+ IdCardConsoleComponent? component = null)
{
if (!Resolve(uid, ref component))
return;
}
/// <summary>
- /// Returns true if there is an ID in <see cref="SharedIdCardConsoleComponent.PrivilegedIdSlot"/> and said ID satisfies the requirements of <see cref="AccessReaderComponent"/>.
+ /// Returns true if there is an ID in <see cref="IdCardConsoleComponent.PrivilegedIdSlot"/> and said ID satisfies the requirements of <see cref="AccessReaderComponent"/>.
/// </summary>
- private bool PrivilegedIdIsAuthorized(EntityUid uid, SharedIdCardConsoleComponent? component = null)
+ private bool PrivilegedIdIsAuthorized(EntityUid uid, IdCardConsoleComponent? component = null)
{
if (!Resolve(uid, ref component))
return true;
{
jobTitle = jobTitle.Trim();
- if (jobTitle.Length > SharedIdCardConsoleComponent.MaxJobTitleLength)
- jobTitle = jobTitle[..SharedIdCardConsoleComponent.MaxJobTitleLength];
+ if (jobTitle.Length > IdCardConsoleComponent.MaxJobTitleLength)
+ jobTitle = jobTitle[..IdCardConsoleComponent.MaxJobTitleLength];
}
else
{
if (!string.IsNullOrWhiteSpace(fullName))
{
fullName = fullName.Trim();
- if (fullName.Length > SharedIdCardConsoleComponent.MaxFullNameLength)
- fullName = fullName[..SharedIdCardConsoleComponent.MaxFullNameLength];
+ if (fullName.Length > IdCardConsoleComponent.MaxFullNameLength)
+ fullName = fullName[..IdCardConsoleComponent.MaxFullNameLength];
}
else
{
}
var name = args[1];
- if (name.Length > SharedIdCardConsoleComponent.MaxFullNameLength)
+ if (name.Length > IdCardConsoleComponent.MaxFullNameLength)
{
shell.WriteLine("Name is too long.");
return;
--- /dev/null
+using Content.Shared.Access.Systems;
+using Content.Shared.Containers.ItemSlots;
+using Robust.Shared.GameStates;
+using Robust.Shared.Serialization;
+using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.List;
+
+namespace Content.Shared.Access.Components;
+
+[RegisterComponent, NetworkedComponent]
+[Access(typeof(SharedIdCardConsoleSystem))]
+public sealed 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("privilegedIdSlot")]
+ public ItemSlot PrivilegedIdSlot = new();
+
+ [DataField("targetIdSlot")]
+ 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("accessLevels", customTypeSerializer: typeof(PrototypeIdListSerializer<AccessLevelPrototype>))]
+ public List<string> AccessLevels = new()
+ {
+ "Armory",
+ "Atmospherics",
+ "Bar",
+ "Brig",
+ "Detective",
+ "Captain",
+ "Cargo",
+ "Chapel",
+ "Chemistry",
+ "ChiefEngineer",
+ "ChiefMedicalOfficer",
+ "Command",
+ "Engineering",
+ "External",
+ "HeadOfPersonnel",
+ "HeadOfSecurity",
+ "Hydroponics",
+ "Janitor",
+ "Kitchen",
+ "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 string[]? TargetIdAccessList;
+ public readonly string TargetIdJobPrototype;
+
+ public IdCardConsoleBoundUserInterfaceState(bool isPrivilegedIdPresent,
+ bool isPrivilegedIdAuthorized,
+ bool isTargetIdPresent,
+ string? targetIdFullName,
+ string? targetIdJobTitle,
+ string[]? targetIdAccessList,
+ string targetIdJobPrototype,
+ string privilegedIdName,
+ string targetIdName)
+ {
+ IsPrivilegedIdPresent = isPrivilegedIdPresent;
+ IsPrivilegedIdAuthorized = isPrivilegedIdAuthorized;
+ IsTargetIdPresent = isTargetIdPresent;
+ TargetIdFullName = targetIdFullName;
+ TargetIdJobTitle = targetIdJobTitle;
+ TargetIdAccessList = targetIdAccessList;
+ TargetIdJobPrototype = targetIdJobPrototype;
+ PrivilegedIdName = privilegedIdName;
+ TargetIdName = targetIdName;
+ }
+ }
+
+ [Serializable, NetSerializable]
+ public enum IdCardConsoleUiKey : byte
+ {
+ Key,
+ }
+}
+++ /dev/null
-using Content.Shared.Containers.ItemSlots;
-using Robust.Shared.GameStates;
-using Robust.Shared.Serialization;
-using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.List;
-
-namespace Content.Shared.Access.Components
-{
- [NetworkedComponent]
- public abstract class SharedIdCardConsoleComponent : Component
- {
- public const int MaxFullNameLength = 30;
- public const int MaxJobTitleLength = 30;
-
- public static string PrivilegedIdCardSlotId = "IdCardConsole-privilegedId";
- public static string TargetIdCardSlotId = "IdCardConsole-targetId";
-
- [DataField("privilegedIdSlot")]
- public ItemSlot PrivilegedIdSlot = new();
-
- [DataField("targetIdSlot")]
- 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("accessLevels", customTypeSerializer: typeof(PrototypeIdListSerializer<AccessLevelPrototype>))]
- public List<string> AccessLevels = new()
- {
- "Armory",
- "Atmospherics",
- "Bar",
- "Brig",
- "Detective",
- "Captain",
- "Cargo",
- "Chapel",
- "Chemistry",
- "ChiefEngineer",
- "ChiefMedicalOfficer",
- "Command",
- "Engineering",
- "External",
- "HeadOfPersonnel",
- "HeadOfSecurity",
- "Hydroponics",
- "Janitor",
- "Kitchen",
- "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 string[]? TargetIdAccessList;
- public readonly string TargetIdJobPrototype;
-
- public IdCardConsoleBoundUserInterfaceState(bool isPrivilegedIdPresent,
- bool isPrivilegedIdAuthorized,
- bool isTargetIdPresent,
- string? targetIdFullName,
- string? targetIdJobTitle,
- string[]? targetIdAccessList,
- string targetIdJobPrototype,
- string privilegedIdName,
- string targetIdName)
- {
- IsPrivilegedIdPresent = isPrivilegedIdPresent;
- IsPrivilegedIdAuthorized = isPrivilegedIdAuthorized;
- IsTargetIdPresent = isTargetIdPresent;
- TargetIdFullName = targetIdFullName;
- TargetIdJobTitle = targetIdJobTitle;
- TargetIdAccessList = targetIdAccessList;
- TargetIdJobPrototype = targetIdJobPrototype;
- PrivilegedIdName = privilegedIdName;
- TargetIdName = targetIdName;
- }
- }
-
- [Serializable, NetSerializable]
- public enum IdCardConsoleUiKey : byte
- {
- Key,
- }
- }
-}
{
base.Initialize();
- SubscribeLocalEvent<SharedIdCardConsoleComponent, ComponentInit>(OnComponentInit);
- SubscribeLocalEvent<SharedIdCardConsoleComponent, ComponentRemove>(OnComponentRemove);
- SubscribeLocalEvent<SharedIdCardConsoleComponent, ComponentGetState>(OnGetState);
- SubscribeLocalEvent<SharedIdCardConsoleComponent, ComponentHandleState>(OnHandleState);
+ SubscribeLocalEvent<IdCardConsoleComponent, ComponentInit>(OnComponentInit);
+ SubscribeLocalEvent<IdCardConsoleComponent, ComponentRemove>(OnComponentRemove);
+ SubscribeLocalEvent<IdCardConsoleComponent, ComponentGetState>(OnGetState);
+ SubscribeLocalEvent<IdCardConsoleComponent, ComponentHandleState>(OnHandleState);
}
- private void OnHandleState(EntityUid uid, SharedIdCardConsoleComponent component, ref ComponentHandleState args)
+ private void OnHandleState(EntityUid uid, IdCardConsoleComponent component, ref ComponentHandleState args)
{
if (args.Current is not IdCardConsoleComponentState state) return;
component.AccessLevels = state.AccessLevels;
}
- private void OnGetState(EntityUid uid, SharedIdCardConsoleComponent component, ref ComponentGetState args)
+ private void OnGetState(EntityUid uid, IdCardConsoleComponent component, ref ComponentGetState args)
{
args.State = new IdCardConsoleComponentState(component.AccessLevels);
}
- private void OnComponentInit(EntityUid uid, SharedIdCardConsoleComponent component, ComponentInit args)
+ private void OnComponentInit(EntityUid uid, IdCardConsoleComponent component, ComponentInit args)
{
- _itemSlotsSystem.AddItemSlot(uid, SharedIdCardConsoleComponent.PrivilegedIdCardSlotId, component.PrivilegedIdSlot);
- _itemSlotsSystem.AddItemSlot(uid, SharedIdCardConsoleComponent.TargetIdCardSlotId, component.TargetIdSlot);
+ _itemSlotsSystem.AddItemSlot(uid, IdCardConsoleComponent.PrivilegedIdCardSlotId, component.PrivilegedIdSlot);
+ _itemSlotsSystem.AddItemSlot(uid, IdCardConsoleComponent.TargetIdCardSlotId, component.TargetIdSlot);
}
- private void OnComponentRemove(EntityUid uid, SharedIdCardConsoleComponent component, ComponentRemove args)
+ private void OnComponentRemove(EntityUid uid, IdCardConsoleComponent component, ComponentRemove args)
{
_itemSlotsSystem.RemoveItemSlot(uid, component.PrivilegedIdSlot);
_itemSlotsSystem.RemoveItemSlot(uid, component.TargetIdSlot);