From d154477dc650b05a1e0c56a2e9ddbe2442d870f1 Mon Sep 17 00:00:00 2001 From: Nick Date: Tue, 28 Jun 2022 20:46:07 -0400 Subject: [PATCH] Make sun override builder better --- .../Builder/Atmosphere/SunOverrideBuilder.cs | 38 +++++++++++++++---- NewHorizons/Handlers/PlanetCreationHandler.cs | 2 +- 2 files changed, 31 insertions(+), 9 deletions(-) diff --git a/NewHorizons/Builder/Atmosphere/SunOverrideBuilder.cs b/NewHorizons/Builder/Atmosphere/SunOverrideBuilder.cs index 33ebcca3..df696f4d 100644 --- a/NewHorizons/Builder/Atmosphere/SunOverrideBuilder.cs +++ b/NewHorizons/Builder/Atmosphere/SunOverrideBuilder.cs @@ -1,21 +1,43 @@ -using NewHorizons.External.Modules; +using NewHorizons.External.Modules; +using NewHorizons.External.Modules.VariableSize; using UnityEngine; namespace NewHorizons.Builder.Atmosphere { public static class SunOverrideBuilder { - public static void Make(GameObject planetGO, Sector sector, AtmosphereModule atmo, float surfaceSize) + public static void Make(GameObject planetGO, Sector sector, AtmosphereModule atmo, WaterModule water, float surfaceSize) { GameObject overrideGO = new GameObject("SunOverride"); overrideGO.SetActive(false); overrideGO.transform.parent = sector?.transform ?? planetGO.transform; - GiantsDeepSunOverrideVolume GDSOV = overrideGO.AddComponent(); - GDSOV._sector = sector; - GDSOV._cloudsOuterRadius = atmo.size; - GDSOV._cloudsInnerRadius = atmo.size * 0.9f; - GDSOV._waterOuterRadius = surfaceSize; - GDSOV._waterInnerRadius = 0f; + if (water != null) + { + var GDSOV = overrideGO.AddComponent(); + GDSOV._sector = sector; + GDSOV._cloudsOuterRadius = atmo.clouds.outerCloudRadius; + GDSOV._cloudsInnerRadius = atmo.clouds.innerCloudRadius; + GDSOV._waterOuterRadius = water.size; + GDSOV._waterInnerRadius = 0f; + } + else + { + var sunOverride = overrideGO.AddComponent(); + sunOverride._sector = sector; + + sunOverride._overrideColor = true; + sunOverride._color = Color.black; + + sunOverride._overrideIntensity = true; + sunOverride._intensity = 0f; + + sunOverride._overrideShadowStrength = true; + sunOverride._shadowStrength = 1f; + + sunOverride.shape = SimpleVolume.Shape.Sphere; + sunOverride.height = 2; + sunOverride.radius = atmo.clouds.innerCloudRadius; + } overrideGO.transform.position = planetGO.transform.position; overrideGO.SetActive(true); diff --git a/NewHorizons/Handlers/PlanetCreationHandler.cs b/NewHorizons/Handlers/PlanetCreationHandler.cs index 003cbe4e..2c7246f3 100644 --- a/NewHorizons/Handlers/PlanetCreationHandler.cs +++ b/NewHorizons/Handlers/PlanetCreationHandler.cs @@ -447,7 +447,7 @@ namespace NewHorizons.Handlers if (!string.IsNullOrEmpty(body.Config.Atmosphere?.clouds?.texturePath)) { CloudsBuilder.Make(go, sector, body.Config.Atmosphere, body.Mod); - SunOverrideBuilder.Make(go, sector, body.Config.Atmosphere, surfaceSize); + SunOverrideBuilder.Make(go, sector, body.Config.Atmosphere, body.Config.Water, surfaceSize); } if (body.Config.Atmosphere.hasRain || body.Config.Atmosphere.hasSnow)