Use native runtime documents in render UI

This commit is contained in:
Meta Vens 2026-06-29 06:14:38 +01:00
commit 7a298cf95d
5 changed files with 39 additions and 73 deletions

View file

@ -2438,7 +2438,8 @@ static void RequireDaemonRenderQueryAuthority(string root)
"FindAnyObjectByType<AetheriaDaemonObserver>()",
"ResolveObjectsViewport(viewport)",
"private AetheriaRuntimeObjectsViewportDocument ResolveObjectsViewport(AetheriaRuntimeXzRect viewport)",
".State.Reactive<AetheriaRuntimeObjectsViewportDocument>(viewportBounds)",
".Reactive<AetheriaRuntimeObjectsViewportDocument>(",
"\"unity-zone-renderer\"",
"_objectsViewport?.Current",
"foreach (var entity in objects?.Objects ?? Array.Empty<AetheriaRuntimeRtsViewportObject>())",
"_observedEntitySnapshotsByDaemonIndex.TryGetValue(entityIndex, out var entity)",
@ -2456,8 +2457,7 @@ static void RequireDaemonRenderQueryAuthority(string root)
"foreach (var beltPose in _daemonAsteroidBeltPoses)",
"beltPose.InstancePoses ?? Array.Empty<AetheriaRuntimeZoneRenderAsteroidInstancePose>()",
"private void RefreshDaemonContactRows()",
".State",
".Reactive<AetheriaRuntimeZoneContactsDocument>()",
".Reactive<AetheriaRuntimeZoneContactsDocument>(\"unity-zone-renderer\")",
"private void RefreshDaemonCompassMarkers()",
"private void RefreshDaemonVisibleEntityInstances()",
"PowerPulse(",
@ -2565,10 +2565,9 @@ static void RequireDaemonRenderQueryAuthority(string root)
"CultMeshReactiveDocument<AetheriaRuntimeCurrentEntityDocument> _currentEntity",
"ResolveCatalog()",
"ResolveCurrentEntityHudStatus()",
"AetheriaUnityRuntimeClientProvider.ResolveClient(",
"ResolveClient().State.Reactive<AetheriaRuntimeCatalogSnapshot>()",
"ResolveClient().State.Reactive<AetheriaRuntimePlayerSettingsDocument>()",
"ResolveClient().State.Reactive<AetheriaRuntimeCurrentEntityDocument>()",
".Reactive<AetheriaRuntimeCatalogSnapshot>(\"unity-schematic-display\")",
".Reactive<AetheriaRuntimePlayerSettingsDocument>(\"unity-schematic-display\")",
".Reactive<AetheriaRuntimeCurrentEntityDocument>(\"unity-schematic-display\")",
"return _currentEntity?.Current?.Hud ?? new AetheriaRuntimeCurrentEntityHudStatus();",
"_currentEntity?.Dispose()",
"hud.OverrideShutdown",
@ -7595,9 +7594,9 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root)
"CultMeshReactiveDocument<AetheriaRuntimeCatalogSnapshot> _catalog",
"CultMeshReactiveDocument<AetheriaRuntimePlayerSettingsDocument> _playerSettings",
"CultMeshReactiveDocument<AetheriaRuntimeCurrentEntityDocument> _currentEntity",
"ResolveClient().State.Reactive<AetheriaRuntimeCatalogSnapshot>()",
"ResolveClient().State.Reactive<AetheriaRuntimePlayerSettingsDocument>()",
"ResolveClient().State.Reactive<AetheriaRuntimeCurrentEntityDocument>()",
".Reactive<AetheriaRuntimeCatalogSnapshot>(\"unity-schematic-display\")",
".Reactive<AetheriaRuntimePlayerSettingsDocument>(\"unity-schematic-display\")",
".Reactive<AetheriaRuntimeCurrentEntityDocument>(\"unity-schematic-display\")",
"_catalog?.Dispose()",
"_playerSettings?.Dispose()",
"_currentEntity?.Dispose()",
@ -7651,7 +7650,7 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root)
var requiredVolumeCloudSymbols = new[]
{
"CultMeshReactiveDocument<AetheriaRuntimePlayerSettingsDocument> _playerSettings",
".Reactive<AetheriaRuntimePlayerSettingsDocument>()",
".Reactive<AetheriaRuntimePlayerSettingsDocument>(\"unity-volume-cloud-renderer\")",
"_playerSettings?.Dispose()",
"_playerSettings?.Current"
};
@ -8044,7 +8043,7 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root)
var requiredZoneRendererSharedDocumentSymbols = new[]
{
"CultMeshReactiveDocument<AetheriaRuntimeZoneContactsDocument> _zoneContacts",
"ResolveClient().State.Reactive<AetheriaRuntimeZoneContactsDocument>()",
".Reactive<AetheriaRuntimeZoneContactsDocument>(\"unity-zone-renderer\")",
"_zoneContacts?.Dispose()",
"_zoneContacts?.Current",
"private void OnDestroy()"
@ -8064,7 +8063,7 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root)
"ZoneRenderer",
"AetheriaRuntimeZoneContactsDocument",
"_zoneContacts",
"ResolveClient().State.Reactive<AetheriaRuntimeZoneContactsDocument>()",
".Reactive<AetheriaRuntimeZoneContactsDocument>(\"unity-zone-renderer\")",
"AetheriaRuntimeZoneContactsSession",
"ResolveClient().State.ObserveZoneContacts()");
RequireReactiveTypedDocumentAccess(
@ -8072,7 +8071,7 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root)
"ZoneRenderer",
"AetheriaRuntimeCatalogSnapshot",
"_catalog",
"ResolveClient().State.Reactive<AetheriaRuntimeCatalogSnapshot>()",
".Reactive<AetheriaRuntimeCatalogSnapshot>(\"unity-zone-renderer\")",
"AetheriaRuntimeCatalogSession",
"ResolveClient().State.ObserveCatalog()");
@ -8186,11 +8185,11 @@ static void RequireUnityViewportAndMapReadsUseManagedAccessors(string root)
.Where(symbol => !renderSplatViewportSource.Contains(symbol, StringComparison.Ordinal))
.ToArray();
if (!CompactSource(renderSplatViewportSource).Contains(
".Reactive<AetheriaRuntimeRenderSplatsViewportDocument>(viewport)",
".Reactive<AetheriaRuntimeRenderSplatsViewportDocument>(viewport,\"unity-render-splat-viewport\")",
StringComparison.Ordinal))
{
missingRenderSplatViewportSourceSymbols = missingRenderSplatViewportSourceSymbols
.Concat(new[] { ".Reactive<AetheriaRuntimeRenderSplatsViewportDocument>(viewport)" })
.Concat(new[] { ".Reactive<AetheriaRuntimeRenderSplatsViewportDocument>(viewport,\"unity-render-splat-viewport\")" })
.ToArray();
}
if (missingRenderSplatViewportSourceSymbols.Length > 0 ||
@ -8213,7 +8212,7 @@ static void RequireUnityViewportAndMapReadsUseManagedAccessors(string root)
"AetheriaUnityRenderSplatViewportSource",
"AetheriaRuntimeRenderSplatsViewportDocument",
"_renderSplatsViewport",
".Reactive<AetheriaRuntimeRenderSplatsViewportDocument>(viewport)",
".Reactive<AetheriaRuntimeRenderSplatsViewportDocument>(viewport,\"unity-render-splat-viewport\")",
"AetheriaRuntimeRenderSplatsViewportSession",
".ObserveRenderSplats(viewport)");
@ -8233,11 +8232,11 @@ static void RequireUnityViewportAndMapReadsUseManagedAccessors(string root)
.Where(symbol => !zoneRenderer.Contains(symbol, StringComparison.Ordinal))
.ToArray();
if (!CompactSource(zoneRenderer).Contains(
".Reactive<AetheriaRuntimeObjectsViewportDocument>(viewportBounds)",
".Reactive<AetheriaRuntimeObjectsViewportDocument>(viewportBounds,\"unity-zone-renderer\")",
StringComparison.Ordinal))
{
missingZoneRendererViewportSymbols = missingZoneRendererViewportSymbols
.Concat(new[] { ".Reactive<AetheriaRuntimeObjectsViewportDocument>(viewportBounds)" })
.Concat(new[] { ".Reactive<AetheriaRuntimeObjectsViewportDocument>(viewportBounds,\"unity-zone-renderer\")" })
.ToArray();
}
if (missingZoneRendererViewportSymbols.Length > 0 ||
@ -8260,7 +8259,7 @@ static void RequireUnityViewportAndMapReadsUseManagedAccessors(string root)
"ZoneRenderer",
"AetheriaRuntimeObjectsViewportDocument",
"_objectsViewport",
".Reactive<AetheriaRuntimeObjectsViewportDocument>(viewportBounds)",
".Reactive<AetheriaRuntimeObjectsViewportDocument>(viewportBounds,\"unity-zone-renderer\")",
"AetheriaRuntimeObjectsViewportSession",
".ObserveObjects(viewportBounds)");

