criminal records revival (#22510)
This commit is contained in:
@@ -1,5 +1,4 @@
|
||||
using Content.Shared.StationRecords;
|
||||
using Robust.Client.GameObjects;
|
||||
|
||||
namespace Content.Client.StationRecords;
|
||||
|
||||
@@ -17,33 +16,21 @@ public sealed class GeneralStationRecordConsoleBoundUserInterface : BoundUserInt
|
||||
base.Open();
|
||||
|
||||
_window = new();
|
||||
_window.OnKeySelected += OnKeySelected;
|
||||
_window.OnFiltersChanged += OnFiltersChanged;
|
||||
_window.OnKeySelected += key =>
|
||||
SendMessage(new SelectStationRecord(key));
|
||||
_window.OnFiltersChanged += (type, filterValue) =>
|
||||
SendMessage(new SetStationRecordFilter(type, filterValue));
|
||||
_window.OnClose += Close;
|
||||
|
||||
_window.OpenCentered();
|
||||
}
|
||||
|
||||
private void OnKeySelected((NetEntity, uint)? key)
|
||||
{
|
||||
SendMessage(new SelectGeneralStationRecord(key));
|
||||
}
|
||||
|
||||
private void OnFiltersChanged(
|
||||
GeneralStationRecordFilterType type, string filterValue)
|
||||
{
|
||||
GeneralStationRecordsFilterMsg msg = new(type, filterValue);
|
||||
SendMessage(msg);
|
||||
}
|
||||
|
||||
protected override void UpdateState(BoundUserInterfaceState state)
|
||||
{
|
||||
base.UpdateState(state);
|
||||
|
||||
if (state is not GeneralStationRecordConsoleState cast)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
_window?.UpdateState(cast);
|
||||
}
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
using System.Linq;
|
||||
using Content.Shared.StationRecords;
|
||||
using Robust.Client.AutoGenerated;
|
||||
using Robust.Client.UserInterface;
|
||||
@@ -11,31 +10,29 @@ namespace Content.Client.StationRecords;
|
||||
[GenerateTypedNameReferences]
|
||||
public sealed partial class GeneralStationRecordConsoleWindow : DefaultWindow
|
||||
{
|
||||
public Action<(NetEntity, uint)?>? OnKeySelected;
|
||||
public Action<uint?>? OnKeySelected;
|
||||
|
||||
public Action<GeneralStationRecordFilterType, string>? OnFiltersChanged;
|
||||
public Action<StationRecordFilterType, string>? OnFiltersChanged;
|
||||
|
||||
private bool _isPopulating;
|
||||
|
||||
private GeneralStationRecordFilterType _currentFilterType;
|
||||
private StationRecordFilterType _currentFilterType;
|
||||
|
||||
public GeneralStationRecordConsoleWindow()
|
||||
{
|
||||
RobustXamlLoader.Load(this);
|
||||
|
||||
_currentFilterType = GeneralStationRecordFilterType.Name;
|
||||
_currentFilterType = StationRecordFilterType.Name;
|
||||
|
||||
foreach (var item in Enum.GetValues<GeneralStationRecordFilterType>())
|
||||
foreach (var item in Enum.GetValues<StationRecordFilterType>())
|
||||
{
|
||||
StationRecordsFilterType.AddItem(GetTypeFilterLocals(item), (int)item);
|
||||
}
|
||||
|
||||
RecordListing.OnItemSelected += args =>
|
||||
{
|
||||
if (_isPopulating || RecordListing[args.ItemIndex].Metadata is not ValueTuple<NetEntity, uint> cast)
|
||||
{
|
||||
if (_isPopulating || RecordListing[args.ItemIndex].Metadata is not uint cast)
|
||||
return;
|
||||
}
|
||||
|
||||
OnKeySelected?.Invoke(cast);
|
||||
};
|
||||
@@ -48,7 +45,7 @@ public sealed partial class GeneralStationRecordConsoleWindow : DefaultWindow
|
||||
|
||||
StationRecordsFilterType.OnItemSelected += eventArgs =>
|
||||
{
|
||||
var type = (GeneralStationRecordFilterType)eventArgs.Id;
|
||||
var type = (StationRecordFilterType) eventArgs.Id;
|
||||
|
||||
if (_currentFilterType != type)
|
||||
{
|
||||
@@ -123,7 +120,7 @@ public sealed partial class GeneralStationRecordConsoleWindow : DefaultWindow
|
||||
RecordContainer.RemoveAllChildren();
|
||||
}
|
||||
}
|
||||
private void PopulateRecordListing(Dictionary<(NetEntity, uint), string> listing, (NetEntity, uint)? selected)
|
||||
private void PopulateRecordListing(Dictionary<uint, string> listing, uint? selected)
|
||||
{
|
||||
RecordListing.Clear();
|
||||
RecordListing.ClearSelected();
|
||||
@@ -134,10 +131,7 @@ public sealed partial class GeneralStationRecordConsoleWindow : DefaultWindow
|
||||
{
|
||||
var item = RecordListing.AddItem(name);
|
||||
item.Metadata = key;
|
||||
if (selected != null && key.Item1 == selected.Value.Item1 && key.Item2 == selected.Value.Item2)
|
||||
{
|
||||
item.Selected = true;
|
||||
}
|
||||
item.Selected = key == selected;
|
||||
}
|
||||
_isPopulating = false;
|
||||
|
||||
@@ -197,7 +191,7 @@ public sealed partial class GeneralStationRecordConsoleWindow : DefaultWindow
|
||||
}
|
||||
}
|
||||
|
||||
private string GetTypeFilterLocals(GeneralStationRecordFilterType type)
|
||||
private string GetTypeFilterLocals(StationRecordFilterType type)
|
||||
{
|
||||
return Loc.GetString($"general-station-record-{type.ToString().ToLower()}-filter");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user