using Content.Shared.Research.Components; using Content.Shared.Xenoarchaeology.Equipment.Components; using Robust.Client.UserInterface; using JetBrains.Annotations; namespace Content.Client.Xenoarchaeology.Ui; /// /// BUI for artifact analysis console, proxies server-provided UI updates /// (related to device, connected artifact analyzer, and artifact lying on it). /// [UsedImplicitly] public sealed class AnalysisConsoleBoundUserInterface(EntityUid owner, Enum uiKey) : BoundUserInterface(owner, uiKey) { [ViewVariables] private AnalysisConsoleMenu? _consoleMenu; /// protected override void Open() { base.Open(); _consoleMenu = this.CreateWindow(); _consoleMenu.SetOwner(Owner); _consoleMenu.OnClose += Close; _consoleMenu.OpenCentered(); _consoleMenu.OnServerSelectionButtonPressed += () => { SendMessage(new ConsoleServerSelectionMessage()); }; _consoleMenu.OnExtractButtonPressed += () => { SendMessage(new AnalysisConsoleExtractButtonPressedMessage()); }; } /// /// Update UI state based on corresponding component. /// public void Update(Entity ent) { _consoleMenu?.Update(ent); } /// protected override void Dispose(bool disposing) { base.Dispose(disposing); if (!disposing) return; _consoleMenu?.Dispose(); } }