View file

@ -116,8 +116,10 @@ public sealed class AetheriaUnityRenderSplatViewportSource : MonoBehaviour
_nextRefreshTime = Time.unscaledTime + Mathf.Max(0.02f, refreshIntervalSeconds);
try
{
var nextRenderSplatsViewport = ResolveClient()
.State.Reactive<AetheriaRuntimeRenderSplatsViewportDocument>(viewport);
var nextRenderSplatsViewport = AetheriaUnityRuntimeClientProvider
.Reactive<AetheriaRuntimeRenderSplatsViewportDocument>(
viewport,
"unity-render-splat-viewport");
ClearViewportDocument();
_viewport = viewport;
_renderSplatsViewport = nextRenderSplatsViewport;
@ -159,11 +161,4 @@ public sealed class AetheriaUnityRenderSplatViewportSource : MonoBehaviour
Mathf.Approximately(left.MaxY, right.MaxY);
}
private AetheriaClient ResolveClient()
{
return AetheriaUnityRuntimeClientProvider.ResolveClient(
AetheriaRuntimeStateBoot.Inspect(AetheriaUnityRuntimePaths.GameDataDirectory),
"unity-render-splat-viewport");
}
}

View file

@ -69,7 +69,6 @@ public class SchematicDisplay : MonoBehaviour
private EquippedCargoBay[] _cargoBays;
private SchematicDisplayItem[] _schematicItems;
private AetherDrive _aetherDrive;
private string _clientStatePath = "";
private CultMeshReactiveDocument<AetheriaRuntimeCatalogSnapshot> _catalog;
private CultMeshReactiveDocument<AetheriaRuntimePlayerSettingsDocument> _playerSettings;
private CultMeshReactiveDocument<AetheriaRuntimeCurrentEntityDocument> _currentEntity;
@ -326,7 +325,8 @@ public class SchematicDisplay : MonoBehaviour
try
{
_catalog = ResolveClient().State.Reactive<AetheriaRuntimeCatalogSnapshot>();
_catalog = AetheriaUnityRuntimeClientProvider
.Reactive<AetheriaRuntimeCatalogSnapshot>("unity-schematic-display");
}
catch (Exception ex)
{
@ -342,7 +342,8 @@ public class SchematicDisplay : MonoBehaviour
{
try
{
_playerSettings = ResolveClient().State.Reactive<AetheriaRuntimePlayerSettingsDocument>();
_playerSettings = AetheriaUnityRuntimeClientProvider
.Reactive<AetheriaRuntimePlayerSettingsDocument>("unity-schematic-display");
}
catch (Exception ex)
{
@ -359,7 +360,8 @@ public class SchematicDisplay : MonoBehaviour
{
try
{
_currentEntity = ResolveClient().State.Reactive<AetheriaRuntimeCurrentEntityDocument>();
_currentEntity = AetheriaUnityRuntimeClientProvider
.Reactive<AetheriaRuntimeCurrentEntityDocument>("unity-schematic-display");
}
catch (Exception ex)
{
@ -370,18 +372,6 @@ public class SchematicDisplay : MonoBehaviour
return _currentEntity?.Current?.Hud ?? new AetheriaRuntimeCurrentEntityHudStatus();
}
private AetheriaClient ResolveClient()
{
var stateBoot = AetheriaRuntimeStateBoot.Inspect(AetheriaUnityRuntimePaths.GameDataDirectory);
if (!string.Equals(_clientStatePath, stateBoot.StateFilePath, StringComparison.Ordinal))
{
_clientStatePath = stateBoot.StateFilePath;
ClearClientCaches();
}
return AetheriaUnityRuntimeClientProvider.ResolveClient(stateBoot, "unity-schematic-display");
}
private string FormatValue(float value)
{
var settings = ResolvePlayerSettings();

View file

@ -101,8 +101,8 @@ public class VolumeCloudRenderer : EffectBase
try
{
_playerSettings = ResolveClient()
.State.Reactive<AetheriaRuntimePlayerSettingsDocument>();
_playerSettings = AetheriaUnityRuntimeClientProvider
.Reactive<AetheriaRuntimePlayerSettingsDocument>("unity-volume-cloud-renderer");
}
catch (Exception ex)
{
@ -112,13 +112,6 @@ public class VolumeCloudRenderer : EffectBase
return _playerSettings?.Current;
}
private AetheriaClient ResolveClient()
{
return AetheriaUnityRuntimeClientProvider.ResolveClient(
AetheriaRuntimeStateBoot.Inspect(AetheriaUnityRuntimePaths.GameDataDirectory),
"unity-volume-cloud-renderer");
}
[ImageEffectOpaque]
private void OnRenderImage(RenderTexture source, RenderTexture destination) {
if (cloudShader == null) {

View file

@ -119,7 +119,6 @@ public class ZoneRenderer : MonoBehaviour
Array.Empty<AetheriaRuntimeZoneRenderAsteroidBeltPose>();
private IReadOnlyList<AetheriaRuntimeBodySnapshotCommit> _zoneRenderBodies =
Array.Empty<AetheriaRuntimeBodySnapshotCommit>();
private string _clientStatePath = "";
private CultMeshReactiveDocument<AetheriaRuntimeCatalogSnapshot> _catalog;
private CultMeshReactiveDocument<AetheriaRuntimeZoneContactsDocument> _zoneContacts;
private AetheriaRuntimeRtsViewportBounds _objectsViewportBounds;
@ -1208,7 +1207,8 @@ public class ZoneRenderer : MonoBehaviour
try
{
_catalog = ResolveClient().State.Reactive<AetheriaRuntimeCatalogSnapshot>();
_catalog = AetheriaUnityRuntimeClientProvider
.Reactive<AetheriaRuntimeCatalogSnapshot>("unity-zone-renderer");
}
catch (Exception ex)
{
@ -1225,7 +1225,8 @@ public class ZoneRenderer : MonoBehaviour
try
{
_zoneContacts = ResolveClient().State.Reactive<AetheriaRuntimeZoneContactsDocument>();
_zoneContacts = AetheriaUnityRuntimeClientProvider
.Reactive<AetheriaRuntimeZoneContactsDocument>("unity-zone-renderer");
}
catch (Exception ex)
{
@ -1243,8 +1244,10 @@ public class ZoneRenderer : MonoBehaviour
try
{
var nextObjectsViewport = ResolveClient()
.State.Reactive<AetheriaRuntimeObjectsViewportDocument>(viewportBounds);
var nextObjectsViewport = AetheriaUnityRuntimeClientProvider
.Reactive<AetheriaRuntimeObjectsViewportDocument>(
viewportBounds,
"unity-zone-renderer");
_objectsViewport?.Dispose();
_objectsViewportBounds = viewportBounds;
_objectsViewport = nextObjectsViewport;
@ -1257,20 +1260,6 @@ public class ZoneRenderer : MonoBehaviour
return _objectsViewport?.Current;
}
private AetheriaClient ResolveClient()
{
var stateBoot = AetheriaRuntimeStateBoot.Inspect(AetheriaUnityRuntimePaths.GameDataDirectory);
if (!string.Equals(_clientStatePath, stateBoot.StateFilePath, StringComparison.Ordinal))
{
_clientStatePath = stateBoot.StateFilePath;
ClearClientCaches();
}
return AetheriaUnityRuntimeClientProvider.ResolveClient(
stateBoot,
"unity-zone-renderer");
}
private void ClearClientCaches()
{
_catalog?.Dispose();