Move game feel settings to daemon authority

This commit is contained in:
Meta Vens 2026-07-05 15:23:39 +01:00
commit dc8a7b069d
4 changed files with 129 additions and 21 deletions

View file

@ -63,10 +63,7 @@ public sealed class AetheriaUnityGameplayBootShell
var loadoutItemFactory = new AetheriaUnityLoadoutItemFactory(itemManager, runtimeCatalog);
ZoneRenderer.SetDroppedPickupItemFactory(loadoutItemFactory.CreateLoadoutItem);
ZoneRenderer.BodySettingsCollections = Settings.BodySettingsCollections;
ZoneRenderer.RenderSettings = AetheriaUnityRenderSettingsBridge.Build(
Settings,
TargetSpottedBlinkFrequency,
TargetSpottedBlinkOffset);
ZoneRenderer.RenderSettings = ResolveDaemonRenderSettings(runtimeState);
CockpitHudShell.SetRenderSettings(ZoneRenderer.RenderSettings);
if (!AetheriaUnityRuntimeClientProvider.PlayerSettings.GraphicsSettings.ShowAsteroidsInMinimap)
@ -79,6 +76,22 @@ public sealed class AetheriaUnityGameplayBootShell
loadoutItemFactory);
}
private AetheriaRuntimeDaemonRenderSettings ResolveDaemonRenderSettings(AetheriaClientState runtimeState)
{
var frame = runtimeState?.DaemonFrame?.Latest();
if (frame?.RenderSettings != null)
{
Log?.Invoke($"Aetheria render/game-feel settings: daemon frame {frame.FrameId}");
return frame.RenderSettings;
}
Log?.Invoke("Aetheria render/game-feel settings: local Unity Settings fallback; daemon frame unavailable.");
return AetheriaUnityRenderSettingsBridge.Build(
Settings,
TargetSpottedBlinkFrequency,
TargetSpottedBlinkOffset);
}
private AetheriaRuntimeStateBootReport SyncRemoteReplicaBeforeBoot(AetheriaRuntimeStateBootReport stateBoot)
{
if (!ShouldSyncRemoteReplicaBeforeBoot(stateBoot))