ResearchConsoleBoundUserInterface.cs 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. using Content.Shared.Research.Components;
  2. using Content.Shared.Research.Prototypes;
  3. using JetBrains.Annotations;
  4. using Robust.Client.UserInterface;
  5. using Robust.Shared.Prototypes;
  6. namespace Content.Client.Research.UI;
  7. [UsedImplicitly]
  8. public sealed class ResearchConsoleBoundUserInterface : BoundUserInterface
  9. {
  10. [ViewVariables]
  11. private ResearchConsoleMenu? _consoleMenu;
  12. public ResearchConsoleBoundUserInterface(EntityUid owner, Enum uiKey) : base(owner, uiKey)
  13. {
  14. }
  15. protected override void Open()
  16. {
  17. base.Open();
  18. var owner = Owner;
  19. _consoleMenu = this.CreateWindow<ResearchConsoleMenu>();
  20. _consoleMenu.SetEntity(owner);
  21. _consoleMenu.OnTechnologyCardPressed += id =>
  22. {
  23. SendMessage(new ConsoleUnlockTechnologyMessage(id));
  24. };
  25. _consoleMenu.OnServerButtonPressed += () =>
  26. {
  27. SendMessage(new ConsoleServerSelectionMessage());
  28. };
  29. }
  30. public override void OnProtoReload(PrototypesReloadedEventArgs args)
  31. {
  32. base.OnProtoReload(args);
  33. if (!args.WasModified<TechnologyPrototype>())
  34. return;
  35. if (State is not ResearchConsoleBoundInterfaceState rState)
  36. return;
  37. _consoleMenu?.UpdatePanels(rState);
  38. _consoleMenu?.UpdateInformationPanel(rState);
  39. }
  40. protected override void UpdateState(BoundUserInterfaceState state)
  41. {
  42. base.UpdateState(state);
  43. if (state is not ResearchConsoleBoundInterfaceState castState)
  44. return;
  45. _consoleMenu?.UpdatePanels(castState);
  46. _consoleMenu?.UpdateInformationPanel(castState);
  47. }
  48. }