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();
}