diff --git a/Content.Client/_RPSX/GameRules/Pirates/Economics/Pallets/PiratePalletConsoleBoundUserInterface.cs b/Content.Client/_RPSX/GameRules/Pirates/Economics/Pallets/PiratePalletConsoleBoundUserInterface.cs new file mode 100644 index 00000000000..39b315c47ba --- /dev/null +++ b/Content.Client/_RPSX/GameRules/Pirates/Economics/Pallets/PiratePalletConsoleBoundUserInterface.cs @@ -0,0 +1,46 @@ +using Content.Shared.RPSX.GameRules.Pirates.Economics; +using Content.Shared.Cargo.BUI; +using Robust.Client.UserInterface; + +namespace Content.Client.RPSX.GameRules.Pirates.Economics.Pallets; + +public sealed class PiratePalletConsoleBoundUserInterface : BoundUserInterface +{ + [ViewVariables] + private PiratePalletMenu? _menu; + + public PiratePalletConsoleBoundUserInterface(EntityUid owner, Enum uiKey) : base(owner, uiKey) + { + } + + protected override void Open() + { + base.Open(); + + _menu = this.CreateWindow(); + _menu.AppraiseRequested += OnAppraisal; + _menu.SellRequested += OnSell; + } + + private void OnAppraisal() + { + SendMessage(new PiratePalletAppraiseMessage()); + } + + private void OnSell() + { + SendMessage(new PiratePalletSellMessage()); + } + + protected override void UpdateState(BoundUserInterfaceState state) + { + base.UpdateState(state); + + if (state is not PiratePalletConsoleInterfaceState palletState) + return; + + _menu?.SetEnabled(palletState.Enabled); + _menu?.SetAppraisal(palletState.Appraisal); + _menu?.SetCount(palletState.Count); + } +} diff --git a/Content.Client/_RPSX/GameRules/Pirates/Economics/Pallets/PiratePalletMenu.xaml b/Content.Client/_RPSX/GameRules/Pirates/Economics/Pallets/PiratePalletMenu.xaml new file mode 100644 index 00000000000..2ee21d39522 --- /dev/null +++ b/Content.Client/_RPSX/GameRules/Pirates/Economics/Pallets/PiratePalletMenu.xaml @@ -0,0 +1,27 @@ + + + + + + +