1
0

TechnologyCardControl.xaml.cs 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. using Content.Shared.Research.Prototypes;
  2. using Robust.Client.AutoGenerated;
  3. using Robust.Client.GameObjects;
  4. using Robust.Client.UserInterface;
  5. using Robust.Client.UserInterface.XAML;
  6. using Robust.Shared.Prototypes;
  7. using Robust.Shared.Utility;
  8. namespace Content.Client.Research.UI;
  9. [GenerateTypedNameReferences]
  10. public sealed partial class TechnologyCardControl : Control
  11. {
  12. public Action? OnPressed;
  13. public TechnologyCardControl(TechnologyPrototype technology, IPrototypeManager prototypeManager, SpriteSystem spriteSys, FormattedMessage description, int points, bool hasAccess)
  14. {
  15. RobustXamlLoader.Load(this);
  16. var discipline = prototypeManager.Index<TechDisciplinePrototype>(technology.Discipline);
  17. Background.ModulateSelfOverride = discipline.Color;
  18. DisciplineTexture.Texture = spriteSys.Frame0(discipline.Icon);
  19. TechnologyNameLabel.Text = Loc.GetString(technology.Name);
  20. var message = new FormattedMessage();
  21. message.AddMarkupOrThrow(Loc.GetString("research-console-tier-discipline-info",
  22. ("tier", technology.Tier), ("color", discipline.Color), ("discipline", Loc.GetString(discipline.Name))));
  23. TierLabel.SetMessage(message);
  24. UnlocksLabel.SetMessage(description);
  25. TechnologyTexture.Texture = spriteSys.Frame0(technology.Icon);
  26. if (!hasAccess)
  27. ResearchButton.ToolTip = Loc.GetString("research-console-no-access-popup");
  28. ResearchButton.Disabled = points < technology.Cost || !hasAccess;
  29. ResearchButton.OnPressed += _ => OnPressed?.Invoke();
  30. }
  31. }