Refresh renderer queries from daemon frames
This commit is contained in:
parent
75bb1dabbf
commit
463dc614a3
3 changed files with 24 additions and 10 deletions
|
|
@ -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",
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
Loading…
Reference in a new issue