diff --git a/Content.Client/Security/GenpopSystem.cs b/Content.Client/Security/GenpopSystem.cs new file mode 100644 index 0000000000..2f537cd96e --- /dev/null +++ b/Content.Client/Security/GenpopSystem.cs @@ -0,0 +1,9 @@ +using Content.Shared.Security.Systems; + +namespace Content.Client.Security; + +/// +public sealed class GenpopSystem : SharedGenpopSystem +{ + +} diff --git a/Content.Client/Security/Ui/GenpopLockerBoundUserInterface.cs b/Content.Client/Security/Ui/GenpopLockerBoundUserInterface.cs new file mode 100644 index 0000000000..a546fa6fc6 --- /dev/null +++ b/Content.Client/Security/Ui/GenpopLockerBoundUserInterface.cs @@ -0,0 +1,36 @@ +using Content.Shared.Security.Components; +using JetBrains.Annotations; + +namespace Content.Client.Security.Ui; + +[UsedImplicitly] +public sealed class GenpopLockerBoundUserInterface(EntityUid owner, Enum uiKey) : BoundUserInterface(owner, uiKey) +{ + private GenpopLockerMenu? _menu; + + protected override void Open() + { + base.Open(); + + _menu = new(Owner, EntMan); + + _menu.OnConfigurationComplete += (name, time, crime) => + { + SendMessage(new GenpopLockerIdConfiguredMessage(name, time, crime)); + Close(); + }; + + _menu.OnClose += Close; + _menu.OpenCentered(); + } + + protected override void Dispose(bool disposing) + { + base.Dispose(disposing); + if (!disposing) + return; + _menu?.Orphan(); + _menu = null; + } +} + diff --git a/Content.Client/Security/Ui/GenpopLockerMenu.xaml b/Content.Client/Security/Ui/GenpopLockerMenu.xaml new file mode 100644 index 0000000000..4eb670d25d --- /dev/null +++ b/Content.Client/Security/Ui/GenpopLockerMenu.xaml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + +