Refresh renderer queries from daemon frames

This commit is contained in:
Meta Vens 2026-06-21 17:04:07 +01:00
commit 463dc614a3
3 changed files with 24 additions and 10 deletions

View file

@ -1994,6 +1994,9 @@ static void RequireDaemonRenderQueryAuthority(string root)
"private readonly List<AetheriaRuntimeDaemonWormholeExit> _daemonWormholeExits",
"public Dictionary<int, (GameObject gravity, CompassIcon icon)> WormholeInstances",
"AetheriaRuntimeRunCheckpointCommit daemonRun = null",
"public void ApplyDaemonFrame(",
"AetheriaRuntimeZoneSnapshotCommit daemonZone,",
"AetheriaRuntimeRunCheckpointCommit daemonRun)",
"_daemonZoneSnapshot = daemonZone;",
"_daemonRunSnapshot = daemonRun;",
"AetheriaRuntimeDaemonRenderQueries.EvaluateGravityTerrainHeight(",
@ -7674,6 +7677,7 @@ static void RequireMainMenuContinueRunState(string root)
"run.CurrentEntityKey",
"CreateDaemonEntitySnapshots(runId, daemonZone)",
"CanApplyDaemonEntitySnapshotsInPlace",
"ZoneRenderer?.ApplyDaemonFrame(daemonZone, run)",
"ApplyDaemonEntitySnapshotsInPlace",
"ReplaceZoneEntitiesFromTypedSnapshots",
"RestoreChildAndDockingRelationships",
@ -7921,6 +7925,7 @@ static void RequireUnityObserverDoesNotTickLocalSimulation(string root)
"observed.IsAuthoritative",
"TryRestoreEntityGraphFromDaemonRun(observed.Run)",
"CreateDaemonZoneConstructionBlueprint(daemonZone)",
"ZoneRenderer?.ApplyDaemonFrame(daemonZone, run)",
"CreateDaemonEntitySnapshots(runId, daemonZone)",
"FindCurrentDaemonZoneSnapshot()",
"ResolveDaemonObserver()?.LastObservedState?.Run",

View file

@ -2229,6 +2229,7 @@ public class ActionGameManager : MonoBehaviour
if (CanApplyDaemonEntitySnapshotsInPlace(runId, run.CurrentZoneIndex, entitySnapshots, currentEntityKey))
{
ZoneRenderer?.ApplyDaemonFrame(daemonZone, run);
RestoreDroppedPickupsFromDaemonZoneState(daemonZone);
return true;
}
@ -2243,6 +2244,7 @@ public class ActionGameManager : MonoBehaviour
.Where(binding => binding != null)
.ToArray() ?? Array.Empty<AetheriaRuntimeActionBarBindingSnapshot>();
ReplaceZoneEntitiesFromTypedSnapshots(entitySnapshots, currentEntityKey, actionBarBindings);
ZoneRenderer?.ApplyDaemonFrame(daemonZone, run);
RestoreDroppedPickupsFromDaemonZoneState(daemonZone);
_lastAppliedAuthoritativeDaemonRunId = runId;
_lastAppliedAuthoritativeDaemonZoneIndex = run.CurrentZoneIndex;

View file

@ -201,14 +201,7 @@ public class ZoneRenderer : MonoBehaviour
{
ClearZone();
Zone = zone;
_daemonRunSnapshot = daemonRun;
_daemonZoneSnapshot = daemonZone;
var zoneRenderRadius = (float)AetheriaRuntimeDaemonRenderQueries.ResolveZoneRenderRadius(
_daemonZoneSnapshot,
zone.Radius);
SectorBrushes.localScale = zoneRenderRadius * 2 * Vector3.one;
SlimeGravityCamera.orthographicSize = zoneRenderRadius;
SlimeRenderer.ZoneRadius = zoneRenderRadius;
ApplyDaemonFrame(daemonZone, daemonRun);
RefreshDaemonBodyPoses();
RefreshDaemonAsteroidBeltPoses();
var beltPosesByBodyKey = _daemonAsteroidBeltPoses
@ -248,14 +241,28 @@ public class ZoneRenderer : MonoBehaviour
}
}
foreach (var exit in _daemonWormholeExits)
AddWormhole(exit);
}
public void ApplyDaemonFrame(
AetheriaRuntimeZoneSnapshotCommit daemonZone,
AetheriaRuntimeRunCheckpointCommit daemonRun)
{
_daemonRunSnapshot = daemonRun;
_daemonZoneSnapshot = daemonZone;
var zoneRenderRadius = (float)AetheriaRuntimeDaemonRenderQueries.ResolveZoneRenderRadius(
_daemonZoneSnapshot,
Zone?.Radius ?? 2000);
SectorBrushes.localScale = zoneRenderRadius * 2 * Vector3.one;
SlimeGravityCamera.orthographicSize = zoneRenderRadius;
SlimeRenderer.ZoneRadius = zoneRenderRadius;
AetheriaRuntimeDaemonRenderQueries.QueryWormholeExits(
_daemonRunSnapshot,
_daemonZoneSnapshot,
zoneRenderRadius,
Settings.WormholeDistanceRatio,
_daemonWormholeExits);
foreach (var exit in _daemonWormholeExits)
AddWormhole(exit);
}
public void AddWormhole(AetheriaRuntimeDaemonWormholeExit exit)