1
0

LobbyCharacterPreviewPanel.xaml.cs 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. using System.Numerics;
  2. using Content.Client.UserInterface.Controls;
  3. using Prometheus;
  4. using Robust.Client.AutoGenerated;
  5. using Robust.Client.UserInterface;
  6. using Robust.Client.UserInterface.Controls;
  7. using Robust.Client.UserInterface.XAML;
  8. namespace Content.Client.Lobby.UI;
  9. [GenerateTypedNameReferences]
  10. public sealed partial class LobbyCharacterPreviewPanel : Control
  11. {
  12. [Dependency] private readonly IEntityManager _entManager = default!;
  13. public Button CharacterSetupButton => CharacterSetup;
  14. private EntityUid? _previewDummy;
  15. public LobbyCharacterPreviewPanel()
  16. {
  17. RobustXamlLoader.Load(this);
  18. IoCManager.InjectDependencies(this);
  19. }
  20. public void SetLoaded(bool value)
  21. {
  22. Loaded.Visible = value;
  23. Unloaded.Visible = !value;
  24. }
  25. public void SetSummaryText(string value)
  26. {
  27. Summary.Text = value;
  28. }
  29. public void SetSprite(EntityUid uid)
  30. {
  31. if (_previewDummy != null)
  32. {
  33. _entManager.DeleteEntity(_previewDummy);
  34. }
  35. _previewDummy = uid;
  36. ViewBox.DisposeAllChildren();
  37. var spriteView = new SpriteView
  38. {
  39. OverrideDirection = Direction.South,
  40. Scale = new Vector2(4f, 4f),
  41. MaxSize = new Vector2(112, 112),
  42. Stretch = SpriteView.StretchMode.Fill,
  43. };
  44. spriteView.SetEntity(uid);
  45. ViewBox.AddChild(spriteView);
  46. }
  47. protected override void Dispose(bool disposing)
  48. {
  49. base.Dispose(disposing);
  50. _entManager.DeleteEntity(_previewDummy);
  51. _previewDummy = null;
  52. }
  53. }