diff --git a/NewHorizons/Builder/General/AmbientLightBuilder.cs b/NewHorizons/Builder/General/AmbientLightBuilder.cs index 932c6858..307683fa 100644 --- a/NewHorizons/Builder/General/AmbientLightBuilder.cs +++ b/NewHorizons/Builder/General/AmbientLightBuilder.cs @@ -3,7 +3,7 @@ namespace NewHorizons.Builder.General { public static class AmbientLightBuilder { - public static void Make(GameObject planetGO, Sector sector, float scale) + public static void Make(GameObject planetGO, Sector sector, float scale, float intensity = 0.5f) { GameObject lightGO = GameObject.Instantiate(GameObject.Find("BrittleHollow_Body/AmbientLight_BH_Surface"), sector?.transform ?? planetGO.transform); lightGO.transform.position = planetGO.transform.position; @@ -19,7 +19,7 @@ namespace NewHorizons.Builder.General light.color = new Color(0.0f, 0.0f, 0.8f, 0.0225f); light.range = scale; - light.intensity = 0.5f; + light.intensity = intensity; } } } diff --git a/NewHorizons/External/Modules/BaseModule.cs b/NewHorizons/External/Modules/BaseModule.cs index 39e14eaf..6454a5ad 100644 --- a/NewHorizons/External/Modules/BaseModule.cs +++ b/NewHorizons/External/Modules/BaseModule.cs @@ -4,7 +4,9 @@ namespace NewHorizons.External.Modules public class BaseModule { public bool HasMapMarker { get; set; } + [System.Obsolete("HasAmbientLight is deprecated, please use AmbientLight instead")] public bool HasAmbientLight { get; set; } + public float AmbientLight { get; set; } public float SurfaceGravity { get; set; } public string GravityFallOff { get; set; } = "linear"; public float SurfaceSize { get; set; } diff --git a/NewHorizons/Handlers/PlanetCreationHandler.cs b/NewHorizons/Handlers/PlanetCreationHandler.cs index 25d0527d..c15db259 100644 --- a/NewHorizons/Handlers/PlanetCreationHandler.cs +++ b/NewHorizons/Handlers/PlanetCreationHandler.cs @@ -378,7 +378,11 @@ namespace NewHorizons.Handlers { var sphereOfInfluence = GetSphereOfInfluence(body); - if (body.Config.Base.HasAmbientLight) + if (body.Config.Base.AmbientLight != 0) + { + AmbientLightBuilder.Make(go, sector, sphereOfInfluence, body.Config.Base.AmbientLight); + } + else if (body.Config.Base.HasAmbientLight) { AmbientLightBuilder.Make(go, sector, sphereOfInfluence); } diff --git a/NewHorizons/Schemas/body_schema.json b/NewHorizons/Schemas/body_schema.json index 3235336b..65675b66 100644 --- a/NewHorizons/Schemas/body_schema.json +++ b/NewHorizons/Schemas/body_schema.json @@ -209,10 +209,10 @@ "default": false, "description": "If the body should have a marker on the map screen." }, - "hasAmbientLight": { - "type": "boolean", - "default": false, - "description": "If the dark side of the body should have some slight amount of light" + "ambientLight": { + "type": "number", + "default": 0, + "description": "The intensity of light the dark side of the body should have. Timber Hearth has 1.4 for reference" }, "surfaceGravity": { "type": "number",