From 5518297fec9633afb7378e6f6918cd2d39afee78 Mon Sep 17 00:00:00 2001 From: "Nick J. Connors" Date: Sat, 8 Jan 2022 17:44:05 -0500 Subject: [PATCH] Water tint + bug fixes Removed extra star atmosphere --- NewHorizons/Builder/Body/StarBuilder.cs | 10 +++++++--- NewHorizons/Builder/Body/WaterBuilder.cs | 8 +++++++- NewHorizons/Builder/General/PlanetDestroyer.cs | 2 ++ NewHorizons/Builder/General/SpawnPointBuilder.cs | 3 ++- NewHorizons/Components/ChangeStarSystemVolume.cs | 9 ++++++++- NewHorizons/Components/ShipLogStarChartMode.cs | 1 - NewHorizons/External/BaseModule.cs | 1 + NewHorizons/Main.cs | 16 ++++++++++------ NewHorizons/Utility/Patches.cs | 1 - NewHorizons/manifest.json | 2 +- 10 files changed, 38 insertions(+), 15 deletions(-) diff --git a/NewHorizons/Builder/Body/StarBuilder.cs b/NewHorizons/Builder/Body/StarBuilder.cs index 8b2efe77..3a870540 100644 --- a/NewHorizons/Builder/Body/StarBuilder.cs +++ b/NewHorizons/Builder/Body/StarBuilder.cs @@ -61,10 +61,12 @@ namespace NewHorizons.Builder.Body sunAudio.name = "Audio_Star"; + /* var sunAtmosphere = GameObject.Instantiate(GameObject.Find("Sun_Body/Atmosphere_SUN"), starGO.transform); sunAtmosphere.transform.localPosition = Vector3.zero; sunAtmosphere.transform.localScale = Vector3.one; sunAtmosphere.name = "Atmosphere_Star"; + */ var ambientLightGO = GameObject.Instantiate(GameObject.Find("Sun_Body/AmbientLight_SUN"), starGO.transform); ambientLightGO.transform.localPosition = Vector3.zero; @@ -82,7 +84,7 @@ namespace NewHorizons.Builder.Body deathVolume.GetComponent().radius = 1f; deathVolume.name = "DestructionVolume"; - PlanetaryFogController fog = sunAtmosphere.transform.Find("FogSphere").GetComponent(); + //PlanetaryFogController fog = sunAtmosphere.transform.Find("FogSphere").GetComponent(); TessellatedSphereRenderer surface = sunSurface.GetComponent(); Light ambientLight = ambientLightGO.GetComponent(); @@ -101,12 +103,12 @@ namespace NewHorizons.Builder.Body light.color = lightColour; ambientLight.color = lightColour; - fog.fogRadius = starModule.Size * 1.2f; + //fog.fogRadius = starModule.Size * 1.2f; if(starModule.Tint != null) { var colour = starModule.Tint.ToColor32(); //sunLightController.sunColor = colour; - fog.fogTint = colour; + //fog.fogTint = colour; var sun = GameObject.Find("Sun_Body"); var mainSequenceMaterial = sun.GetComponent().GetValue("_startSurfaceMaterial"); @@ -117,6 +119,7 @@ namespace NewHorizons.Builder.Body surface.sharedMaterial.color = new Color(colour.r * mod, colour.g * mod, colour.b * mod); surface.sharedMaterial.SetTexture("_ColorRamp", ImageUtilities.TintImage(_colorOverTime, colour)); + /* sunAtmosphere.transform.Find("AtmoSphere").transform.localScale = Vector3.one * (starModule.Size + 1000)/starModule.Size; foreach (var lod in sunAtmosphere.transform.Find("AtmoSphere").GetComponentsInChildren()) { @@ -124,6 +127,7 @@ namespace NewHorizons.Builder.Body lod.material.SetFloat("_InnerRadius", starModule.Size); lod.material.SetFloat("_OuterRadius", starModule.Size + 1000); } + */ } if(starModule.SolarFlareTint != null) diff --git a/NewHorizons/Builder/Body/WaterBuilder.cs b/NewHorizons/Builder/Body/WaterBuilder.cs index b72a89f0..295eb155 100644 --- a/NewHorizons/Builder/Body/WaterBuilder.cs +++ b/NewHorizons/Builder/Body/WaterBuilder.cs @@ -7,8 +7,10 @@ namespace NewHorizons.Builder.Body { static class WaterBuilder { - public static void Make(GameObject body, Sector sector, OWRigidbody rb, float waterSize) + public static void Make(GameObject body, Sector sector, OWRigidbody rb, IPlanetConfig config) { + var waterSize = config.Base.WaterSize; + GameObject waterGO = new GameObject("Water"); waterGO.SetActive(false); waterGO.layer = 15; @@ -26,6 +28,10 @@ namespace NewHorizons.Builder.Body for(int i = 0; i < GDSharedMaterials.Length; i++) { tempArray[i] = new Material(GDSharedMaterials[i]); + if (config.Base.WaterTint != null) + { + tempArray[i].color = config.Base.WaterTint.ToColor32(); + } } // TODO: Make water module //tempArray[1].color = Color.red; diff --git a/NewHorizons/Builder/General/PlanetDestroyer.cs b/NewHorizons/Builder/General/PlanetDestroyer.cs index 4d586323..fa6fc5aa 100644 --- a/NewHorizons/Builder/General/PlanetDestroyer.cs +++ b/NewHorizons/Builder/General/PlanetDestroyer.cs @@ -139,6 +139,8 @@ namespace NewHorizons.Builder.General audioSource.Stop(); GameObject.Destroy(audioSource); } + + GameObject.Find("SunProxy(Clone)/Sun_Proxy_Body").SetActive(false); } else if(ao.GetAstroObjectName() == AstroObject.Name.DreamWorld) { diff --git a/NewHorizons/Builder/General/SpawnPointBuilder.cs b/NewHorizons/Builder/General/SpawnPointBuilder.cs index 2aec79a5..a3adedce 100644 --- a/NewHorizons/Builder/General/SpawnPointBuilder.cs +++ b/NewHorizons/Builder/General/SpawnPointBuilder.cs @@ -47,11 +47,12 @@ namespace NewHorizons.Builder.General if(Main.IsWarping) { + Logger.Log("Overriding player spawn to be inside ship"); GameObject playerSpawnGO = new GameObject("PlayerSpawnPoint"); playerSpawnGO.transform.parent = ship.transform; playerSpawnGO.layer = 8; - playerSpawnGO.transform.localPosition = Vector3.zero; + playerSpawnGO.transform.localPosition = new Vector3(0, 0, 0); playerSpawn = playerSpawnGO.AddComponent(); playerSpawnGO.transform.localRotation = Quaternion.Euler(0,0,0); diff --git a/NewHorizons/Components/ChangeStarSystemVolume.cs b/NewHorizons/Components/ChangeStarSystemVolume.cs index 3a754057..a8cddf31 100644 --- a/NewHorizons/Components/ChangeStarSystemVolume.cs +++ b/NewHorizons/Components/ChangeStarSystemVolume.cs @@ -10,9 +10,16 @@ namespace NewHorizons.Components { public string TargetSolarSystem { get; set; } + public override void Awake() + { + base.Awake(); + _deathType = DeathType.Meditation; + } + public override void VanishPlayer(OWRigidbody playerBody, RelativeLocationData entryLocation) { - Main.Instance.ChangeCurrentStarSystem(TargetSolarSystem); + //Main.Instance.ChangeCurrentStarSystem(TargetSolarSystem, PlayerState.AtFlightConsole()); + Main.Instance.ChangeCurrentStarSystem(TargetSolarSystem, false); } } } diff --git a/NewHorizons/Components/ShipLogStarChartMode.cs b/NewHorizons/Components/ShipLogStarChartMode.cs index daf49013..c68257e5 100644 --- a/NewHorizons/Components/ShipLogStarChartMode.cs +++ b/NewHorizons/Components/ShipLogStarChartMode.cs @@ -204,7 +204,6 @@ namespace NewHorizons.Components if (oldIndex != _cardIndex) { - Logger.Log($"Moving to {_cardIndex}"); _oneShotSource.PlayOneShot(global::AudioType.ShipLogMoveBetweenPlanets, 1f); _startPanTime = Time.unscaledTime; _startPanPos = _panRootPos; diff --git a/NewHorizons/External/BaseModule.cs b/NewHorizons/External/BaseModule.cs index 8ca4747c..2246e671 100644 --- a/NewHorizons/External/BaseModule.cs +++ b/NewHorizons/External/BaseModule.cs @@ -16,6 +16,7 @@ namespace NewHorizons.External public float SurfaceSize { get; set; } public float SphereOfInfluence { get; set; } public float WaterSize { get; set; } + public MColor32 WaterTint { get; set; } public float GroundSize { get; set; } public float LavaSize { get; set; } public bool HasCometTail { get; set; } diff --git a/NewHorizons/Main.cs b/NewHorizons/Main.cs index 53e41732..88d7318d 100644 --- a/NewHorizons/Main.cs +++ b/NewHorizons/Main.cs @@ -191,9 +191,9 @@ namespace NewHorizons Logger.Log("Done loading bodies"); // I don't know what these do but they look really weird from a distance - //Instance.ModHelper.Events.Unity.FireOnNextUpdate(() => PlanetDestroyer.RemoveDistantProxyClones()); + Instance.ModHelper.Events.Unity.FireOnNextUpdate(() => PlanetDestroyer.RemoveDistantProxyClones()); - if(!_currentStarSystem.Equals("SolarSystem")) Instance.ModHelper.Events.Unity.FireOnNextUpdate(() => PlanetDestroyer.RemoveSolarSystem()); + if(!_currentStarSystem.Equals("SolarSystem")) Instance.ModHelper.Events.Unity.FireInNUpdates(() => PlanetDestroyer.RemoveSolarSystem(), 2); var map = GameObject.FindObjectOfType(); if (map != null) map._maxPanDistance = FurthestOrbit * 1.5f; @@ -508,8 +508,9 @@ namespace NewHorizons if (body.Config.Base.LavaSize != 0) LavaBuilder.Make(go, sector, rb, body.Config.Base.LavaSize); + if (body.Config.Base.WaterSize != 0) - WaterBuilder.Make(go, sector, rb, body.Config.Base.WaterSize); + WaterBuilder.Make(go, sector, rb, body.Config); if (body.Config.Atmosphere != null) { @@ -547,12 +548,15 @@ namespace NewHorizons #region Change star system public void ChangeCurrentStarSystem(string newStarSystem, bool warp = false) { - _shipWarpController.WarpOut(); + Logger.Log($"Warping to {newStarSystem}"); + if(warp) _shipWarpController.WarpOut(); _currentStarSystem = newStarSystem; _isChangingStarSystem = true; _isWarping = warp; - // If the player isn't in the ship we kill them so they don't move as much - if(!warp) Locator.GetDeathManager().KillPlayer(DeathType.Meditation); + + // We kill them so they don't move as much + Locator.GetDeathManager().KillPlayer(DeathType.Meditation); + LoadManager.LoadSceneAsync(OWScene.SolarSystem, true, LoadManager.FadeType.ToBlack, 0.1f, true); } diff --git a/NewHorizons/Utility/Patches.cs b/NewHorizons/Utility/Patches.cs index ec86082a..e3ac6911 100644 --- a/NewHorizons/Utility/Patches.cs +++ b/NewHorizons/Utility/Patches.cs @@ -359,7 +359,6 @@ namespace NewHorizons.Utility { ShipLogMode currentMode = __instance._currentMode; string focusedEntryID = currentMode.GetFocusedEntryID(); - Logger.Log($"[{focusedEntryID}]"); if (!focusedEntryID.Equals("")) return true; bool flag = currentMode.Equals(__instance._mapMode); __instance._currentMode = (flag ? __instance._detectiveMode : __instance._mapMode); diff --git a/NewHorizons/manifest.json b/NewHorizons/manifest.json index 12edea5e..29356c07 100644 --- a/NewHorizons/manifest.json +++ b/NewHorizons/manifest.json @@ -3,7 +3,7 @@ "author": "xen", "name": "New Horizons", "uniqueName": "xen.NewHorizons", - "version": "0.6.0", + "version": "0.6.1", "owmlVersion": "2.1.0", "dependencies": [ "PacificEngine.OW_CommonResources" ] }