feat(client): hair highlight swatch + manifest JSON for exports (#719, #720)

#719: Add display-only hair highlight swatch (Option B) — auto-derived
from primary tint, non-interactive (MOUSE_FILTER_IGNORE).

#720: Remove DirAccess.open() fallback scanning (breaks in PCK exports).
Fully populate manifest.json (11 body types, 14 hair, 4 heads, 4
eyebrows, 8 clothing). Add tooling/generate-character-manifest script
and make manifest target for regeneration.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-04 23:34:23 +02:00
co-authored by Claude Opus 4.6
parent 4c1e0e9c85
commit bc168c861a
4 changed files with 195 additions and 48 deletions
+70 -8
View File
@@ -1,13 +1,75 @@
{
"body_types": ["average_m", "average_f", "muscular_m", "muscular_f", "teen_m", "teen_f"],
"heads": [],
"hair": ["bob", "buns", "buzzed", "long", "ponytail", "bald"],
"facial_hair": ["beard", "moustache", "mutton_chops"],
"eyebrows": [],
"body_types": [
"average_f",
"average_m",
"child",
"heavy_f",
"heavy_m",
"muscular_f",
"muscular_m",
"teen_f",
"teen_m",
"thin_f",
"thin_m"
],
"heads": [
"head_001",
"head_002",
"head_003",
"head_004"
],
"hair": [
"bald",
"balding",
"bob",
"buns",
"buzzed",
"buzzed_female",
"dreads",
"long",
"long_dreads",
"mohawk",
"ponytail",
"ponytail_f",
"simple_parted",
"slick_back"
],
"facial_hair": [
"beard",
"moustache",
"mutton_chops"
],
"eyebrows": [
"female",
"regular",
"teen",
"thick"
],
"clothing": {
"peasant_tunic": {"slot": "torso"},
"peasant_pants": {"slot": "legs"},
"peasant_shoes": {"slot": "feet"}
"boots_work": {
"slot": "feet"
},
"coveralls_basic": {
"slot": "torso"
},
"jacket_utility": {
"slot": "torso"
},
"pants_cargo": {
"slot": "legs"
},
"peasant_pants": {
"slot": "legs"
},
"peasant_shoes": {
"slot": "feet"
},
"peasant_tunic": {
"slot": "torso"
},
"shirt_henley": {
"slot": "torso"
}
},
"accessories": []
}