Centralize gameplay boot state sessions
This commit is contained in:
parent
d6bee723ec
commit
3917be7d86
2 changed files with 30 additions and 16 deletions
|
|
@ -8634,10 +8634,10 @@ static void RequireClientTargetBootAuthority(string root)
|
|||
"stateBoot.StateFileExists",
|
||||
"AetheriaUnityRuntimeClientProvider.ResolveClient(stateBoot.StateFilePath, stateBoot.RuntimeId)",
|
||||
".State",
|
||||
".ReactiveCatalog()",
|
||||
"runtimeCatalogDocument.Current",
|
||||
".ReactiveSectorMap()",
|
||||
"sectorMapDocument.Current",
|
||||
".ObserveCatalog()",
|
||||
"runtimeCatalogSession.Current",
|
||||
".ObserveSectorMap()",
|
||||
"sectorMapSession.Current",
|
||||
"new ItemManager(",
|
||||
"new AetheriaUnityLoadoutItemProjector(itemManager, runtimeCatalog)",
|
||||
"ZoneRenderer.SetDroppedPickupItemProjector(loadoutItemProjector.CreateLoadoutItem)",
|
||||
|
|
@ -8657,6 +8657,13 @@ static void RequireClientTargetBootAuthority(string root)
|
|||
string.Join(", ", missingGameplayBootShellSymbols));
|
||||
}
|
||||
|
||||
if (gameplayBootShell.Contains(".ReactiveCatalog()", StringComparison.Ordinal) ||
|
||||
gameplayBootShell.Contains(".ReactiveSectorMap()", StringComparison.Ordinal))
|
||||
{
|
||||
throw new InvalidOperationException(
|
||||
"AetheriaUnityGameplayBootShell still opens raw reactive catalog/sector map documents instead of managed sessions.");
|
||||
}
|
||||
|
||||
var requiredPresenterSymbols = new[]
|
||||
{
|
||||
"AetheriaRuntimeStateBoot.Inspect(",
|
||||
|
|
@ -15228,10 +15235,10 @@ static void RequireRuntimeStateReaderOwnsUnityStateAcquisition(string root)
|
|||
"AetheriaRuntimeStateBoot.Inspect(AetheriaUnityRuntimePaths.GameDataDirectory)",
|
||||
"AetheriaUnityRuntimeClientProvider.ResolveClient(stateBoot.StateFilePath, stateBoot.RuntimeId)",
|
||||
".State",
|
||||
".ReactiveCatalog()",
|
||||
"runtimeCatalogDocument.Current",
|
||||
".ReactiveSectorMap()",
|
||||
"sectorMapDocument.Current",
|
||||
".ObserveCatalog()",
|
||||
"runtimeCatalogSession.Current",
|
||||
".ObserveSectorMap()",
|
||||
"sectorMapSession.Current",
|
||||
"new ItemManager(",
|
||||
"new AetheriaUnityLoadoutItemProjector(itemManager, runtimeCatalog)",
|
||||
"ZoneRenderer.SetDroppedPickupItemProjector(loadoutItemProjector.CreateLoadoutItem)",
|
||||
|
|
@ -15253,6 +15260,13 @@ static void RequireRuntimeStateReaderOwnsUnityStateAcquisition(string root)
|
|||
string.Join(", ", missingGameplayBootShellSymbols));
|
||||
}
|
||||
|
||||
if (gameplayBootShell.Contains(".ReactiveCatalog()", StringComparison.Ordinal) ||
|
||||
gameplayBootShell.Contains(".ReactiveSectorMap()", StringComparison.Ordinal))
|
||||
{
|
||||
throw new InvalidOperationException(
|
||||
"AetheriaUnityGameplayBootShell still opens raw reactive catalog/sector map documents instead of managed sessions.");
|
||||
}
|
||||
|
||||
var requiredRuntimeClientProviderSymbols = new[]
|
||||
{
|
||||
"public static class AetheriaUnityRuntimeClientProvider",
|
||||
|
|
@ -15680,10 +15694,10 @@ static void RequireRuntimeStateReaderOwnsUnityStateAcquisition(string root)
|
|||
|
||||
var requiredGameplayBootSymbols = new[]
|
||||
{
|
||||
".ReactiveCatalog()",
|
||||
"runtimeCatalogDocument.Current",
|
||||
".ReactiveSectorMap()",
|
||||
"sectorMapDocument.Current",
|
||||
".ObserveCatalog()",
|
||||
"runtimeCatalogSession.Current",
|
||||
".ObserveSectorMap()",
|
||||
"sectorMapSession.Current",
|
||||
"Galaxy.ProjectObservedSectorMap(",
|
||||
"sectorMap.IsTutorial",
|
||||
"sectorMap.GenerationSeed",
|
||||
|
|
|
|||
|
|
@ -36,12 +36,12 @@ public sealed class AetheriaUnityGameplayBootShell
|
|||
|
||||
var aetheria = AetheriaUnityRuntimeClientProvider.ResolveClient(stateBoot.StateFilePath, stateBoot.RuntimeId)
|
||||
.State;
|
||||
using var runtimeCatalogDocument = aetheria.ReactiveCatalog();
|
||||
var runtimeCatalog = runtimeCatalogDocument.Current;
|
||||
using var runtimeCatalogSession = aetheria.ObserveCatalog();
|
||||
var runtimeCatalog = runtimeCatalogSession.Current;
|
||||
if (runtimeCatalog == null)
|
||||
throw new InvalidOperationException("Aetheria typed runtime catalog is required before gameplay boot.");
|
||||
using var sectorMapDocument = aetheria.ReactiveSectorMap();
|
||||
var sectorMap = sectorMapDocument.Current;
|
||||
using var sectorMapSession = aetheria.ObserveSectorMap();
|
||||
var sectorMap = sectorMapSession.Current;
|
||||
if (sectorMap == null)
|
||||
throw new InvalidOperationException("Aetheria typed sector map is required before gameplay boot.");
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue