Route EveUnity live providers through generic client
This commit is contained in:
parent
f6c44d9d65
commit
d21cfecaf5
6 changed files with 93 additions and 6 deletions
|
|
@ -24,6 +24,8 @@ $aetheriaGameSurfaceBuilder = Join-Path $AetheriaRoot "Packages\org.gamecult.aet
|
|||
$aetheriaDaemonOperationsClient = Join-Path $AetheriaRoot "Packages\org.gamecult.aetheria.state\Runtime\AetheriaRuntimeDaemonOperationsClient.cs"
|
||||
$aetheriaDaemonDocuments = Join-Path $AetheriaRoot "Packages\org.gamecult.aetheria.state\Runtime\AetheriaRuntimeDaemonDocuments.cs"
|
||||
$aetheriaRuntimeVerseClient = Join-Path $AetheriaRoot "Packages\org.gamecult.aetheria.state\Runtime\AetheriaRuntimeVerseClient.cs"
|
||||
$eveUnitySceneProviderConnection = Join-Path $eveRoot "runtimes\incubating\eve-unity-scene\Runtime\EveUnitySceneProviderConnection.cs"
|
||||
$eveUnitySceneLiveProviderBridge = Join-Path $eveRoot "runtimes\incubating\eve-unity-scene\Runtime\EveUnitySceneLiveProviderBridge.cs"
|
||||
if (-not (Test-Path $manifestPath)) {
|
||||
throw "Aetheria Unity package manifest not found: $manifestPath"
|
||||
}
|
||||
|
|
@ -69,6 +71,12 @@ if (-not (Test-Path $aetheriaDaemonDocuments)) {
|
|||
if (-not (Test-Path $aetheriaRuntimeVerseClient)) {
|
||||
throw "Aetheria runtime Verse client not found: $aetheriaRuntimeVerseClient"
|
||||
}
|
||||
if (-not (Test-Path $eveUnitySceneProviderConnection)) {
|
||||
throw "EveUnity scene provider connection not found: $eveUnitySceneProviderConnection"
|
||||
}
|
||||
if (-not (Test-Path $eveUnitySceneLiveProviderBridge)) {
|
||||
throw "EveUnity scene live provider bridge not found: $eveUnitySceneLiveProviderBridge"
|
||||
}
|
||||
|
||||
$manifest = Get-Content -Raw -LiteralPath $manifestPath | ConvertFrom-Json
|
||||
$requiredDependencies = @{
|
||||
|
|
@ -120,6 +128,35 @@ foreach ($compileItem in $requiredSceneCompileItems) {
|
|||
}
|
||||
}
|
||||
|
||||
$sceneProviderConnection = Get-Content -Raw -LiteralPath $eveUnitySceneProviderConnection
|
||||
foreach ($symbol in @(
|
||||
"IEveUnitySceneProviderSurfaceDocumentConnection",
|
||||
"_documentConnection?.Connect();",
|
||||
"_documentConnection?.Disconnect();",
|
||||
"_refreshSource?.Refresh();",
|
||||
"HasAppliedCurrentSnapshot()",
|
||||
"_session.ActiveSourcePointer"
|
||||
)) {
|
||||
if (-not $sceneProviderConnection.Contains($symbol)) {
|
||||
throw "EveUnity scene provider connection missing live-source lifecycle symbol: $symbol"
|
||||
}
|
||||
}
|
||||
|
||||
$sceneLiveProviderBridge = Get-Content -Raw -LiteralPath $eveUnitySceneLiveProviderBridge
|
||||
foreach ($symbol in @(
|
||||
"IEveUnitySceneProviderSurfaceDocumentConnection",
|
||||
"IEveUnitySceneLiveProviderTransport",
|
||||
"CommandReceiptAvailable += OnCommandReceiptAvailable",
|
||||
"ReceiptAvailable?.Invoke(receipt);"
|
||||
)) {
|
||||
if (-not $sceneLiveProviderBridge.Contains($symbol)) {
|
||||
throw "EveUnity scene live provider bridge missing transport receipt/lifecycle symbol: $symbol"
|
||||
}
|
||||
}
|
||||
if ($sceneLiveProviderBridge.Contains("if (receipt.ShouldRefreshProviderSurface)")) {
|
||||
throw "EveUnity scene live provider bridge must forward receipts; playable-world live client owns refresh policy"
|
||||
}
|
||||
|
||||
$runtimePackage = Get-Content -Raw -LiteralPath $aetheriaEveRuntimePackage
|
||||
foreach ($dependency in @(
|
||||
'"org.gamecult.eve.unity-scene": "0.1.0"',
|
||||
|
|
|
|||
|
|
@ -106,14 +106,14 @@ foreach ($symbol in @("EveUnitySceneClientSession", "EveUnitySceneProviderSurfac
|
|||
}
|
||||
|
||||
$providerConnectionSource = Get-Content -LiteralPath (Join-Path $projectRoot "runtimes\incubating\eve-unity-scene\Runtime\EveUnitySceneProviderConnection.cs") -Raw
|
||||
foreach ($symbol in @("IEveUnitySceneProviderSurfaceSource", "IEveUnitySceneCommandSink", "IEveUnitySceneProviderSurfaceDocumentSource", "EveUnitySceneProviderSurfaceDocument", "EveUnitySceneProviderSurfaceDocumentSource", "ToSnapshot", "DocumentAvailable", "EveUnitySceneProviderConnection", "SnapshotAvailable", "CurrentSnapshot", "Connect", "Refresh", "SubmitMoveIntent", "SubmitMoveVectorIntent", "SubmitFocusIntent", "SubmitTargetIntent", "SubmitActionIntent", "Disconnect")) {
|
||||
foreach ($symbol in @("IEveUnitySceneProviderSurfaceSource", "IEveUnitySceneCommandSink", "IEveUnitySceneProviderSurfaceDocumentSource", "IEveUnitySceneProviderSurfaceDocumentConnection", "IEveUnityProviderRefreshSource", "EveUnitySceneProviderSurfaceDocument", "EveUnitySceneProviderSurfaceDocumentSource", "ToSnapshot", "DocumentAvailable", "EveUnitySceneProviderConnection", "SnapshotAvailable", "CurrentSnapshot", "Connect", "Refresh", "_refreshSource?.Refresh();", "SubmitMoveIntent", "SubmitMoveVectorIntent", "SubmitFocusIntent", "SubmitTargetIntent", "SubmitActionIntent", "Disconnect", "HasAppliedCurrentSnapshot")) {
|
||||
if (-not $providerConnectionSource.Contains($symbol)) {
|
||||
throw "EveUnity scene provider connection missing symbol: $symbol"
|
||||
}
|
||||
}
|
||||
|
||||
$liveProviderBridgeSource = Get-Content -LiteralPath (Join-Path $projectRoot "runtimes\incubating\eve-unity-scene\Runtime\EveUnitySceneLiveProviderBridge.cs") -Raw
|
||||
foreach ($symbol in @("IEveUnitySceneLiveProviderTransport", "EveUnitySceneLiveProviderTransportBehaviour", "EveUnitySceneLiveProviderBridgeComponent", "EveUnitySceneLiveProviderBridge", "IEveUnitySceneProviderSurfaceDocumentSource", "IEveUnityPlayableWorldAssetManifestDocumentSource", "IEveUnitySceneCommandSink", "IEveUnitySceneCommandReceiptSource", "IEveUnityProviderRefreshSource", "SubmitCommand", "CommandReceiptAvailable", "ShouldRefreshProviderSurface", "transportBehaviour")) {
|
||||
foreach ($symbol in @("IEveUnitySceneLiveProviderTransport", "EveUnitySceneLiveProviderTransportBehaviour", "EveUnitySceneLiveProviderBridgeComponent", "EveUnitySceneLiveProviderBridge", "IEveUnitySceneProviderSurfaceDocumentSource", "IEveUnitySceneProviderSurfaceDocumentConnection", "IEveUnityPlayableWorldAssetManifestDocumentSource", "IEveUnitySceneCommandSink", "IEveUnitySceneCommandReceiptSource", "IEveUnityProviderRefreshSource", "SubmitCommand", "CommandReceiptAvailable", "ReceiptAvailable?.Invoke(receipt);", "transportBehaviour")) {
|
||||
if (-not $liveProviderBridgeSource.Contains($symbol)) {
|
||||
throw "EveUnity scene live provider bridge missing symbol: $symbol"
|
||||
}
|
||||
|
|
@ -121,6 +121,9 @@ foreach ($symbol in @("IEveUnitySceneLiveProviderTransport", "EveUnitySceneLiveP
|
|||
if ($liveProviderBridgeSource.Contains("Aetheria")) {
|
||||
throw "EveUnity scene live provider bridge must remain provider-agnostic and cannot reference Aetheria"
|
||||
}
|
||||
if ($liveProviderBridgeSource.Contains("if (receipt.ShouldRefreshProviderSurface)")) {
|
||||
throw "EveUnity scene live provider bridge must forward receipts; playable-world live client owns refresh policy"
|
||||
}
|
||||
|
||||
$liveClientSource = Get-Content -LiteralPath (Join-Path $projectRoot "runtimes\incubating\eve-unity-scene\Runtime\EveUnityPlayableWorldLiveClient.cs") -Raw
|
||||
foreach ($symbol in @("EveUnityPlayableWorldLiveClient", "IEveUnitySceneCommandReceiptSource", "EveUnitySceneCommandReceipt", "EveUnitySceneProviderConnection", "EveUnityPlayableWorldPresenter", "ActiveWorld", "LastPresentation", "LastReceipt", "ReceiptAvailable", "Connect", "Refresh", "SubmitMoveIntent", "SubmitMoveVectorIntent", "SubmitFocusIntent", "SubmitTargetIntent", "SubmitActionIntent", "ProjectionUpdated", "ShouldRefreshProviderSurface", "IsProviderOwned", "Disconnect")) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue