Track Aetheria advertised Unity world interaction
This commit is contained in:
parent
c7a7812b27
commit
af2c53e85f
2 changed files with 35 additions and 8 deletions
|
|
@ -674,14 +674,16 @@ Recently cut:
|
|||
`AetheriaEveUnitySceneProviderBridge` as an
|
||||
`IEveUnitySceneLiveProviderTransport`; the generic Eve live bridge consumes
|
||||
that transport and drives `EveUnityPlayableWorldRuntime` without the runtime
|
||||
importing Aetheria scene classes. The next blocker is advertisement-owned live
|
||||
proof: Aetheria's provider advertisement and surface catalog must publish the
|
||||
world interaction metadata that the Unity scene document needs, so
|
||||
`AetheriaEveUnitySceneProviderBridge` stops fabricating projection kind,
|
||||
command boundary, receipt schema, ownership, and pointer metadata locally.
|
||||
After that cut, implement concrete CultMesh/CultCache readers for provider
|
||||
surface and asset manifest documents and prove provider receipts plus daemon
|
||||
snapshots drive rendered Unity frames rather than renderer-local simulation.
|
||||
importing Aetheria scene classes. Aetheria's provider advertisement and
|
||||
surface catalog now publish the world interaction metadata the Unity scene
|
||||
document needs: surface kind, projection kind, command boundary, receipt
|
||||
schema, ownership, lowering targets, state schemas, and record pointer. The
|
||||
Aetheria Unity bridge now selects that provider-owned advertisement instead of
|
||||
fabricating the Unity scene metadata locally. The next blocker is concrete
|
||||
CultMesh/CultCache live reading: provider surface and asset manifest documents
|
||||
must be consumed through real live record readers, then provider receipts plus
|
||||
daemon snapshots must drive rendered Unity frames rather than renderer-local
|
||||
simulation.
|
||||
- EveElectron capture lifecycle now carries the same kind of structured pending
|
||||
capture contract. `captureContract` names the Electron shell runtime, capture
|
||||
kind, PNG artifact pattern, conformance attachment point, required Aetheria
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@ $aetheriaEveRuntimePackage = Join-Path $AetheriaRoot "Packages\org.gamecult.aeth
|
|||
$aetheriaEveRuntimeAsmdef = Join-Path $AetheriaRoot "Packages\org.gamecult.aetheria.eve-runtime\Runtime\GameCult.Aetheria.EveRuntime.asmdef"
|
||||
$aetheriaSceneBridge = Join-Path $AetheriaRoot "Packages\org.gamecult.aetheria.eve-runtime\Runtime\AetheriaEveUnitySceneProviderBridge.cs"
|
||||
$aetheriaSceneProviderComponent = Join-Path $AetheriaRoot "Packages\org.gamecult.aetheria.eve-runtime\Runtime\AetheriaEveUnitySceneProviderComponent.cs"
|
||||
$aetheriaSurfaceCatalog = Join-Path $AetheriaRoot "Packages\org.gamecult.aetheria.state\Runtime\AetheriaRuntimeEveSurfaceCatalog.cs"
|
||||
$aetheriaGameSurfaceBuilder = Join-Path $AetheriaRoot "Packages\org.gamecult.aetheria.state\Runtime\AetheriaRuntimeDaemonGameSurfaceBuilder.cs"
|
||||
$aetheriaDaemonOperationsClient = Join-Path $AetheriaRoot "Packages\org.gamecult.aetheria.state\Runtime\AetheriaRuntimeDaemonOperationsClient.cs"
|
||||
if (-not (Test-Path $manifestPath)) {
|
||||
|
|
@ -43,6 +44,9 @@ if (-not (Test-Path $aetheriaSceneBridge)) {
|
|||
if (-not (Test-Path $aetheriaSceneProviderComponent)) {
|
||||
throw "Aetheria Eve Unity scene provider component not found: $aetheriaSceneProviderComponent"
|
||||
}
|
||||
if (-not (Test-Path $aetheriaSurfaceCatalog)) {
|
||||
throw "Aetheria Eve surface catalog not found: $aetheriaSurfaceCatalog"
|
||||
}
|
||||
if (-not (Test-Path $aetheriaGameSurfaceBuilder)) {
|
||||
throw "Aetheria daemon game surface builder not found: $aetheriaGameSurfaceBuilder"
|
||||
}
|
||||
|
|
@ -131,6 +135,9 @@ foreach ($symbol in @(
|
|||
"Connect",
|
||||
"Disconnect",
|
||||
"SubmitCommand",
|
||||
"ReadAdvertisedSurface",
|
||||
"runtimeState.ProviderAdvertisement.Latest",
|
||||
"WorldInteraction",
|
||||
"AetheriaEveRuntimeUnityHooks.RequireControl",
|
||||
"ToReceipt(request, daemonEnvelope)",
|
||||
"ToReceipt(request, envelope)"
|
||||
|
|
@ -167,6 +174,24 @@ foreach ($symbol in @(
|
|||
}
|
||||
}
|
||||
|
||||
$surfaceCatalog = Get-Content -Raw -LiteralPath $aetheriaSurfaceCatalog
|
||||
foreach ($symbol in @(
|
||||
"AetheriaRuntimeEveWorldInteractionAdvertisement",
|
||||
"SurfaceKind",
|
||||
"WorldInteraction",
|
||||
"Find",
|
||||
'"interactive-world"',
|
||||
'"provider-authored-world-surface"',
|
||||
'"provider-authored-world-editor-surface"',
|
||||
'"unity-scene"',
|
||||
"AetheriaRuntimeDaemonSchemas.EveCommandAcceptanceStatus",
|
||||
'"provider-owns-world-state-assets-command-acceptance-and-receipts"'
|
||||
)) {
|
||||
if (-not $surfaceCatalog.Contains($symbol)) {
|
||||
throw "Aetheria Eve surface catalog missing advertised world-interaction symbol: $symbol"
|
||||
}
|
||||
}
|
||||
|
||||
$gameSurfaceBuilder = Get-Content -Raw -LiteralPath $aetheriaGameSurfaceBuilder
|
||||
foreach ($symbol in @(
|
||||
'"world.scene3d"',
|
||||
|
|
|
|||
Loading…
Reference in a new issue