fish-station/Content.Client/_Sunrise/CodeConsole/CodeConsoleBoundUserInterface.cs
Hero010h 78a63ae4b5
Code lock console (#3060)
Co-authored-by: KaiserMaus <kaiser.ratte@gmail.com>
2025-12-25 19:47:18 +03:00

62 lines
1.5 KiB
C#

using Content.Shared._Sunrise.CodeConsole;
using JetBrains.Annotations;
using Robust.Client.UserInterface;
namespace Content.Client._Sunrise.CodeConsole;
[UsedImplicitly]
public sealed class CodeConsoleBoundUserInterface : BoundUserInterface
{
[ViewVariables]
private CodeConsoleMenu? _menu;
public CodeConsoleBoundUserInterface(EntityUid owner, Enum uiKey) : base(owner, uiKey)
{
}
protected override void Open()
{
base.Open();
_menu = this.CreateWindow<CodeConsoleMenu>();
_menu.OnKeypadButtonPressed += i =>
{
SendMessage(new CodeConsoleKeypadMessage(i));
};
_menu.OnEnterButtonPressed += () =>
{
SendMessage(new CodeConsoleKeypadEnterMessage());
};
_menu.OnClearButtonPressed += () =>
{
SendMessage(new CodeConsoleKeypadClearMessage());
};
_menu.ActivateButton.OnPressed += _ =>
{
SendMessage(new CodeConsoleActivateButtonMessage());
};
_menu.LockButton.OnPressed += _ =>
{
SendMessage(new CodeConsoleLockButtonMessage());
};
_menu.OnClose += Close;
}
protected override void UpdateState(BoundUserInterfaceState state)
{
base.UpdateState(state);
if (_menu == null)
return;
switch (state)
{
case CodeConsoleUiState msg:
_menu.UpdateState(msg);
break;
}
}
}