Files
tbd-station-14/Content.Shared/CriminalRecords/Components/CriminalRecordsConsoleComponent.cs
James Simonson b9424386c7 Criminal Records Computer Better UX + Filtering (#32352)
* First pass at new Criminal Records Computer

need buttons to highlight.

* Filter status tabs/buttons now activate correctly via UpdateState

* Removed unneeded Directives

* Fix typo + undo VSCode changes

* Implement Emo Feedback

Loc NA and use inject deps
Cannot use inject deps on sprite system.

* try to undo vscode launch.json change

* Added requests + Filter dropdown list + jobs

Fixed maintainer fix requests,
Added Job to announcement channel output
Removed toggle buttons in-place of a dropdown list

* Fixed missed merge conflict

+ fixed an bug with filterstatus not showing on re-open ui

* Update criminal-records.ftl

Fixed lint error. whoops.

* Update Content.Server/CriminalRecords/Systems/CriminalRecordsConsoleSystem.cs

typo

Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>

* impliment chromiumboy feedback

hopefully this will do it....

---------

Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
2025-01-29 13:34:49 +03:00

55 lines
1.8 KiB
C#

using Content.Shared.CriminalRecords.Systems;
using Content.Shared.CriminalRecords.Components;
using Content.Shared.CriminalRecords;
using Content.Shared.Radio;
using Content.Shared.StationRecords;
using Robust.Shared.Prototypes;
using Content.Shared.Security;
namespace Content.Shared.CriminalRecords.Components;
/// <summary>
/// A component for Criminal Record Console storing an active station record key and a currently applied filter
/// </summary>
[RegisterComponent]
[Access(typeof(SharedCriminalRecordsConsoleSystem))]
public sealed partial class CriminalRecordsConsoleComponent : Component
{
/// <summary>
/// Currently active station record key.
/// There is no station parameter as the console uses the current station.
/// </summary>
/// <remarks>
/// TODO: in the future this should be clientside instead of something players can fight over.
/// Client selects a record and tells the server the key it wants records for.
/// Server then sends a state with just the records, not the listing or filter, and the client updates just that.
/// I don't know if it's possible to have multiple bui states right now.
/// </remarks>
[DataField]
public uint? ActiveKey;
/// <summary>
/// Currently applied filter.
/// </summary>
[DataField]
public StationRecordsFilter? Filter;
/// <summary>
/// Current seleced security status for the filter by criminal status dropdown.
/// </summary>
[DataField]
public SecurityStatus FilterStatus;
/// <summary>
/// Channel to send messages to when someone's status gets changed.
/// </summary>
[DataField]
public ProtoId<RadioChannelPrototype> SecurityChannel = "Security";
/// <summary>
/// Max length of arrest and crime history strings.
/// </summary>
[DataField]
public uint MaxStringLength = 256;
}