Remove one-shot docking state helper
This commit is contained in:
parent
606144fe96
commit
1bf8a0be2a
3 changed files with 21 additions and 14 deletions
|
|
@ -7169,6 +7169,13 @@ static void RequireMenuDockingUsesManagedTypedSnapshot(string root)
|
|||
string.Join(", ", forbiddenClientHits));
|
||||
}
|
||||
|
||||
if (clientState.Contains("public AetheriaRuntimeObservedDockingState? CurrentDocking(", StringComparison.Ordinal) ||
|
||||
clientState.Contains("AetheriaRuntimeObservedDockingState.TryCreateCurrent(entity, docking, refit", StringComparison.Ordinal))
|
||||
{
|
||||
throw new InvalidOperationException(
|
||||
"AetheriaClientState must not expose one-shot observed docking aggregation; callers should hold the managed typed docking documents they need.");
|
||||
}
|
||||
|
||||
var menuPaths = new[]
|
||||
{
|
||||
Path.Combine(root, "Assets", "Scripts", "UI", "Menu", "InventoryMenu.cs"),
|
||||
|
|
@ -8109,6 +8116,7 @@ static void RequireAetheriaManagedStateAccessorsCoverDomainDocuments(string root
|
|||
}
|
||||
|
||||
var clientState = File.ReadAllText(clientStatePath);
|
||||
var daemonRuntimeDocumentTests = File.ReadAllText(daemonRuntimeDocumentTestsPath);
|
||||
var topLevelClientState = clientState.Split(
|
||||
"public sealed class AetheriaClientDaemonState",
|
||||
StringSplitOptions.None)[0];
|
||||
|
|
@ -8117,7 +8125,6 @@ static void RequireAetheriaManagedStateAccessorsCoverDomainDocuments(string root
|
|||
"public Task<TDocument> LatestAsync<TDocument>()",
|
||||
"public TDocument Latest<TDocument>()",
|
||||
"public CultMeshReactiveDocument<TDocument> Reactive<TDocument>(",
|
||||
"public AetheriaRuntimeObservedDockingState? CurrentDocking(",
|
||||
"public CultMeshReactiveDocument<TDocument> Reactive<TDocument>(",
|
||||
"public CultMeshReactiveDocument<TDocument> Reactive<TDocument>(",
|
||||
"public CultMeshReactiveDocument<TDocument> Reactive<TDocument>(",
|
||||
|
|
@ -8423,6 +8430,13 @@ static void RequireAetheriaManagedStateAccessorsCoverDomainDocuments(string root
|
|||
"Observed docking state still samples legacy session wrappers instead of direct reactive CultMesh documents.");
|
||||
}
|
||||
|
||||
if (!daemonRuntimeDocumentTests.Contains("AetheriaRuntimeObservedDockingState.TryCreateCurrent(", StringComparison.Ordinal) ||
|
||||
daemonRuntimeDocumentTests.Contains("client.State.CurrentDocking()", StringComparison.Ordinal))
|
||||
{
|
||||
throw new InvalidOperationException(
|
||||
"Daemon runtime document tests must teach observed docking composition from caller-owned managed reactive typed documents.");
|
||||
}
|
||||
|
||||
if (observedDaemonState.Contains("state.LatestFrame.ReactiveAsync", StringComparison.Ordinal) ||
|
||||
observedDaemonState.Contains("state.LatestSoaView.ReactiveAsync", StringComparison.Ordinal) ||
|
||||
observedDaemonState.Contains("AetheriaRuntimeReactiveObservedDaemonState", StringComparison.Ordinal) ||
|
||||
|
|
@ -13218,7 +13232,7 @@ static void RequireMainMenuContinueRunState(string root)
|
|||
if (observedDockingHits.Length > 0)
|
||||
{
|
||||
throw new InvalidOperationException(
|
||||
"Observed docking state composition must live in AetheriaClientState.CurrentDocking(), not the Unity docking index: " +
|
||||
"Observed docking state composition must use owned managed reactive typed documents in AetheriaUnityObservedDockingIndex: " +
|
||||
string.Join(", ", observedDockingHits));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -239,7 +239,11 @@ public class DaemonRuntimeDocumentTests
|
|||
.GetAwaiter()
|
||||
.GetResult();
|
||||
var stationRefit = client.State.Latest<AetheriaRuntimeStationRefitDocument>();
|
||||
var observedDocking = client.State.CurrentDocking();
|
||||
Assert.IsTrue(AetheriaRuntimeObservedDockingState.TryCreateCurrent(
|
||||
currentEntityDocumentReactive,
|
||||
currentDockingReactive,
|
||||
stationRefitReactive,
|
||||
out var observedDocking));
|
||||
using var reactiveGameSurface = client.State.Reactive<global::Aetheria.State.Documents.EveSurfaceState>(AetheriaClientEveSurface.Game);
|
||||
using var reactiveGameTuiSurface = client.State.Reactive<global::Aetheria.State.Documents.EveSurfaceState>(AetheriaClientEveSurface.GameTui);
|
||||
using var reactiveEditorSurface = client.State.Reactive<global::Aetheria.State.Documents.EveSurfaceState>(AetheriaClientEveSurface.Editor);
|
||||
|
|
|
|||
|
|
@ -226,17 +226,6 @@ namespace GameCult.Aetheria.State.Verse
|
|||
: null;
|
||||
}
|
||||
|
||||
public AetheriaRuntimeObservedDockingState? CurrentDocking(
|
||||
CultMeshReactiveDocumentOptions? options = null)
|
||||
{
|
||||
using var entity = Reactive<AetheriaRuntimeCurrentEntityDocument>(options);
|
||||
using var docking = Reactive<AetheriaRuntimeCurrentDockingDocument>(options);
|
||||
using var refit = Reactive<AetheriaRuntimeStationRefitDocument>(options);
|
||||
return AetheriaRuntimeObservedDockingState.TryCreateCurrent(entity, docking, refit, out var current)
|
||||
? current
|
||||
: null;
|
||||
}
|
||||
|
||||
public CultMeshDocumentHandle<TDocument> Document<TDocument>(AetheriaClientEveSurface surface)
|
||||
where TDocument : class
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in a new issue