Customizable Ambient Light Intensity

https://github.com/xen-42/outer-wilds-new-horizons/issues/130
This commit is contained in:
Noah Pilarski 2022-05-18 23:40:43 -04:00
parent 07ce1a45b3
commit f6c601a208
4 changed files with 13 additions and 7 deletions

View File

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

View File

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

View File

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

View File

@ -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",