using Robust.Shared.Prototypes;
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.Array;
namespace Content.Shared.Humanoid.Prototypes;
///
/// This is what is used to change a humanoid spawned by RandomHumanoidSystem in Content.Server.
///
[Prototype]
public sealed partial class RandomHumanoidSettingsPrototype : IPrototype, IInheritingPrototype
{
[IdDataField] public string ID { get; private set; } = default!;
[ParentDataField(typeof(PrototypeIdArraySerializer))]
public string[]? Parents { get; private set; }
[AbstractDataField]
[NeverPushInheritance]
public bool Abstract { get; private set; }
///
/// Whether the humanoid's name should take from the randomized profile or not.
///
[DataField("randomizeName")]
public bool RandomizeName { get; private set; } = true;
///
/// Species that will be ignored by the randomizer.
///
[DataField("speciesBlacklist")]
public HashSet SpeciesBlacklist { get; private set; } = new();
///
/// Extra components to add to this entity.
///
[DataField]
[AlwaysPushInheritance]
public ComponentRegistry? Components { get; private set; }
}