diff --git a/NewHorizons/Components/NHProxy.cs b/NewHorizons/Components/NHProxy.cs index fc2f9794..f9a7e37d 100644 --- a/NewHorizons/Components/NHProxy.cs +++ b/NewHorizons/Components/NHProxy.cs @@ -11,6 +11,8 @@ namespace NewHorizons.Components private GameObject _star; private Renderer[] _starRenderers; private TessellatedRenderer[] _starTessellatedRenderers; + private ParticleSystemRenderer[] _starParticleRenderers; + private SolarFlareEmitter _solarFlareEmitter; public override void Awake() { @@ -20,10 +22,12 @@ namespace NewHorizons.Components // Else it can stop the supernova effect mid way through _star = GetComponentInChildren()?.gameObject; - if(_star != null) + if (_star != null) { _starRenderers = _star.GetComponentsInChildren(); _starTessellatedRenderers = _star.GetComponentsInChildren(); + _starParticleRenderers = _star.GetComponentsInChildren(); + _solarFlareEmitter = _star.GetComponentInChildren(); } // Start off @@ -62,8 +66,13 @@ namespace NewHorizons.Components child.gameObject.SetActive(on); } - if(_star != null) + if (_star != null) { + if (_solarFlareEmitter != null) + { + _solarFlareEmitter.gameObject.SetActive(on); + } + foreach (var renderer in _starRenderers) { renderer.enabled = on; @@ -73,6 +82,11 @@ namespace NewHorizons.Components { renderer.enabled = on; } + + foreach (var renderer in _starParticleRenderers) + { + renderer.enabled = on; + } } } } diff --git a/NewHorizons/Components/QuantumPlanet.cs b/NewHorizons/Components/QuantumPlanet.cs index 2a32e6b3..9627540e 100644 --- a/NewHorizons/Components/QuantumPlanet.cs +++ b/NewHorizons/Components/QuantumPlanet.cs @@ -1,4 +1,5 @@ using NewHorizons.Builder.General; +using NewHorizons.Builder.Orbital; using NewHorizons.Components.Orbital; using NewHorizons.External.Modules; using NewHorizons.Handlers; @@ -122,12 +123,14 @@ namespace NewHorizons.Components private void SetNewOrbit(AstroObject primaryBody, OrbitalParameters orbitalParameters) { - - _astroObject._primaryBody = primaryBody; DetectorBuilder.SetDetector(primaryBody, _astroObject, _detector); + _detector._activeInheritedDetector = primaryBody.GetComponentInChildren(); + _detector._activeVolumes = new List() { primaryBody.GetGravityVolume() }; if (_alignment != null) _alignment.SetTargetBody(primaryBody.GetComponent()); + _astroObject.SetOrbitalParametersFromTrueAnomaly(orbitalParameters.Eccentricity, orbitalParameters.SemiMajorAxis, orbitalParameters.Inclination, orbitalParameters.ArgumentOfPeriapsis, orbitalParameters.LongitudeOfAscendingNode, orbitalParameters.TrueAnomaly); + PlanetCreationHandler.UpdatePosition(gameObject, orbitalParameters, primaryBody, _astroObject); if (!Physics.autoSyncTransforms) @@ -135,7 +138,7 @@ namespace NewHorizons.Components Physics.SyncTransforms(); } - _rb.SetVelocity(orbitalParameters.InitialVelocity); + _rb.SetVelocity(orbitalParameters.InitialVelocity + primaryBody.GetAttachedOWRigidbody().GetVelocity()); } private void OnPlayerBlink() diff --git a/NewHorizons/Components/SizeControllers/StarEvolutionController.cs b/NewHorizons/Components/SizeControllers/StarEvolutionController.cs index 6a0b7b1c..7d51bf9e 100644 --- a/NewHorizons/Components/SizeControllers/StarEvolutionController.cs +++ b/NewHorizons/Components/SizeControllers/StarEvolutionController.cs @@ -44,6 +44,8 @@ namespace NewHorizons.Components.SizeControllers private StarEvolutionController _proxy; + private float maxScale; + void Awake() { var sun = GameObject.FindObjectOfType(); @@ -89,6 +91,11 @@ namespace NewHorizons.Components.SizeControllers } if (willExplode) GlobalMessenger.AddListener("TriggerSupernova", Die); + + if(scaleCurve != null) + { + maxScale = scaleCurve.keys.Select(x => x.value).Max() * size; + } } public void OnDestroy() @@ -142,9 +149,12 @@ namespace NewHorizons.Components.SizeControllers { base.FixedUpdate(); - currentColour = Color.Lerp(_startColour, _endColour, ageValue); + // Use the age if theres no resizing happening, else make it get redder the larger it is or wtv + var t = ageValue; + if(maxScale > 0) t = CurrentScale / maxScale; + currentColour = Color.Lerp(_startColour, _endColour, t); - supernova._surface._materials[0].Lerp(_startSurfaceMaterial, _endSurfaceMaterial, ageValue); + supernova._surface._materials[0].Lerp(_startSurfaceMaterial, _endSurfaceMaterial, t); } else { diff --git a/NewHorizons/Handlers/PlanetCreationHandler.cs b/NewHorizons/Handlers/PlanetCreationHandler.cs index d7d5f15a..25d0527d 100644 --- a/NewHorizons/Handlers/PlanetCreationHandler.cs +++ b/NewHorizons/Handlers/PlanetCreationHandler.cs @@ -611,7 +611,7 @@ namespace NewHorizons.Handlers if (primaryBody != null) { var primaryGravity = new Gravity(primaryBody.GetGravityVolume()); - var secondaryGravity = new Gravity(secondaryBody.GetGravityVolume()); ; + var secondaryGravity = new Gravity(secondaryBody.GetGravityVolume()); go.transform.position = orbit.GetOrbitalParameters(primaryGravity, secondaryGravity).InitialPosition + primaryBody.transform.position; } diff --git a/NewHorizons/Schemas/schema.json b/NewHorizons/Schemas/schema.json index 11b65c48..3235336b 100644 --- a/NewHorizons/Schemas/schema.json +++ b/NewHorizons/Schemas/schema.json @@ -193,12 +193,12 @@ "canShowOnTitle": { "type": "boolean", "description": "Should this planet ever be shown on the title screen", - "default": "true" + "default": true }, "isQuantumState": { "type": "boolean", "description": "Does this config describe a quantum state of a custom planet defined in another file?", - "default": "false" + "default": false }, "Base": { "type": "object", @@ -950,7 +950,7 @@ "description": "For creating different objects containing translatable text.", "items": { "type": "object", - "additionalProperties": "false", + "additionalProperties": false, "properties": { "position": { "$ref": "#/$defs/vector3", @@ -989,7 +989,7 @@ "description": "Additional information about each arc in the text", "items": { "type": "object", - "additionalProperties": "false", + "additionalProperties": false, "properties": { "position": { "$ref": "#/$defs/vector2", @@ -1023,7 +1023,7 @@ "description": "Like those on Giant's Deep", "items": { "type": "object", - "additionalProperties": "false", + "additionalProperties": false, "properties": { "position": { "$ref": "#/$defs/vector3", @@ -1069,7 +1069,7 @@ "description": "Like those in the DLC", "items": { "type": "object", - "additionalProperties": "false", + "additionalProperties": false, "properties": { "position": { "$ref": "#/$defs/vector3", diff --git a/NewHorizons/manifest.json b/NewHorizons/manifest.json index df714994..e7d22558 100644 --- a/NewHorizons/manifest.json +++ b/NewHorizons/manifest.json @@ -3,7 +3,7 @@ "author": "xen, Bwc9876, & Book", "name": "New Horizons", "uniqueName": "xen.NewHorizons", - "version": "1.0.0", + "version": "1.0.1", "owmlVersion": "2.1.0", "conflicts": [ "Raicuparta.QuantumSpaceBuddies", "Vesper.AutoResume", "PacificEngine.OW_Randomizer" ], "pathsToPreserve": [ "planets", "systems", "translations" ]