67 lines
2.9 KiB
C#
67 lines
2.9 KiB
C#
using Aetheria.State.Documents;
|
|
using GameCult.Caching;
|
|
using GameCult.Networking;
|
|
|
|
namespace Aetheria.State;
|
|
|
|
public static class AetheriaDocumentRegistry
|
|
{
|
|
public static CultDocumentRegistry CreateCultCacheRegistry()
|
|
{
|
|
var registry = new CultDocumentRegistry();
|
|
foreach (var documentType in DocumentTypes)
|
|
{
|
|
registry.GetRequired(documentType);
|
|
}
|
|
|
|
return registry;
|
|
}
|
|
|
|
public static CultNetDocumentRegistry CreateCultNetRegistry(CultDocumentRegistry? cacheRegistry = null)
|
|
{
|
|
var registry = cacheRegistry ?? CreateCultCacheRegistry();
|
|
return new CultNetDocumentRegistry(
|
|
registry,
|
|
new[]
|
|
{
|
|
CultNetDocumentBinding.ForDocument<AetheriaWorldState>(registry),
|
|
CultNetDocumentBinding.ForDocument<AetheriaItemDefinition>(registry),
|
|
CultNetDocumentBinding.ForDocument<AetheriaCorporation>(registry),
|
|
CultNetDocumentBinding.ForDocument<AetheriaNameFile>(registry),
|
|
CultNetDocumentBinding.ForDocument<AetheriaPlayerProfile>(registry),
|
|
CultNetDocumentBinding.ForDocument<AetheriaRuntimeSession>(registry),
|
|
CultNetDocumentBinding.ForDocument<AetheriaMigrationLedger>(registry),
|
|
CultNetDocumentBinding.ForDocument<AetheriaLegacyCatalogQuarantine>(registry),
|
|
CultNetDocumentBinding.ForDocument<AetheriaPlayerSettings>(registry),
|
|
CultNetDocumentBinding.ForDocument<AetheriaLoadoutTemplate>(registry),
|
|
CultNetDocumentBinding.ForDocument<AetheriaRunState>(registry),
|
|
CultNetDocumentBinding.ForDocument<AetheriaZoneState>(registry),
|
|
CultNetDocumentBinding.ForDocument<AetheriaEntitySnapshot>(registry),
|
|
CultNetDocumentBinding.ForDocument<AetheriaRuntimeCommitDrainStatus>(registry),
|
|
CultNetDocumentBinding.ForDocument<AetheriaEveCommandDrainStatus>(registry),
|
|
CultNetDocumentBinding.ForDocument<EveSurfaceState>(registry),
|
|
CultNetDocumentBinding.ForDocument<EveProviderAdvertisementState>(registry)
|
|
});
|
|
}
|
|
|
|
public static IReadOnlyList<Type> DocumentTypes { get; } =
|
|
[
|
|
typeof(AetheriaWorldState),
|
|
typeof(AetheriaItemDefinition),
|
|
typeof(AetheriaCorporation),
|
|
typeof(AetheriaNameFile),
|
|
typeof(AetheriaPlayerProfile),
|
|
typeof(AetheriaRuntimeSession),
|
|
typeof(AetheriaMigrationLedger),
|
|
typeof(AetheriaLegacyCatalogQuarantine),
|
|
typeof(AetheriaPlayerSettings),
|
|
typeof(AetheriaLoadoutTemplate),
|
|
typeof(AetheriaRunState),
|
|
typeof(AetheriaZoneState),
|
|
typeof(AetheriaEntitySnapshot),
|
|
typeof(AetheriaRuntimeCommitDrainStatus),
|
|
typeof(AetheriaEveCommandDrainStatus),
|
|
typeof(EveSurfaceState),
|
|
typeof(EveProviderAdvertisementState)
|
|
];
|
|
}
|