Import typed corporation allegiances

This commit is contained in:
Meta Vens 2026-06-13 13:18:03 +01:00
commit de36150dc2
158 changed files with 319 additions and 185 deletions

View file

@ -220,7 +220,8 @@ public class Galaxy
private static Faction[] ProjectFactions(AetheriaRuntimeCatalogSnapshot runtimeCatalog)
{
var factions = runtimeCatalog.Corporations
var corporations = runtimeCatalog.Corporations.ToArray();
var factions = corporations
.Select(ProjectFaction)
.ToArray();
if (factions.Length == 0)
@ -228,6 +229,20 @@ public class Galaxy
throw new InvalidOperationException("Typed catalog has no factions for galaxy generation.");
}
var factionsByLegacyId = factions.ToDictionary(faction => faction.ID.ToString("D"), StringComparer.OrdinalIgnoreCase);
for (var index = 0; index < corporations.Length; index++)
{
foreach (var allegiance in corporations[index].Allegiances)
{
if (Guid.TryParse(allegiance.CorporationLegacyId, out var corporationId) &&
corporationId != Guid.Empty &&
factionsByLegacyId.ContainsKey(corporationId.ToString("D")))
{
factions[index].Allegiance[corporationId] = (float) allegiance.Weight;
}
}
}
return factions;
}