Move body icon sizing into render settings

This commit is contained in:
Meta Vens 2026-06-22 00:07:34 +01:00
commit 9da188fa57
4 changed files with 23 additions and 5 deletions

View file

@ -1833,11 +1833,13 @@ static void RequireDaemonRenderQueryAuthority(string root)
"public double DefaultViewDistance { get; }",
"public double MinimapIconScale { get; }",
"public double MinimapAsteroidSize { get; }",
"public AetheriaRuntimeExponentialCurve BodyIconSizeCurve { get; }",
"public int ResolveDefaultMinimapZoomIndex()",
"public int ResolveNextMinimapZoomIndex(int currentIndex)",
"public double ResolveMinimapDistance(int zoomIndex)",
"public double ResolveDefaultMinimapDistance()",
"public double ResolveMinimapIconSize(double minimapDistance)",
"public double ResolveBodyIconSize(double mass)",
"public double NormalizeThermalRisk(double temperature)",
"public double NormalizeHeatstrokePost(double heatstroke)",
"public double NormalizeSevereHeatstrokePost(double heatstroke)",
@ -2004,7 +2006,8 @@ static void RequireDaemonRenderQueryAuthority(string root)
ContainsUnitySettingsMember(zoneRenderer, "DefaultMinimapZoom") ||
ContainsUnitySettingsMember(zoneRenderer, "MinimapIconSize") ||
ContainsUnitySettingsMember(zoneRenderer, "DefaultViewDistance") ||
ContainsUnitySettingsMember(zoneRenderer, "MinimapAsteroidSize"))
ContainsUnitySettingsMember(zoneRenderer, "MinimapAsteroidSize") ||
ContainsUnitySettingsMember(zoneRenderer, "IconSize"))
{
throw new InvalidOperationException(
"ZoneRenderer must initialize view/minimap presentation through shared daemon render settings instead of Unity GameSettings.");
@ -2161,6 +2164,7 @@ static void RequireDaemonRenderQueryAuthority(string root)
"RenderSettings.MinimapAsteroidSize",
"RenderSettings.ResolveDefaultMinimapDistance()",
"RenderSettings.ResolveMinimapIconSize(value)",
"RenderSettings.ResolveBodyIconSize(mass)",
"AetheriaRuntimeDaemonRenderQueries.QueryWormholeExits(",
"RenderSettings.WormholeDistanceRatio",
"AddWormhole(exit)",
@ -2261,7 +2265,8 @@ static void RequireDaemonRenderQueryAuthority(string root)
"Settings.WormholeDistanceRatio",
"Settings.DefaultViewDistance",
"Settings.MinimapIconSize",
"Settings.MinimapAsteroidSize"
"Settings.MinimapAsteroidSize",
"Settings.IconSize"
};
var missingActionGameManagerRenderSymbols = requiredActionGameManagerRenderSymbols

View file

@ -564,6 +564,7 @@ public class ActionGameManager : MonoBehaviour
public AetheriaRuntimeDaemonRenderSettings ObservedDaemonRenderSettings()
{
var emissionCurve = Settings.GameplaySettings.TemperatureEmissionCurve;
var bodyIconSizeCurve = Settings.IconSize;
return new AetheriaRuntimeDaemonRenderSettings(
new AetheriaRuntimeExponentialCurve(
emissionCurve.Exponent,
@ -592,7 +593,11 @@ public class ActionGameManager : MonoBehaviour
Settings.WormholeDistanceRatio,
Settings.DefaultViewDistance,
Settings.MinimapIconSize,
Settings.MinimapAsteroidSize);
Settings.MinimapAsteroidSize,
new AetheriaRuntimeExponentialCurve(
bodyIconSizeCurve.Exponent,
bodyIconSizeCurve.Multiplier,
bodyIconSizeCurve.Constant));
}
private readonly (float2 direction, string name)[] _directions = {

View file

@ -476,7 +476,7 @@ public class ZoneRenderer : MonoBehaviour
// if (depth > _maxDepth) _maxDepth = depth;
planet.GravityWell.material.SetFloat("_Depth", gravityWellDepth);
planet.Icon.transform.position = new Vector3(0, -gravityWellDepth, 0);
planet.Icon.transform.localScale = Settings.IconSize.Evaluate(mass) * Vector3.one;
planet.Icon.transform.localScale = (float)RenderSettings.ResolveBodyIconSize(mass) * Vector3.one;
_bodyViewsByBodyKey[bodyKey] = planet;

View file

@ -68,7 +68,8 @@ namespace GameCult.Aetheria.State.Verse
double wormholeDistanceRatio = 1.0,
double defaultViewDistance = 0.0,
double minimapIconScale = 0.0,
double minimapAsteroidSize = 0.0)
double minimapAsteroidSize = 0.0,
AetheriaRuntimeExponentialCurve bodyIconSizeCurve = default)
{
TemperatureEmissionCurve = temperatureEmissionCurve;
LockIndicatorFrequency = lockIndicatorFrequency;
@ -89,6 +90,7 @@ namespace GameCult.Aetheria.State.Verse
DefaultViewDistance = Math.Max(0.0, defaultViewDistance);
MinimapIconScale = Math.Max(0.0, minimapIconScale);
MinimapAsteroidSize = Math.Max(0.0, minimapAsteroidSize);
BodyIconSizeCurve = bodyIconSizeCurve;
}
public AetheriaRuntimeExponentialCurve TemperatureEmissionCurve { get; }
@ -110,6 +112,7 @@ namespace GameCult.Aetheria.State.Verse
public double DefaultViewDistance { get; }
public double MinimapIconScale { get; }
public double MinimapAsteroidSize { get; }
public AetheriaRuntimeExponentialCurve BodyIconSizeCurve { get; }
public int ResolveDefaultMinimapZoomIndex()
{
@ -144,6 +147,11 @@ namespace GameCult.Aetheria.State.Verse
return Math.Max(0.0, minimapDistance) * MinimapIconScale;
}
public double ResolveBodyIconSize(double mass)
{
return BodyIconSizeCurve.Evaluate(Math.Max(0.0, mass));
}
public double NormalizeThermalRisk(double temperature)
{
var range = HeatstrokeTemperature - HypothermiaTemperature;