Initial Dansori character workspace

This commit is contained in:
eKeerar
2026-07-04 10:34:46 +09:00
commit 5a419816ff
2480 changed files with 38692 additions and 0 deletions
+53
View File
@@ -0,0 +1,53 @@
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();
}