MonoTag.cs 1.0 KB

12345678910111213141516171819202122232425262728293031323334
  1. using System.Linq;
  2. using Robust.Client.ResourceManagement;
  3. using Robust.Client.UserInterface.RichText;
  4. using Robust.Shared.IoC;
  5. using Robust.Shared.Prototypes;
  6. using Robust.Shared.Utility;
  7. namespace Content.Client.UserInterface.RichText;
  8. /// <summary>
  9. /// Sets the font to a monospaced variant
  10. /// </summary>
  11. public sealed class MonoTag : IMarkupTag
  12. {
  13. [ValidatePrototypeId<FontPrototype>] public const string MonoFont = "Monospace";
  14. [Dependency] private readonly IResourceCache _resourceCache = default!;
  15. [Dependency] private readonly IPrototypeManager _prototypeManager = default!;
  16. public string Name => "mono";
  17. /// <inheritdoc/>
  18. public void PushDrawContext(MarkupNode node, MarkupDrawingContext context)
  19. {
  20. var font = FontTag.CreateFont(context.Font, node, _resourceCache, _prototypeManager, MonoFont);
  21. context.Font.Push(font);
  22. }
  23. /// <inheritdoc/>
  24. public void PopDrawContext(MarkupNode node, MarkupDrawingContext context)
  25. {
  26. context.Font.Pop();
  27. }
  28. }