Files
Dansori_Characters/Character_Builder/Models.cs
T
2026-07-04 10:34:46 +09:00

54 lines
1.9 KiB
C#

using System.Collections.Generic;
using System.Windows.Media;
namespace Character_Builder;
/// <summary>A character folder (has a Reference/ sheet).</summary>
public class CharacterInfo
{
public string Name { get; set; } = "";
public string FolderPath { get; set; } = "";
public string? SheetPath { get; set; }
public ImageSource? Thumb { get; set; }
public override string ToString() => Name;
}
/// <summary>One scanned PNG asset (body/head/expression/hairmask/accessory).</summary>
public class PartItem
{
public string Display { get; set; } = "";
public string FileName { get; set; } = "";
public string FilePath { get; set; } = "";
public string Shape { get; set; } = ""; // for heads/expressions
public string Expr { get; set; } = ""; // for expression frames
public override string ToString() => Display;
}
/// <summary>A composited accessory layer with its own transform.</summary>
public class AccessoryLayer
{
public string FileName { get; set; } = "";
public double OffsetX { get; set; }
public double OffsetY { get; set; } = -190;
public double Scale { get; set; } = 0.42;
}
/// <summary>The saveable/loadable composition.</summary>
public class BuildDefinition
{
public string Name { get; set; } = "";
public string Character { get; set; } = "";
public string? BodyFile { get; set; }
public double BodyOffsetX { get; set; }
public double BodyOffsetY { get; set; }
public double BodyScale { get; set; } = 1.0;
public string? HeadFile { get; set; }
public string? ExpressionFile { get; set; }
public string? HairmaskFile { get; set; }
public string? HairColor { get; set; }
public double HeadOffsetX { get; set; }
public double HeadOffsetY { get; set; } = -190;
public double HeadScale { get; set; } = 0.42;
public List<AccessoryLayer> Accessories { get; set; } = new();
}