Let the catalog describe clothes and carryables on ThingDef without dressing anyone.

Empty layers keep furniture on the map; a known layer set and ColorDef palette reject unknown ids at load.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Leonid Pershin
2026-08-20 02:47:23 +03:00
co-authored by Cursor
parent 450495f666
commit abcf67eaab
16 changed files with 716 additions and 15 deletions
@@ -0,0 +1,10 @@
[
{ "defName": "White", "tags": ["neutral", "school"] },
{ "defName": "Black", "tags": ["neutral", "school"] },
{ "defName": "Gray", "tags": ["neutral", "school"] },
{ "defName": "Blue", "tags": ["neutral", "school"] },
{ "defName": "LightBlue" },
{ "defName": "Red", "tags": ["bright"] },
{ "defName": "Green", "tags": ["bright"] },
{ "defName": "Beige" },
]
@@ -0,0 +1,210 @@
[
{
"defName": "Underwear",
"layers": ["Underwear"],
"portable": true,
"mass": 0.05,
"insulation": 1,
"colors": ["White", "Black", "Gray"],
},
{
"defName": "Socks",
"layers": ["Socks"],
"portable": true,
"mass": 0.04,
"insulation": 1,
"colors": ["White", "Black", "Gray"],
},
{
"defName": "Skirt",
"layers": ["Bottom"],
"portable": true,
"mass": 0.25,
"insulation": 2,
"formality": 40,
"sex": "female",
"skirtLength": "regular",
"colors": ["Black", "Gray", "Blue", "Beige"],
},
{
"defName": "ShortSkirt",
"layers": ["Bottom"],
"portable": true,
"mass": 0.2,
"insulation": 1,
"formality": 30,
"sex": "female",
"skirtLength": "short",
"colors": ["Black", "Gray", "Blue", "Beige"],
},
{
"defName": "Pants",
"layers": ["Bottom"],
"portable": true,
"mass": 0.4,
"insulation": 3,
"formality": 30,
"skirtLength": "regular",
"colors": ["Black", "Gray", "Blue", "Beige"],
},
{
"defName": "Shorts",
"layers": ["Bottom"],
"portable": true,
"mass": 0.25,
"insulation": 1,
"formality": 20,
"skirtLength": "short",
"colors": ["Black", "Gray", "Blue", "Beige"],
},
{
"defName": "Jeans",
"layers": ["Bottom"],
"portable": true,
"mass": 0.5,
"insulation": 3,
"formality": 20,
"skirtLength": "regular",
"colors": ["Blue", "Black", "Gray"],
},
{
"defName": "Trousers",
"layers": ["Bottom"],
"portable": true,
"mass": 0.4,
"insulation": 3,
"formality": 70,
"skirtLength": "regular",
"colors": ["Black", "Gray", "Blue"],
},
{
"defName": "TShirt",
"layers": ["Top"],
"portable": true,
"mass": 0.15,
"insulation": 2,
"formality": 20,
"colors": ["White", "Black", "Gray", "Blue", "LightBlue", "Red", "Green", "Beige"],
},
{
"defName": "Shirt",
"layers": ["Top"],
"portable": true,
"mass": 0.2,
"insulation": 2,
"formality": 70,
"colors": ["White", "Black", "Blue", "Gray"],
},
{
"defName": "Sweater",
"layers": ["OverTop"],
"portable": true,
"mass": 0.4,
"insulation": 8,
"formality": 30,
"colors": ["Black", "Gray", "Blue", "Red", "Green", "Beige"],
},
{
"defName": "Jacket",
"layers": ["Outer"],
"portable": true,
"mass": 1,
"insulation": 12,
"formality": 40,
"colors": ["Black", "Gray", "Blue", "Beige", "Red", "Green"],
},
{
"defName": "Coat",
"layers": ["Outer"],
"portable": true,
"mass": 1.5,
"insulation": 18,
"formality": 70,
"colors": ["Black", "Gray", "Beige"],
},
{
"defName": "FurCoat",
"layers": ["Outer"],
"portable": true,
"mass": 2.5,
"insulation": 28,
"formality": 50,
"colors": ["Black", "Beige", "Gray"],
},
{
"defName": "Shoes",
"layers": ["Shoes"],
"portable": true,
"mass": 0.6,
"insulation": 2,
"formality": 40,
"colors": ["Black", "Gray", "Beige", "White"],
},
{
"defName": "WinterBoots",
"layers": ["Shoes"],
"portable": true,
"mass": 1,
"insulation": 8,
"formality": 30,
"colors": ["Black", "Gray", "Beige"],
},
{
"defName": "Hat",
"layers": ["Head"],
"portable": true,
"mass": 0.15,
"insulation": 6,
"formality": 20,
"colors": ["Black", "Gray", "Beige", "Red", "Blue"],
},
{
"defName": "Belt",
"layers": ["Accessory"],
"portable": true,
"mass": 0.1,
"formality": 50,
"colors": ["Black", "Gray", "Beige"],
},
{
"defName": "Scarf",
"layers": ["Accessory"],
"portable": true,
"mass": 0.1,
"insulation": 4,
"formality": 30,
"colors": ["Black", "Gray", "Blue", "Red", "Beige"],
},
{
"defName": "Dress",
"layers": ["Bottom", "Top"],
"portable": true,
"mass": 0.4,
"insulation": 3,
"formality": 50,
"sex": "female",
"skirtLength": "regular",
"colors": ["Black", "Blue", "Red", "Beige", "Gray"],
},
{
"defName": "PeShirt",
"layers": ["Top"],
"portable": true,
"mass": 0.15,
"insulation": 2,
"formality": 10,
"pe": true,
"colors": ["Gray", "Blue", "Black", "Green", "Red"],
},
{
"defName": "PeShorts",
"layers": ["Bottom"],
"portable": true,
"mass": 0.2,
"insulation": 1,
"formality": 10,
"pe": true,
"skirtLength": "short",
"colors": ["Gray", "Blue", "Black", "Green", "Red"],
},
]
@@ -0,0 +1,6 @@
[
{ "defName": "SchoolBag", "portable": true, "mass": 0.8 },
{ "defName": "Textbook", "portable": true, "mass": 0.4 },
{ "defName": "Phone", "portable": true, "mass": 0.15, "colors": ["Black", "White", "Gray"] },
{ "defName": "Bottle", "portable": true, "mass": 0.3, "colors": ["Blue", "Green", "White"] },
]
@@ -18,6 +18,46 @@
"Computer": "Computer",
"MedicalCouch": "Exam couch",
"Locker": "Locker",
"Underwear": "Underwear",
"Socks": "Socks",
"Skirt": "Skirt",
"ShortSkirt": "Short skirt",
"Pants": "Pants",
"Shorts": "Shorts",
"Jeans": "Jeans",
"Trousers": "Trousers",
"TShirt": "T-shirt",
"Shirt": "Shirt",
"Sweater": "Sweater",
"Jacket": "Jacket",
"Coat": "Coat",
"FurCoat": "Fur coat",
"Shoes": "Shoes",
"WinterBoots": "Winter boots",
"Hat": "Hat",
"Belt": "Belt",
"Scarf": "Scarf",
"Dress": "Dress",
"PeShirt": "PE shirt",
"PeShorts": "PE shorts",
"SchoolBag": "School bag",
"Textbook": "Textbook",
"Phone": "Phone",
"Bottle": "Bottle",
"White": "White",
"Black": "Black",
"Gray": "Gray",
"Blue": "Blue",
"LightBlue": "Light blue",
"Red": "Red",
"Green": "Green",
"Beige": "Beige",
"Bottom": "Bottom",
"Top": "Top",
"OverTop": "Over top",
"Outer": "Outerwear",
"Head": "Head",
"Accessory": "Accessory",
"Principal": "Principal",
"Secretary": "Secretary",
"Teacher": "Teacher",
@@ -18,6 +18,46 @@
"Computer": "Компьютер",
"MedicalCouch": "Кушетка",
"Locker": "Шкафчик",
"Underwear": "Бельё",
"Socks": "Носки",
"Skirt": "Юбка",
"ShortSkirt": "Короткая юбка",
"Pants": "Штаны",
"Shorts": "Шорты",
"Jeans": "Джинсы",
"Trousers": "Брюки",
"TShirt": "Футболка",
"Shirt": "Рубашка",
"Sweater": "Свитер",
"Jacket": "Куртка",
"Coat": "Пальто",
"FurCoat": "Шуба",
"Shoes": "Обувь",
"WinterBoots": "Зимняя обувь",
"Hat": "Шапка",
"Belt": "Ремень",
"Scarf": "Шарф",
"Dress": "Платье",
"PeShirt": "Футболка для физкультуры",
"PeShorts": "Шорты для физкультуры",
"SchoolBag": "Портфель",
"Textbook": "Учебник",
"Phone": "Телефон",
"Bottle": "Бутылка",
"White": "Белый",
"Black": "Чёрный",
"Gray": "Серый",
"Blue": "Синий",
"LightBlue": "Голубой",
"Red": "Красный",
"Green": "Зелёный",
"Beige": "Бежевый",
"Bottom": "Низ",
"Top": "Верх",
"OverTop": "Поверх",
"Outer": "Верхняя одежда",
"Head": "Голова",
"Accessory": "Аксессуар",
"Principal": "Директор",
"Secretary": "Секретарь",
"Teacher": "Учитель",