From 21b3abca9fa2b306d1d76d5d8bc0472912f14875 Mon Sep 17 00:00:00 2001 From: Meta Vens Date: Mon, 22 Jun 2026 00:36:28 +0100 Subject: [PATCH] Split ZoneRenderer asset palette from GameSettings --- Aetheria.State.Verify/Program.cs | 10 +++++++++- Assets/Scripts/Gameplay/ActionGameManager.cs | 1 + Assets/Scripts/Zone Display/ZoneRenderer.cs | 9 +++++---- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/Aetheria.State.Verify/Program.cs b/Aetheria.State.Verify/Program.cs index 7431b78b6..03084d91d 100644 --- a/Aetheria.State.Verify/Program.cs +++ b/Aetheria.State.Verify/Program.cs @@ -2140,6 +2140,7 @@ static void RequireDaemonRenderQueryAuthority(string root) "public void LoadDaemonZoneView(", "IReadOnlyDictionary observedEntityFacadesByDaemonIndex,", "AetheriaRuntimeRunCheckpointCommit daemonRun = null", + "public BodySettingsCollection[] BodySettingsCollections;", "public void ApplyDaemonFrame(", "AetheriaRuntimeZoneSnapshotCommit daemonZone,", "AetheriaRuntimeRunCheckpointCommit daemonRun)", @@ -2208,6 +2209,12 @@ static void RequireDaemonRenderQueryAuthority(string root) string.Join(", ", missingZoneRendererSymbols)); } + if (zoneRenderer.Contains("public GameSettings Settings", StringComparison.Ordinal)) + { + throw new InvalidOperationException( + "ZoneRenderer still accepts the whole Unity GameSettings object instead of explicit renderer asset/tuning inputs."); + } + var entityInstancePath = Path.Combine(root, "Assets", "Scripts", "Gameplay", "EntityInstance.cs"); var entityInstance = File.Exists(entityInstancePath) ? File.ReadAllText(entityInstancePath) @@ -2299,7 +2306,8 @@ static void RequireDaemonRenderQueryAuthority(string root) "Settings.AsteroidMeshCount", "Settings.PlanetSettings.BodyRadius", "Settings.PlanetSettings.LightRadius", - "Settings.PlanetSettings.WaveFrequency" + "Settings.PlanetSettings.WaveFrequency", + "ZoneRenderer.BodySettingsCollections = Settings.BodySettingsCollections;" }; var missingActionGameManagerRenderSymbols = requiredActionGameManagerRenderSymbols diff --git a/Assets/Scripts/Gameplay/ActionGameManager.cs b/Assets/Scripts/Gameplay/ActionGameManager.cs index 354596126..318a13e24 100644 --- a/Assets/Scripts/Gameplay/ActionGameManager.cs +++ b/Assets/Scripts/Gameplay/ActionGameManager.cs @@ -2051,6 +2051,7 @@ public class ActionGameManager : MonoBehaviour Settings.GameplaySettings, Debug.Log); LoadRuntimeLoadoutTemplates(stateBoot.StateFilePath); + ZoneRenderer.BodySettingsCollections = Settings.BodySettingsCollections; ZoneRenderer.RenderSettings = ObservedDaemonRenderSettings(); _zoomLevelIndex = ZoneRenderer.RenderSettings.ResolveDefaultMinimapZoomIndex(); ZoneRenderer.MinimapDistance = (float)ZoneRenderer.RenderSettings.ResolveMinimapDistance(_zoomLevelIndex); diff --git a/Assets/Scripts/Zone Display/ZoneRenderer.cs b/Assets/Scripts/Zone Display/ZoneRenderer.cs index b76b308b6..cd4eb6ad3 100644 --- a/Assets/Scripts/Zone Display/ZoneRenderer.cs +++ b/Assets/Scripts/Zone Display/ZoneRenderer.cs @@ -22,7 +22,7 @@ public class ZoneRenderer : MonoBehaviour public Transform WormholePrefab; public float EntityFadeTime; public Transform FogCameraParent; - public GameSettings Settings; + public BodySettingsCollection[] BodySettingsCollections; public Transform ZoneRoot; public Transform SectorBrushes; public MeshRenderer SectorBoundaryBrush; @@ -459,10 +459,11 @@ public class ZoneRenderer : MonoBehaviour else { planet = Instantiate(Planet, ZoneRoot); - var possibleSettings = Settings.BodySettingsCollections + var possibleSettings = (BodySettingsCollections ?? Array.Empty()) .Where(p => p.MinimumMass < mass) - .MaxBy(p => p.MinimumMass).BodySettings; - planet.Generator.body = possibleSettings[Random.Range(0, possibleSettings.Length)]; + .MaxBy(p => p.MinimumMass)?.BodySettings ?? Array.Empty(); + if (possibleSettings.Length > 0) + planet.Generator.body = possibleSettings[Random.Range(0, possibleSettings.Length)]; //Debug.Log($"Generating planet with {mass} mass! Choosing {planet.Generator.body.name} settings!"); //planet.Icon.material.mainTexture = planetInstance.Mass > Context.GlobalData.PlanetMass ? PlanetIcon : PlanetoidIcon; }