diff --git a/Content.Client/Cargo/BUI/CargoBountyConsoleBoundUserInterface.cs b/Content.Client/Cargo/BUI/CargoBountyConsoleBoundUserInterface.cs new file mode 100644 index 0000000000..63587d9875 --- /dev/null +++ b/Content.Client/Cargo/BUI/CargoBountyConsoleBoundUserInterface.cs @@ -0,0 +1,54 @@ +using Content.Client.Cargo.UI; +using Content.Shared.Cargo.Components; +using JetBrains.Annotations; +using Robust.Client.GameObjects; + +namespace Content.Client.Cargo.BUI; + +[UsedImplicitly] +public sealed class CargoBountyConsoleBoundUserInterface : BoundUserInterface +{ + [ViewVariables] + private CargoBountyMenu? _menu; + + public CargoBountyConsoleBoundUserInterface(ClientUserInterfaceComponent owner, Enum uiKey) : base(owner, uiKey) + { + + } + + protected override void Open() + { + base.Open(); + + _menu = new(); + + _menu.OnClose += Close; + + _menu.OnLabelButtonPressed += id => + { + SendMessage(new BountyPrintLabelMessage(id)); + }; + + _menu.OpenCentered(); + } + + protected override void UpdateState(BoundUserInterfaceState message) + { + base.UpdateState(message); + + if (message is not CargoBountyConsoleState state) + return; + + _menu?.UpdateEntries(state.Bounties); + } + + protected override void Dispose(bool disposing) + { + base.Dispose(disposing); + + if (!disposing) + return; + + _menu?.Dispose(); + } +} diff --git a/Content.Client/Cargo/UI/BountyEntry.xaml b/Content.Client/Cargo/UI/BountyEntry.xaml new file mode 100644 index 0000000000..e570b03746 --- /dev/null +++ b/Content.Client/Cargo/UI/BountyEntry.xaml @@ -0,0 +1,27 @@ + + + + + + + + + + + +