diff --git a/NewHorizons/Builder/Atmosphere/AtmosphereBuilder.cs b/NewHorizons/Builder/Atmosphere/AtmosphereBuilder.cs index cefbe67c..1553b50b 100644 --- a/NewHorizons/Builder/Atmosphere/AtmosphereBuilder.cs +++ b/NewHorizons/Builder/Atmosphere/AtmosphereBuilder.cs @@ -46,6 +46,7 @@ namespace NewHorizons.Builder.Atmosphere atmo.name = "Atmosphere"; atmo.transform.localPosition = Vector3.zero; atmo.transform.localEulerAngles = Vector3.zero; + atmo.SetActive(true); Material material; diff --git a/NewHorizons/Builder/Body/CometTailBuilder.cs b/NewHorizons/Builder/Body/CometTailBuilder.cs index 92267af6..6cb8c267 100644 --- a/NewHorizons/Builder/Body/CometTailBuilder.cs +++ b/NewHorizons/Builder/Body/CometTailBuilder.cs @@ -25,6 +25,8 @@ namespace NewHorizons.Builder.Body if (config.Base.cometTailRotation != null) alignment = config.Base.cometTailRotation; cometTail.transform.rotation = Quaternion.Euler(alignment); + + cometTail.SetActive(true); } } } diff --git a/NewHorizons/Builder/Body/FunnelBuilder.cs b/NewHorizons/Builder/Body/FunnelBuilder.cs index 70cc97fe..dd96ac56 100644 --- a/NewHorizons/Builder/Body/FunnelBuilder.cs +++ b/NewHorizons/Builder/Body/FunnelBuilder.cs @@ -62,12 +62,15 @@ namespace NewHorizons.Builder.Body var proxyGO = GameObject.Instantiate(_proxySandFunnel, scaleRoot.transform); proxyGO.name = "Proxy_Funnel"; + proxyGO.SetActive(true); var geoGO = GameObject.Instantiate(_geoSandFunnel, scaleRoot.transform); geoGO.name = "Geo_Funnel"; + geoGO.SetActive(true); var volumesGO = GameObject.Instantiate(_volumesSandFunnel, scaleRoot.transform); volumesGO.name = "Volumes_Funnel"; + volumesGO.SetActive(true); var sfv = volumesGO.GetComponentInChildren(); var fluidVolume = sfv.gameObject; switch (funnelType) diff --git a/NewHorizons/Builder/Body/LavaBuilder.cs b/NewHorizons/Builder/Body/LavaBuilder.cs index b8fe5aaa..7a6628b2 100644 --- a/NewHorizons/Builder/Body/LavaBuilder.cs +++ b/NewHorizons/Builder/Body/LavaBuilder.cs @@ -47,12 +47,14 @@ namespace NewHorizons.Builder.Body lavaSphere.transform.name = "LavaSphere"; lavaSphere.GetComponent().material.SetFloat(HeightScale, heightScale); if (module.tint != null) lavaSphere.GetComponent().material.SetColor(EmissionColor, module.tint.ToColor()); + lavaSphere.SetActive(true); var sectorCullGroup = lavaSphere.GetComponent(); sectorCullGroup.SetSector(sector); var moltenCoreProxy = GameObject.Instantiate(_moltenCoreProxy, moltenCore.transform); ; moltenCoreProxy.name = "MoltenCore_Proxy"; + moltenCoreProxy.SetActive(true); var proxyLavaSphere = moltenCoreProxy.transform.Find("LavaSphere (1)"); proxyLavaSphere.transform.localScale = Vector3.one; diff --git a/NewHorizons/Builder/Body/SandBuilder.cs b/NewHorizons/Builder/Body/SandBuilder.cs index cc08a782..ebd3fb70 100644 --- a/NewHorizons/Builder/Body/SandBuilder.cs +++ b/NewHorizons/Builder/Body/SandBuilder.cs @@ -28,6 +28,7 @@ namespace NewHorizons.Builder.Body var sandSphere = GameObject.Instantiate(_sandSphere, sandGO.transform); sandSphere.name = "Sphere"; + sandSphere.SetActive(true); if (module.tint != null) { var oldMR = sandSphere.GetComponent(); @@ -50,11 +51,13 @@ namespace NewHorizons.Builder.Body var occlusionSphere = GameObject.Instantiate(_sandOcclusion, sandGO.transform); occlusionSphere.name = "Occlusion"; + occlusionSphere.SetActive(true); var proxyShadowCasterGO = GameObject.Instantiate(_sandProxyShadowCaster, sandGO.transform); proxyShadowCasterGO.name = "ProxyShadowCaster"; var proxyShadowCaster = proxyShadowCasterGO.GetComponent(); proxyShadowCaster.SetSuperGroup(sandGO.GetComponent()); + proxyShadowCasterGO.SetActive(true); sandSphere.AddComponent(); diff --git a/NewHorizons/Builder/Body/SingularityBuilder.cs b/NewHorizons/Builder/Body/SingularityBuilder.cs index 8042e486..b3bb781c 100644 --- a/NewHorizons/Builder/Body/SingularityBuilder.cs +++ b/NewHorizons/Builder/Body/SingularityBuilder.cs @@ -159,6 +159,7 @@ namespace NewHorizons.Builder.Body { var blackHoleAmbience = GameObject.Instantiate(_blackHoleAmbience, blackHole.transform); blackHoleAmbience.name = "BlackHoleAmbience"; + blackHoleAmbience.SetActive(true); blackHoleAmbience.GetComponent().SetSector(sector); var blackHoleAudioSource = blackHoleAmbience.GetComponent(); @@ -169,6 +170,7 @@ namespace NewHorizons.Builder.Body var blackHoleOneShot = GameObject.Instantiate(_blackHoleEmissionOneShot, blackHole.transform); blackHoleOneShot.name = "BlackHoleEmissionOneShot"; + blackHoleOneShot.SetActive(true); var oneShotAudioSource = blackHoleOneShot.GetComponent(); oneShotAudioSource.maxDistance = size * 3f; oneShotAudioSource.minDistance = size * 0.4f; @@ -199,6 +201,7 @@ namespace NewHorizons.Builder.Body { var blackHoleVolume = GameObject.Instantiate(_blackHoleVolume, blackHole.transform); blackHoleVolume.name = "BlackHoleVolume"; + blackHoleVolume.SetActive(true); var blackHoleSphereCollider = blackHoleVolume.GetComponent(); blackHoleSphereCollider.radius = size * 0.4f; if (sizeController != null) sizeController.sphereCollider = blackHoleSphereCollider; @@ -270,6 +273,7 @@ namespace NewHorizons.Builder.Body ambientLight.transform.localScale = Vector3.one; ambientLight.transform.localPosition = Vector3.zero; ambientLight.name = "AmbientLight"; + ambientLight.SetActive(true); var light = ambientLight.GetComponent(); light.range = size * 7f; if (sizeController != null) sizeController.light = light; @@ -280,6 +284,7 @@ namespace NewHorizons.Builder.Body whiteHoleVolumeGO.transform.localScale = Vector3.one; whiteHoleVolumeGO.GetComponent().radius = size; whiteHoleVolumeGO.name = "WhiteHoleVolume"; + whiteHoleVolumeGO.SetActive(true); if (sizeController != null) sizeController.sphereCollider = whiteHoleVolumeGO.GetComponent(); var whiteHoleFluidVolume = whiteHoleVolumeGO.GetComponent(); @@ -306,6 +311,7 @@ namespace NewHorizons.Builder.Body var zeroGVolume = GameObject.Instantiate(_whiteHoleZeroGVolume, whiteHole.transform); zeroGVolume.name = "ZeroGVolume"; zeroGVolume.transform.localPosition = Vector3.zero; + zeroGVolume.SetActive(true); zeroGVolume.GetComponent().radius = size * 10f; zeroGVolume.GetComponent()._attachedBody = OWRB; @@ -313,6 +319,7 @@ namespace NewHorizons.Builder.Body rulesetVolume.name = "RulesetVolume"; rulesetVolume.transform.localPosition = Vector3.zero; rulesetVolume.transform.localScale = Vector3.one * size / 100f; + rulesetVolume.SetActive(true); rulesetVolume.GetComponent().enabled = true; if (sizeController != null) diff --git a/NewHorizons/Builder/Body/StarBuilder.cs b/NewHorizons/Builder/Body/StarBuilder.cs index 0933fa50..af2cf59f 100644 --- a/NewHorizons/Builder/Body/StarBuilder.cs +++ b/NewHorizons/Builder/Body/StarBuilder.cs @@ -66,6 +66,7 @@ namespace NewHorizons.Builder.Body surfaceAudio.SetSector(sector); sunAudio.name = "Audio_Star"; + sunAudio.SetActive(true); GameObject sunAtmosphere = null; if (starModule.hasAtmosphere) @@ -74,6 +75,7 @@ namespace NewHorizons.Builder.Body sunAtmosphere.transform.position = planetGO.transform.position; sunAtmosphere.transform.localScale = Vector3.one * OuterRadiusRatio; sunAtmosphere.name = "Atmosphere_Star"; + sunAtmosphere.SetActive(true); var atmospheres = sunAtmosphere.transform.Find("AtmoSphere"); atmospheres.transform.localScale = Vector3.one; @@ -102,6 +104,7 @@ namespace NewHorizons.Builder.Body var ambientLightGO = Object.Instantiate(_starAmbientLight, starGO.transform); ambientLightGO.transform.localPosition = Vector3.zero; ambientLightGO.name = "AmbientLight_Star"; + ambientLightGO.SetActive(true); Light ambientLight = ambientLightGO.GetComponent(); ambientLight.range = starModule.size * OuterRadiusRatio; @@ -227,6 +230,7 @@ namespace NewHorizons.Builder.Body sunAtmosphere.transform.position = proxyGO.transform.position; sunAtmosphere.transform.localScale = Vector3.one * OuterRadiusRatio; sunAtmosphere.name = "Atmosphere_Star"; + sunAtmosphere.SetActive(true); atmosphere = sunAtmosphere.transform.Find("Atmosphere_LOD2").GetComponent(); atmosphere.transform.localScale = Vector3.one; @@ -321,11 +325,13 @@ namespace NewHorizons.Builder.Body sunSurface.transform.position = rootObject.transform.position; sunSurface.transform.localScale = Vector3.one; sunSurface.name = "Surface"; + sunSurface.SetActive(true); var solarFlareEmitter = Object.Instantiate(_starSolarFlareEmitter, starGO.transform); solarFlareEmitter.transform.localPosition = Vector3.zero; solarFlareEmitter.transform.localScale = Vector3.one; solarFlareEmitter.name = "SolarFlareEmitter"; + solarFlareEmitter.SetActive(true); if (starModule.tint != null) { diff --git a/NewHorizons/Builder/Body/WaterBuilder.cs b/NewHorizons/Builder/Body/WaterBuilder.cs index 08e6e598..1ea6df3f 100644 --- a/NewHorizons/Builder/Body/WaterBuilder.cs +++ b/NewHorizons/Builder/Body/WaterBuilder.cs @@ -113,6 +113,7 @@ namespace NewHorizons.Builder.Body fogGO.name = "OceanFog"; fogGO.transform.localPosition = Vector3.zero; fogGO.transform.localScale = Vector3.one; + fogGO.SetActive(true); if (module.tint != null) { diff --git a/NewHorizons/Builder/Props/ProjectionBuilder.cs b/NewHorizons/Builder/Props/ProjectionBuilder.cs index b03a6faf..88b7cd7a 100644 --- a/NewHorizons/Builder/Props/ProjectionBuilder.cs +++ b/NewHorizons/Builder/Props/ProjectionBuilder.cs @@ -314,6 +314,8 @@ namespace NewHorizons.Builder.Props // Idk why but it wants reveals to be comma delimited not a list if (info.reveals != null) slideCollectionContainer._shipLogOnComplete = string.Join(",", info.reveals); + g.SetActive(true); + return g; } @@ -410,6 +412,8 @@ namespace NewHorizons.Builder.Props // Idk why but it wants reveals to be comma delimited not a list if (info.reveals != null) slideCollectionContainer._shipLogOnComplete = string.Join(",", info.reveals); + standingTorch.SetActive(true); + return standingTorch; } diff --git a/NewHorizons/Builder/Props/RaftBuilder.cs b/NewHorizons/Builder/Props/RaftBuilder.cs index 4f22b1bb..2b5d970a 100644 --- a/NewHorizons/Builder/Props/RaftBuilder.cs +++ b/NewHorizons/Builder/Props/RaftBuilder.cs @@ -25,11 +25,11 @@ namespace NewHorizons.Builder.Props } } - public static void Make(GameObject planetGO, Sector sector, PropModule.RaftInfo info, OWRigidbody planetBody) + public static GameObject Make(GameObject planetGO, Sector sector, PropModule.RaftInfo info, OWRigidbody planetBody) { InitPrefab(); - if (_prefab == null) return; + if (_prefab == null) return null; GameObject raftObject = _prefab.InstantiateInactive(); raftObject.name = "Raft_Body"; @@ -63,6 +63,8 @@ namespace NewHorizons.Builder.Props } raftObject.SetActive(true); + + return raftObject; } } } diff --git a/NewHorizons/Components/NHProxy.cs b/NewHorizons/Components/NHProxy.cs index 6213364e..92a81e0e 100644 --- a/NewHorizons/Components/NHProxy.cs +++ b/NewHorizons/Components/NHProxy.cs @@ -41,26 +41,26 @@ namespace NewHorizons.Components // The star part cant be disabled like the rest and we have to manually disable the renderers // Else it can stop the supernova effect mid way through - StarEvolutionControllers = GetComponentsInChildren(); + StarEvolutionControllers = GetComponentsInChildren(true); _stars = StarEvolutionControllers.Select(x => x.gameObject).ToArray(); foreach (var star in _stars) { - _starRenderers = _starRenderers.Concat(star.GetComponentsInChildren()); - _starTessellatedRenderers = _starTessellatedRenderers.Concat(star.GetComponentsInChildren()); - _starParticleRenderers = _starParticleRenderers.Concat(star.GetComponentsInChildren()); - _solarFlareEmitter = _solarFlareEmitter.Append(star.GetComponentInChildren()); + _starRenderers = _starRenderers.Concat(star.GetComponentsInChildren(true)); + _starTessellatedRenderers = _starTessellatedRenderers.Concat(star.GetComponentsInChildren(true)); + _starParticleRenderers = _starParticleRenderers.Concat(star.GetComponentsInChildren(true)); + _solarFlareEmitter = _solarFlareEmitter.Append(star.GetComponentInChildren(true)); } - var progenitorEvolutionController = root.GetComponentInChildren(); + var progenitorEvolutionController = root.GetComponentInChildren(true); if (progenitorEvolutionController != null && stellarRemnantGO != null) { progenitorEvolutionController.SetStellarRemnant(stellarRemnantGO); } - if (lightningGenerator == null) lightningGenerator = GetComponentInChildren(); + if (lightningGenerator == null) lightningGenerator = GetComponentInChildren(true); - if (supernovaPlanetEffectController == null) supernovaPlanetEffectController = GetComponentInChildren(); + if (supernovaPlanetEffectController == null) supernovaPlanetEffectController = GetComponentInChildren(true); // Start off _outOfRange = false; diff --git a/NewHorizons/Components/SizeControllers/StarEvolutionController.cs b/NewHorizons/Components/SizeControllers/StarEvolutionController.cs index ce904cca..f84cf676 100644 --- a/NewHorizons/Components/SizeControllers/StarEvolutionController.cs +++ b/NewHorizons/Components/SizeControllers/StarEvolutionController.cs @@ -96,18 +96,18 @@ namespace NewHorizons.Components.SizeControllers public static void Init() { - var sun = GameObject.FindObjectOfType(); + var sun = SearchUtilities.Find("Sun_Body").GetComponent(); if (sun == null) return; // Need to grab all this early bc the star might only Start after the solar system was made (remnants) - _defaultCollapseStartSurfaceMaterial = new Material(sun._collapseStartSurfaceMaterial); - _defaultCollapseEndSurfaceMaterial = new Material(sun._collapseEndSurfaceMaterial); - _defaultStartSurfaceMaterial = new Material(sun._startSurfaceMaterial); - _defaultEndSurfaceMaterial = new Material(sun._endSurfaceMaterial); + if (_defaultCollapseStartSurfaceMaterial == null) _defaultCollapseStartSurfaceMaterial = new Material(sun._collapseStartSurfaceMaterial).DontDestroyOnLoad(); + if (_defaultCollapseEndSurfaceMaterial == null) _defaultCollapseEndSurfaceMaterial = new Material(sun._collapseEndSurfaceMaterial).DontDestroyOnLoad(); + if (_defaultStartSurfaceMaterial == null) _defaultStartSurfaceMaterial = new Material(sun._startSurfaceMaterial).DontDestroyOnLoad(); + if (_defaultEndSurfaceMaterial == null) _defaultEndSurfaceMaterial = new Material(sun._endSurfaceMaterial).DontDestroyOnLoad(); - _defaultNormalRamp = sun._startSurfaceMaterial.GetTexture(ColorRamp); - _defaultCollapseRamp = sun._collapseStartSurfaceMaterial.GetTexture(ColorRamp); + if (_defaultNormalRamp == null) _defaultNormalRamp = sun._startSurfaceMaterial.GetTexture(ColorRamp).DontDestroyOnLoad(); + if (_defaultCollapseRamp == null) _defaultCollapseRamp = sun._collapseStartSurfaceMaterial.GetTexture(ColorRamp).DontDestroyOnLoad(); } private void Start() diff --git a/NewHorizons/Main.cs b/NewHorizons/Main.cs index 8b6e13b7..b4661ef3 100644 --- a/NewHorizons/Main.cs +++ b/NewHorizons/Main.cs @@ -277,6 +277,7 @@ namespace NewHorizons SandBuilder.InitPrefabs(); SingularityBuilder.InitPrefabs(); StarBuilder.InitPrefabs(); + StarEvolutionController.Init(); SupernovaEffectBuilder.InitPrefabs(); TornadoBuilder.InitPrefabs(); VolcanoBuilder.InitPrefab(); @@ -444,6 +445,14 @@ namespace NewHorizons solarSystemRoot.AddComponent(); + var distantSun = eyeSector.gameObject.FindChild("DistantSun/Directional light"); + var starController = distantSun.AddComponent(); + starController.Light = distantSun.GetComponent(); + starController.Intensity = 0.2f; + starController.SunColor = new Color(0.3569f, 0.7843f, 1, 1); + distantSun.AddComponent().Awake(); + StarLightController.AddStar(starController); + if (IsWarpingFromShip && _ship != null) { var eyeShip = GameObject.Instantiate(_ship); @@ -470,7 +479,6 @@ namespace NewHorizons RemoteHandler.Init(); AtmosphereBuilder.Init(); BrambleNodeBuilder.Init(BodyDict[CurrentStarSystem].Select(x => x.Config).Where(x => x.Bramble?.dimension != null).ToArray()); - StarEvolutionController.Init(); if (isSolarSystem) {