63 lines
2.1 KiB
C#
63 lines
2.1 KiB
C#
namespace HSchool.Content;
|
|
|
|
/// <summary>
|
|
/// Layers apparel occupies. Code, not a def — new layers are a rebuild, like
|
|
/// <see cref="PersonRoles"/>.
|
|
/// </summary>
|
|
public static class ApparelLayers
|
|
{
|
|
public const string Underwear = "Underwear";
|
|
public const string UpperUnderwear = "UpperUnderwear";
|
|
public const string Socks = "Socks";
|
|
public const string Bottom = "Bottom";
|
|
public const string Top = "Top";
|
|
public const string OverTop = "OverTop";
|
|
public const string Outer = "Outer";
|
|
public const string Shoes = "Shoes";
|
|
public const string Head = "Head";
|
|
public const string Accessory = "Accessory";
|
|
|
|
public static readonly IReadOnlyList<string> All =
|
|
[Underwear, UpperUnderwear, Socks, Bottom, Top, OverTop, Outer, Shoes, Head, Accessory];
|
|
|
|
public static bool IsKnown(string layer) =>
|
|
All.Any(candidate => candidate.Equals(layer, StringComparison.Ordinal));
|
|
|
|
public static bool IsUnder(string layer) =>
|
|
layer.Equals(Underwear, StringComparison.Ordinal)
|
|
|| layer.Equals(UpperUnderwear, StringComparison.Ordinal)
|
|
|| layer.Equals(Socks, StringComparison.Ordinal);
|
|
}
|
|
|
|
/// <summary>
|
|
/// ColorDef appropriateness tags. School rules filter these, not color names.
|
|
/// </summary>
|
|
public static class ColorTags
|
|
{
|
|
public const string Neutral = "neutral";
|
|
public const string Bright = "bright";
|
|
public const string School = "school";
|
|
|
|
public static readonly IReadOnlyList<string> All = [Neutral, Bright, School];
|
|
|
|
public static bool IsKnown(string tag) =>
|
|
All.Any(candidate => candidate.Equals(tag, StringComparison.Ordinal));
|
|
}
|
|
|
|
/// <summary>Bottom length for the short-form dress code. Omit on things that have no hem.</summary>
|
|
public static class SkirtLengths
|
|
{
|
|
public const string Regular = "regular";
|
|
public const string Short = "short";
|
|
|
|
public static readonly IReadOnlyList<string> All = [Regular, Short];
|
|
|
|
public static bool IsKnown(string length) =>
|
|
All.Any(candidate => candidate.Equals(length, StringComparison.Ordinal));
|
|
}
|
|
|
|
public sealed class ColorDef : Def
|
|
{
|
|
public IReadOnlyList<string> Tags { get; init; } = [];
|
|
}
|