Files
Delta-v/Content.Client/_DV/Shipyard/UI/ShipyardBoundUserInterface.cs
T
36d634bdff shipyard ui cleanup (#1257)
* small cleanup

* use BankClient for balance updating

* pro

* fixes fixes fixes

* untroll engine

---------

Signed-off-by: deltanedas <39013340+deltanedas@users.noreply.github.com>
Co-authored-by: deltanedas <@deltanedas:kde.org>
Co-authored-by: Tad "Taddy" Johnson <120885811+TadJohnson00@users.noreply.github.com>
Co-authored-by: Milon <milonpl.git@proton.me>
Co-authored-by: Milon <plmilonpl@gmail.com>
2025-01-01 13:47:28 +00:00

71 lines
1.7 KiB
C#

using Content.Shared.Access.Systems;
using Content.Shared.Shipyard;
using Content.Shared.Whitelist;
using Robust.Client.Player;
using Robust.Shared.Prototypes;
namespace Content.Client._DV.Shipyard.UI;
public sealed class ShipyardConsoleBoundUserInterface : BoundUserInterface
{
[Dependency] private readonly IPrototypeManager _proto = default!;
[Dependency] private readonly IPlayerManager _player = default!;
private readonly AccessReaderSystem _access;
private readonly EntityWhitelistSystem _whitelist;
[ViewVariables]
private ShipyardConsoleMenu? _menu;
public ShipyardConsoleBoundUserInterface(EntityUid owner, Enum uiKey) : base(owner, uiKey)
{
_access = EntMan.System<AccessReaderSystem>();
_whitelist = EntMan.System<EntityWhitelistSystem>();
}
protected override void Open()
{
base.Open();
if (_menu == null)
{
_menu = new ShipyardConsoleMenu(Owner, _proto, EntMan, _player, _access, _whitelist);
_menu.OnClose += Close;
_menu.OnPurchased += Purchase;
}
_menu.OpenCentered();
}
protected override void UpdateState(BoundUserInterfaceState state)
{
base.UpdateState(state);
if (state is not ShipyardConsoleState cast)
return;
_menu?.UpdateState(cast);
}
protected override void Dispose(bool disposing)
{
base.Dispose(disposing);
if (!disposing)
return;
if (_menu == null)
return;
_menu.OnClose -= Close;
_menu.OnPurchased -= Purchase;
_menu.Close();
_menu = null;
}
private void Purchase(string id)
{
SendMessage(new ShipyardConsolePurchaseMessage(id));
}
}