[DataDefinition]
public sealed class FaxPrintout
{
- [DataField("name")]
- public string Name { get; }
+ [DataField("name", required: true)]
+ public string Name { get; } = default!;
- [DataField("content")]
- public string Content { get; }
+ [DataField("content", required: true)]
+ public string Content { get; } = default!;
- [DataField("prototypeId", customTypeSerializer: typeof(PrototypeIdSerializer<EntityPrototype>))]
- public string PrototypeId { get; }
+ [DataField("prototypeId", customTypeSerializer: typeof(PrototypeIdSerializer<EntityPrototype>), required: true)]
+ public string PrototypeId { get; } = default!;
[DataField("stampState")]
public string? StampState { get; }
[DataField("stampedBy")]
- public List<string> StampedBy { get; }
+ public List<string> StampedBy { get; } = new();
+
+ private FaxPrintout()
+ {
+ }
public FaxPrintout(string content, string name, string? prototypeId, string? stampState = null, List<string>? stampedBy = null)
{
return new(HairStyleId, HairColor, FacialHairStyleId, FacialHairColor, EyeColor, SkinColor, newMarkings);
}
- public static HumanoidCharacterAppearance Default()
+ public HumanoidCharacterAppearance() : this(
+ HairStyles.DefaultHairStyle,
+ Color.Black,
+ HairStyles.DefaultFacialHairStyle,
+ Color.Black,
+ Color.Black,
+ Humanoid.SkinColor.ValidHumanSkinTone,
+ new ()
+ )
{
- return new(
- HairStyles.DefaultHairStyle,
- Color.Black,
- HairStyles.DefaultFacialHairStyle,
- Color.Black,
- Color.Black,
- Humanoid.SkinColor.ValidHumanSkinTone,
- new ()
- );
}
public static HumanoidCharacterAppearance DefaultWithSpecies(string species)
[DataField("markingColor")]
private List<Color> _markingColors = new();
- private Marking(string markingId,
+ private Marking()
+ {
+ }
+
+ public Marking(string markingId,
List<Color> markingColors)
{
MarkingId = markingId;
/// <summary>
/// ID of the marking prototype.
/// </summary>
- [DataField("markingId")]
+ [DataField("markingId", required: true)]
public string MarkingId { get; } = default!;
/// <summary>
public Dictionary<HumanoidVisualLayers, CustomBaseLayerInfo> CustomBaseLayers = new();
[DataField("profile")]
- public HumanoidCharacterProfile Profile { get; } = HumanoidCharacterProfile.Default();
+ public HumanoidCharacterProfile Profile { get; } = new();
}
/// Defaults to <see cref="SharedHumanoidAppearanceSystem.DefaultSpecies"/> for the species.
/// </summary>
/// <returns></returns>
- public static HumanoidCharacterProfile Default()
+ public HumanoidCharacterProfile() : this(
+ "John Doe",
+ "",
+ SharedHumanoidAppearanceSystem.DefaultSpecies,
+ 18,
+ Sex.Male,
+ Gender.Male,
+ new HumanoidCharacterAppearance(),
+ ClothingPreference.Jumpsuit,
+ BackpackPreference.Backpack,
+ new Dictionary<string, JobPriority>
+ {
+ {SharedGameTicker.FallbackOverflowJob, JobPriority.High}
+ },
+ PreferenceUnavailableMode.SpawnAsOverflow,
+ new List<string>(),
+ new List<string>())
{
- return new(
- "John Doe",
- "",
- SharedHumanoidAppearanceSystem.DefaultSpecies,
- 18,
- Sex.Male,
- Gender.Male,
- HumanoidCharacterAppearance.Default(),
- ClothingPreference.Jumpsuit,
- BackpackPreference.Backpack,
- new Dictionary<string, JobPriority>
- {
- {SharedGameTicker.FallbackOverflowJob, JobPriority.High}
- },
- PreferenceUnavailableMode.SpawnAsOverflow,
- new List<string>(),
- new List<string>());
}
/// <summary>
var prototypeManager = IoCManager.Resolve<IPrototypeManager>();
prototypeManager.Initialize();
prototypeManager.LoadFromStream(new StringReader(Prototypes));
- await db.InitPrefsAsync(username, HumanoidCharacterProfile.Default());
+ await db.InitPrefsAsync(username, new HumanoidCharacterProfile());
await db.SaveCharacterSlotAsync(username, CharlieCharlieson(), 1);
await db.SaveSelectedCharacterIndexAsync(username, 1);
await db.SaveCharacterSlotAsync(username, null, 1);