using Content.Shared.Research.Components; using Content.Shared.Research.Prototypes; using JetBrains.Annotations; using Robust.Client.UserInterface; using Robust.Shared.Prototypes; namespace Content.Client.Research.UI; [UsedImplicitly] public sealed class ResearchConsoleBoundUserInterface(EntityUid owner, Enum uiKey) : BoundUserInterface(owner, uiKey) { [ViewVariables] private ResearchConsoleMenu? _consoleMenu; protected override void Open() { base.Open(); _consoleMenu = this.CreateWindow(); _consoleMenu.SetEntity(Owner); _consoleMenu.OnTechnologyRediscoverPressed += () => { SendMessage(new ConsoleRediscoverTechnologyMessage()); }; _consoleMenu.OnTechnologyCardPressed += id => { SendMessage(new ConsoleUnlockTechnologyMessage(id)); }; _consoleMenu.OnServerButtonPressed += () => { SendMessage(new ConsoleServerSelectionMessage()); }; } public override void OnProtoReload(PrototypesReloadedEventArgs args) { base.OnProtoReload(args); if (!args.WasModified()) return; if (State is not ResearchConsoleBoundInterfaceState rState) return; _consoleMenu?.UpdatePanels(rState); _consoleMenu?.UpdateInformationPanel(rState); } protected override void UpdateState(BoundUserInterfaceState state) { base.UpdateState(state); if (state is not ResearchConsoleBoundInterfaceState castState) return; _consoleMenu?.UpdatePanels(castState); _consoleMenu?.UpdateInformationPanel(castState); } }