1
0

TippyUI.xaml.cs 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. using Content.Client.Paper.UI;
  2. using Robust.Client.AutoGenerated;
  3. using Robust.Client.Graphics;
  4. using Robust.Client.ResourceManagement;
  5. using Robust.Client.UserInterface.Controls;
  6. using Robust.Client.UserInterface.XAML;
  7. namespace Content.Client.Tips;
  8. [GenerateTypedNameReferences]
  9. public sealed partial class TippyUI : UIWidget
  10. {
  11. public TippyState State = TippyState.Hidden;
  12. public bool ModifyLayers = true;
  13. public TippyUI()
  14. {
  15. RobustXamlLoader.Load(this);
  16. }
  17. public void InitLabel(PaperVisualsComponent? visuals, IResourceCache resCache)
  18. {
  19. if (visuals == null)
  20. return;
  21. Label.ModulateSelfOverride = visuals.FontAccentColor;
  22. if (visuals.BackgroundImagePath == null)
  23. return;
  24. LabelPanel.ModulateSelfOverride = visuals.BackgroundModulate;
  25. var backgroundImage = resCache.GetResource<TextureResource>(visuals.BackgroundImagePath);
  26. var backgroundImageMode = visuals.BackgroundImageTile ? StyleBoxTexture.StretchMode.Tile : StyleBoxTexture.StretchMode.Stretch;
  27. var backgroundPatchMargin = visuals.BackgroundPatchMargin;
  28. LabelPanel.PanelOverride = new StyleBoxTexture
  29. {
  30. Texture = backgroundImage,
  31. TextureScale = visuals.BackgroundScale,
  32. Mode = backgroundImageMode,
  33. PatchMarginLeft = backgroundPatchMargin.Left,
  34. PatchMarginBottom = backgroundPatchMargin.Bottom,
  35. PatchMarginRight = backgroundPatchMargin.Right,
  36. PatchMarginTop = backgroundPatchMargin.Top
  37. };
  38. }
  39. public enum TippyState : byte
  40. {
  41. Hidden,
  42. Revealing,
  43. Speaking,
  44. Hiding,
  45. }
  46. }