61 lines
1.9 KiB
C#
61 lines
1.9 KiB
C#
using Content.Shared._White.AuthPanel;
|
|
|
|
namespace Content.Client._White.AuthPanel;
|
|
|
|
public sealed class AuthPanelBoundUserInterface : BoundUserInterface
|
|
{
|
|
private AuthPanelMenu? _menu;
|
|
|
|
public AuthPanelBoundUserInterface(EntityUid owner, Enum uiKey) : base(owner, uiKey)
|
|
{
|
|
|
|
}
|
|
|
|
protected override void Open()
|
|
{
|
|
base.Open();
|
|
|
|
_menu = new AuthPanelMenu();
|
|
|
|
_menu.OnRedButtonPressed(_ => SendButtonPressed(AuthPanelAction.ERTRecruit));
|
|
// _menu.OnAccessButtonPressed(_ => SendButtonPressed(AuthPanelAction.AddAccess));
|
|
// _menu.OnBluespaceWeaponButtonPressed(_ => SendButtonPressed(AuthPanelAction.BluespaceWeapon));
|
|
|
|
_menu.OnClose += Close;
|
|
_menu.OpenCentered();
|
|
}
|
|
|
|
public void SendButtonPressed(AuthPanelAction button)
|
|
{
|
|
SendMessage(new AuthPanelButtonPressedMessage(button, _menu?.GetReason()));
|
|
}
|
|
|
|
|
|
protected override void UpdateState(BoundUserInterfaceState state)
|
|
{
|
|
if (state is not AuthPanelConfirmationActionState confirmationActionState)
|
|
return;
|
|
|
|
var action = confirmationActionState.Action;
|
|
|
|
// if (action.Action is AuthPanelAction.AddAccess)
|
|
// _menu?.SetAccessCount(action.ConfirmedPeopleCount, action.MaxConfirmedPeopleCount);
|
|
if (action.Action is AuthPanelAction.ERTRecruit)
|
|
_menu?.SetRedCount(action.ConfirmedPeopleCount, action.MaxConfirmedPeopleCount);
|
|
// if (action.Action is AuthPanelAction.BluespaceWeapon)
|
|
// _menu?.SetWeaponCount(action.ConfirmedPeopleCount, action.MaxConfirmedPeopleCount);
|
|
|
|
_menu?.SetReason(action.Reason);
|
|
if (action.ConfirmedPeopleCount == 0)
|
|
_menu?.UnlockReason();
|
|
}
|
|
|
|
protected override void Dispose(bool disposing)
|
|
{
|
|
base.Dispose(disposing);
|
|
if (!disposing)
|
|
return;
|
|
_menu?.Close();
|
|
}
|
|
}
|