1
0

BodyPartAppearanceComponent.cs 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. // SPDX-FileCopyrightText: 2024 gluesniffler <159397573+gluesniffler@users.noreply.github.com>
  2. // SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
  3. // SPDX-FileCopyrightText: 2025 Aiden <aiden@djkraz.com>
  4. // SPDX-FileCopyrightText: 2025 deltanedas <39013340+deltanedas@users.noreply.github.com>
  5. // SPDX-FileCopyrightText: 2025 deltanedas <@deltanedas:kde.org>
  6. //
  7. // SPDX-License-Identifier: AGPL-3.0-or-later
  8. using Content.Shared.Humanoid;
  9. using Content.Shared.Humanoid.Prototypes;
  10. using Content.Shared.Humanoid.Markings;
  11. using Robust.Shared.GameStates;
  12. using Robust.Shared.Prototypes;
  13. namespace Content.Shared._Shitmed.Body.Part;
  14. [RegisterComponent, NetworkedComponent, AutoGenerateComponentState(true)]
  15. public sealed partial class BodyPartAppearanceComponent : Component
  16. {
  17. /// <summary>
  18. /// HumanoidVisualLayer type for this body part.
  19. /// </summary>
  20. [DataField, AutoNetworkedField]
  21. public HumanoidVisualLayers Type { get; set; }
  22. /// <summary>
  23. /// Relevant markings for this body part that will be applied on attachment.
  24. /// </summary>
  25. [DataField, AutoNetworkedField]
  26. public Dictionary<HumanoidVisualLayers, List<Marking>> Markings = new();
  27. /// <summary>
  28. /// ID of this custom base layer. Must be a <see cref="HumanoidSpeciesSpriteLayer"/>.
  29. /// </summary>
  30. [DataField, AutoNetworkedField]
  31. public ProtoId<HumanoidSpeciesSpriteLayer>? ID { get; set; }
  32. /// <summary>
  33. /// Color of this custom base layer. Null implies skin colour if the corresponding <see cref="HumanoidSpeciesSpriteLayer"/> is set to match skin.
  34. /// </summary>
  35. [DataField, AutoNetworkedField]
  36. public Color? Color { get; set; }
  37. /// <summary>
  38. /// Color of this custom base eye layer. Null implies eye colour if the corresponding <see cref="HumanoidSpeciesSpriteLayer"/> is set to match skin.
  39. /// </summary>
  40. [DataField, AutoNetworkedField]
  41. public Color? EyeColor { get; set; }
  42. }