using System.Collections.Generic; using System.Windows.Media; namespace Character_Builder; /// A character folder (has a Reference/ sheet). 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; } /// One scanned PNG asset (body/head/expression/hairmask/accessory). 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; } /// A composited accessory layer with its own transform. 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; } /// The saveable/loadable composition. 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 Accessories { get; set; } = new(); }