Split ZoneRenderer asset palette from GameSettings

This commit is contained in:
Meta Vens 2026-06-22 00:36:28 +01:00
commit 21b3abca9f
3 changed files with 15 additions and 5 deletions

View file

@ -2140,6 +2140,7 @@ static void RequireDaemonRenderQueryAuthority(string root)
"public void LoadDaemonZoneView(",
"IReadOnlyDictionary<int, Entity> 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

View file

@ -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);

View file

@ -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<BodySettingsCollection>())
.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<CelestialBodySettings>();
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;
}