MarkingPrototype.cs 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. using Robust.Shared.Prototypes;
  2. using Robust.Shared.Utility;
  3. namespace Content.Shared.Humanoid.Markings
  4. {
  5. [Prototype]
  6. public sealed partial class MarkingPrototype : IPrototype
  7. {
  8. [IdDataField]
  9. public string ID { get; private set; } = "uwu";
  10. public string Name { get; private set; } = default!;
  11. [DataField("bodyPart", required: true)]
  12. public HumanoidVisualLayers BodyPart { get; private set; } = default!;
  13. [DataField("markingCategory", required: true)]
  14. public MarkingCategories MarkingCategory { get; private set; } = default!;
  15. [DataField("speciesRestriction")]
  16. public List<string>? SpeciesRestrictions { get; private set; }
  17. [DataField("sexRestriction")]
  18. public Sex? SexRestriction { get; private set; }
  19. [DataField("followSkinColor")]
  20. public bool FollowSkinColor { get; private set; } = false;
  21. [DataField("forcedColoring")]
  22. public bool ForcedColoring { get; private set; } = false;
  23. [DataField("coloring")]
  24. public MarkingColors Coloring { get; private set; } = new();
  25. [DataField("sprites", required: true)]
  26. public List<SpriteSpecifier> Sprites { get; private set; } = default!;
  27. public Marking AsMarking()
  28. {
  29. return new Marking(ID, Sprites.Count);
  30. }
  31. }
  32. }