using Content.Client.Power.APC.UI; using Content.Shared.APC; using JetBrains.Annotations; using Robust.Client.GameObjects; using Robust.Shared.GameObjects; using Robust.Shared.ViewVariables; namespace Content.Client.Power.APC { [UsedImplicitly] public sealed class ApcBoundUserInterface : BoundUserInterface { [ViewVariables] private ApcMenu? _menu; protected override void Open() { base.Open(); _menu = new ApcMenu(this); _menu.OnClose += Close; _menu.OpenCentered(); } public ApcBoundUserInterface(ClientUserInterfaceComponent owner, object uiKey) : base(owner, uiKey) { } protected override void UpdateState(BoundUserInterfaceState state) { base.UpdateState(state); var castState = (ApcBoundInterfaceState) state; _menu?.UpdateState(castState); } public void BreakerPressed() { SendMessage(new ApcToggleMainBreakerMessage()); } protected override void Dispose(bool disposing) { base.Dispose(disposing); if (disposing) { _menu?.Dispose(); } } } }