From 9444b49059f8eba70d0a3047d057e68cd6a67e70 Mon Sep 17 00:00:00 2001 From: TerrificTrifid <99054745+TerrificTrifid@users.noreply.github.com> Date: Tue, 8 Nov 2022 17:32:17 -0600 Subject: [PATCH] Rotation --- NewHorizons/Builder/Body/SingularityBuilder.cs | 6 ++++-- NewHorizons/Builder/Body/StellarRemnantBuilder.cs | 2 +- .../External/Modules/VariableSize/SingularityModule.cs | 5 +++++ 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/NewHorizons/Builder/Body/SingularityBuilder.cs b/NewHorizons/Builder/Body/SingularityBuilder.cs index 52b91da0..51b5d409 100644 --- a/NewHorizons/Builder/Body/SingularityBuilder.cs +++ b/NewHorizons/Builder/Body/SingularityBuilder.cs @@ -86,9 +86,10 @@ namespace NewHorizons.Builder.Body bool hasHazardVolume = !isWormHole && (pairedSingularity == null); Vector3 localPosition = singularity?.position == null ? Vector3.zero : singularity.position; + Vector3 localRotation = singularity?.rotation == null ? Vector3.zero : singularity.rotation; GameObject newSingularity = null; - newSingularity = MakeSingularity(go, sector, localPosition, polarity, horizonRadius, distortRadius, + newSingularity = MakeSingularity(go, sector, localPosition, localRotation, polarity, horizonRadius, distortRadius, hasHazardVolume, singularity.targetStarSystem, singularity.curve, singularity.hasWarpEffects, singularity.renderQueueOverride); var uniqueID = string.IsNullOrEmpty(singularity.uniqueID) ? config.name : singularity.uniqueID; @@ -132,7 +133,7 @@ namespace NewHorizons.Builder.Body blackHoleVolume._whiteHole = whiteHoleVolume; } - public static GameObject MakeSingularity(GameObject planetGO, Sector sector, Vector3 position, bool polarity, float horizon, float distort, + public static GameObject MakeSingularity(GameObject planetGO, Sector sector, Vector3 position, Vector3 rotation, bool polarity, float horizon, float distort, bool hasDestructionVolume, string targetStarSystem = null, TimeValuePair[] curve = null, bool warpEffects = true, int renderQueue = 2985) { InitPrefabs(); @@ -142,6 +143,7 @@ namespace NewHorizons.Builder.Body var singularity = new GameObject(polarity ? "BlackHole" : "WhiteHole"); singularity.transform.parent = sector?.transform ?? planetGO.transform; singularity.transform.position = planetGO.transform.TransformPoint(position); + singularity.transform.rotation = planetGO.transform.TransformRotation(Quaternion.Euler(rotation)); var singularityRenderer = MakeSingularityGraphics(singularity, polarity, horizon, distort, renderQueue); diff --git a/NewHorizons/Builder/Body/StellarRemnantBuilder.cs b/NewHorizons/Builder/Body/StellarRemnantBuilder.cs index 7788823f..f7636b23 100644 --- a/NewHorizons/Builder/Body/StellarRemnantBuilder.cs +++ b/NewHorizons/Builder/Body/StellarRemnantBuilder.cs @@ -129,7 +129,7 @@ namespace NewHorizons.Builder.Body var blackHoleSize = progenitor.size / 100; if (proxy != null) return SingularityBuilder.MakeSingularityProxy(proxy, Vector3.zero, true, blackHoleSize, blackHoleSize * 2.5f); - else return SingularityBuilder.MakeSingularity(planetGO, sector, Vector3.zero, true, blackHoleSize, blackHoleSize * 2.5f, true, string.Empty); + else return SingularityBuilder.MakeSingularity(planetGO, sector, Vector3.zero, Vector3.zero, true, blackHoleSize, blackHoleSize * 2.5f, true, string.Empty); } public static GameObject MakeProxyRemnant(GameObject planet, GameObject proxy, IModBehaviour mod, StarModule progenitor) diff --git a/NewHorizons/External/Modules/VariableSize/SingularityModule.cs b/NewHorizons/External/Modules/VariableSize/SingularityModule.cs index 550b2322..448c3cdb 100644 --- a/NewHorizons/External/Modules/VariableSize/SingularityModule.cs +++ b/NewHorizons/External/Modules/VariableSize/SingularityModule.cs @@ -35,6 +35,11 @@ namespace NewHorizons.External.Modules.VariableSize /// public MVector3 position; + /// + /// Rotation of the singularity. Determines the direction you come out of a white hole + /// + public MVector3 rotation; + /// /// Radius of the singularity. Note that this isn't the same as the event horizon, but includes the entire volume that /// has warped effects in it.