Let the catalog describe clothes and carryables on ThingDef without dressing anyone.
Empty layers keep furniture on the map; a known layer set and ColorDef palette reject unknown ids at load. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -20,6 +20,7 @@ public enum DefKind
|
||||
DayFrame,
|
||||
Holiday,
|
||||
Behavior,
|
||||
Color,
|
||||
}
|
||||
|
||||
/// <summary>Shared JSONC fields. Kind comes from the folder under <c>defs/</c>, not from the file.</summary>
|
||||
@@ -72,6 +73,36 @@ public sealed class ThingDef : Def
|
||||
/// must not inflate class size just because someone sits in it.
|
||||
/// </summary>
|
||||
public int PupilSlots { get; init; }
|
||||
|
||||
/// <summary>Layers this occupies when worn. Empty — not apparel, so it can sit on the map.</summary>
|
||||
public IReadOnlyList<string> Layers { get; init; } = [];
|
||||
|
||||
/// <summary>Can live in a bag, locker or at home. Furniture stays false.</summary>
|
||||
public bool Portable { get; init; }
|
||||
|
||||
/// <summary>Kilograms. Carried mass sums; worn mass does not in this slice.</summary>
|
||||
public float Mass { get; init; }
|
||||
|
||||
/// <summary>How much it warms — and how much it steams in heat.</summary>
|
||||
public float Insulation { get; init; }
|
||||
|
||||
/// <summary>0–100. Dress-code formality, not a fashion score.</summary>
|
||||
public int Formality { get; init; }
|
||||
|
||||
/// <summary>Allowed age window. Omit for any age.</summary>
|
||||
public IntRange? Age { get; init; }
|
||||
|
||||
/// <summary><c>male</c>, <c>female</c>, or omit for any.</summary>
|
||||
public string? Sex { get; init; }
|
||||
|
||||
/// <summary>ColorDef ids this thing may be. Empty — the instance has no colour.</summary>
|
||||
public IReadOnlyList<string> Colors { get; init; } = [];
|
||||
|
||||
/// <summary><see cref="SkirtLengths"/> id, or omit when there is no hem to measure.</summary>
|
||||
public string? SkirtLength { get; init; }
|
||||
|
||||
/// <summary>PE kit. Worn for that lesson; not a second wardrobe of everyday clothes.</summary>
|
||||
public bool Pe { get; init; }
|
||||
}
|
||||
|
||||
public sealed class PositionDef : Def;
|
||||
|
||||
Reference in New Issue
Block a user