1
0

SharedMapTextComponent.cs 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. using System.Numerics;
  2. using Robust.Shared.GameStates;
  3. using Robust.Shared.Serialization;
  4. namespace Content.Shared.MapText;
  5. /// <summary>
  6. /// This is used for displaying text in world space
  7. /// </summary>
  8. [NetworkedComponent, Access(typeof(SharedMapTextSystem))]
  9. public abstract partial class SharedMapTextComponent : Component
  10. {
  11. public const string DefaultFont = "Default";
  12. /// <summary>
  13. /// The text to display. This will override <see cref="LocText"/>.
  14. /// </summary>
  15. [DataField]
  16. public string? Text;
  17. /// <summary>
  18. /// The localized-id of the text that should be displayed.
  19. /// </summary>
  20. [DataField]
  21. public LocId LocText = "map-text-default";
  22. // TODO VV: LocId editing
  23. [DataField]
  24. public Color Color = Color.White;
  25. [DataField]
  26. public string FontId = DefaultFont;
  27. [DataField]
  28. public int FontSize = 12;
  29. [DataField]
  30. public Vector2 Offset = Vector2.Zero;
  31. }
  32. [Serializable, NetSerializable]
  33. public sealed class MapTextComponentState : ComponentState
  34. {
  35. public string? Text { get; init;}
  36. public LocId LocText { get; init;}
  37. public Color Color { get; init;}
  38. public string FontId { get; init; } = default!;
  39. public int FontSize { get; init;}
  40. public Vector2 Offset { get; init;}
  41. }