using Robust.Shared.Prototypes; using Robust.Shared.Utility; namespace Content.Shared.Humanoid.Prototypes; /// /// Base sprites for a species (e.g., what replaces the empty tagged layer, /// or settings per layer) /// [Prototype("speciesBaseSprites")] public sealed partial class HumanoidSpeciesBaseSpritesPrototype : IPrototype { [IdDataField] public string ID { get; private set; } = default!; /// /// Sprites that this species will use on the given humanoid /// visual layer. If a key entry is empty, it is assumed that the /// visual layer will not be in use on this species, and will /// be ignored. /// [DataField("sprites", required: true)] public Dictionary Sprites = new(); } /// /// Humanoid species sprite layer. This is what defines the base layer of /// a humanoid species sprite, and also defines how markings can appear over /// that sprite (or at least, the layer this sprite is on). /// [Prototype("humanoidBaseSprite")] public sealed partial class HumanoidSpeciesSpriteLayer : IPrototype { [IdDataField] public string ID { get; private set; } = default!; /// /// The base sprite for this sprite layer. This is what /// will replace the empty layer tagged by the enum /// tied to this layer. /// /// If this is null, no sprite will be displayed, and the /// layer will be invisible until otherwise set. /// [DataField("baseSprite")] public SpriteSpecifier? BaseSprite { get; private set; } /// /// The alpha of this layer. Ensures that /// this layer will start with this percentage /// of alpha. /// [DataField("layerAlpha")] public float LayerAlpha { get; private set; } = 1.0f; /// /// If this sprite layer should allow markings or not. /// [DataField("allowsMarkings")] public bool AllowsMarkings { get; private set; } = true; /// /// If this layer should always match the /// skin tone in a character profile. /// [DataField("matchSkin")] public bool MatchSkin { get; private set; } = true; /// /// If any markings that go on this layer should /// match the skin tone of this part, including /// alpha. /// [DataField("markingsMatchSkin")] public bool MarkingsMatchSkin { get; private set; } }