Complete phase 47 romance pack on generic orientation and affinity hooks.

Vanilla catalogs stay without crushes; a content pack ships the overlay so later mods can reuse it.
This commit is contained in:
Leonid Pershin
2026-08-20 10:42:42 +03:00
parent cb869e4977
commit d2911c3daf
43 changed files with 1840 additions and 29 deletions
+14 -1
View File
@@ -316,6 +316,8 @@ public sealed class CatalogLoader
var behavior = new Dictionary<string, BehaviorDef>(StringComparer.Ordinal);
var colors = new Dictionary<string, ColorDef>(StringComparer.Ordinal);
var topics = new Dictionary<string, TopicDef>(StringComparer.Ordinal);
var orientations = new Dictionary<string, OrientationDef>(StringComparer.Ordinal);
var affinity = new Dictionary<string, AffinityRulesDef>(StringComparer.Ordinal);
foreach (var (key, json) in resolved)
{
@@ -384,6 +386,12 @@ public sealed class CatalogLoader
case DefKind.Topic:
topics[key.Name] = Jsonc.Deserialize<TopicDef>(json);
break;
case DefKind.Orientation:
orientations[key.Name] = Jsonc.Deserialize<OrientationDef>(json);
break;
case DefKind.AffinityRules:
affinity[key.Name] = Jsonc.Deserialize<AffinityRulesDef>(json);
break;
}
}
@@ -410,6 +418,8 @@ public sealed class CatalogLoader
behavior,
colors,
topics,
orientations,
affinity,
ru,
en);
}
@@ -558,7 +568,10 @@ public sealed class CatalogLoader
.Concat(Enumerate(catalog.DayFrames.Values))
.Concat(Enumerate(catalog.Holidays.Values))
.Concat(Enumerate(catalog.Behavior.Values))
.Concat(Enumerate(catalog.Colors.Values));
.Concat(Enumerate(catalog.Colors.Values))
.Concat(Enumerate(catalog.Topics.Values))
.Concat(Enumerate(catalog.Orientations.Values))
.Concat(Enumerate(catalog.Affinity.Values));
static IEnumerable<Def> Enumerate(IEnumerable<Def> defs) => defs.Where(def => !def.Abstract);
}