diff --git a/NewHorizons/Builder/Atmosphere/AirBuilder.cs b/NewHorizons/Builder/Atmosphere/AirBuilder.cs index 209a2b26..e4518e4c 100644 --- a/NewHorizons/Builder/Atmosphere/AirBuilder.cs +++ b/NewHorizons/Builder/Atmosphere/AirBuilder.cs @@ -9,7 +9,7 @@ namespace NewHorizons.Builder.Atmosphere var airGO = new GameObject("Air"); airGO.SetActive(false); airGO.layer = 17; - airGO.transform.parent = sector?.transform ? sector.transform : planetGO.transform; + airGO.transform.parent = sector?.transform ?? planetGO.transform; var sc = airGO.AddComponent(); sc.isTrigger = true; diff --git a/NewHorizons/Builder/Props/BrambleNodeBuilder.cs b/NewHorizons/Builder/Props/BrambleNodeBuilder.cs index 48bfc824..6acfd8c1 100644 --- a/NewHorizons/Builder/Props/BrambleNodeBuilder.cs +++ b/NewHorizons/Builder/Props/BrambleNodeBuilder.cs @@ -192,7 +192,7 @@ namespace NewHorizons.Builder.Props var outerFogWarpVolume = GetOuterFogWarpVolumeFromAstroObject(go); var fogLight = brambleNode.GetComponent(); - brambleNode.transform.parent = sector.transform; + brambleNode.transform.parent = sector?.transform ?? go.transform; brambleNode.transform.position = go.transform.TransformPoint(config.position ?? Vector3.zero); brambleNode.transform.rotation = go.transform.TransformRotation(Quaternion.Euler(config.rotation ?? Vector3.zero)); brambleNode.name = config.name ?? "Bramble Node to " + config.linksTo; diff --git a/NewHorizons/Builder/Props/QuantumBuilder.cs b/NewHorizons/Builder/Props/QuantumBuilder.cs index 3dd81c3b..8a5a383b 100644 --- a/NewHorizons/Builder/Props/QuantumBuilder.cs +++ b/NewHorizons/Builder/Props/QuantumBuilder.cs @@ -41,7 +41,7 @@ namespace NewHorizons.Builder.Props public static void MakeSocketGroup(GameObject go, Sector sector, PlanetConfig config, IModBehaviour mod, PropModule.QuantumGroupInfo quantumGroup, GameObject[] propsInGroup) { var groupRoot = new GameObject("Quantum Sockets - " + quantumGroup.id); - groupRoot.transform.parent = sector.transform; + groupRoot.transform.parent = sector?.transform ?? go.transform; groupRoot.transform.localPosition = Vector3.zero; groupRoot.transform.localEulerAngles = Vector3.zero; @@ -79,7 +79,7 @@ namespace NewHorizons.Builder.Props public static void MakeStateGroup(GameObject go, Sector sector, PlanetConfig config, IModBehaviour mod, PropModule.QuantumGroupInfo quantumGroup, GameObject[] propsInGroup) { var groupRoot = new GameObject("Quantum States - " + quantumGroup.id); - groupRoot.transform.parent = sector.transform; + groupRoot.transform.parent = sector?.transform ?? go.transform; groupRoot.transform.localPosition = Vector3.zero; var states = new List(); @@ -128,7 +128,7 @@ namespace NewHorizons.Builder.Props //var averagePosition = propsInGroup.Aggregate(Vector3.zero, (avg, prop) => avg + prop.transform.position) / propsInGroup.Count(); GameObject shuffleParent = new GameObject("Quantum Shuffle - " + quantumGroup.id); shuffleParent.SetActive(false); - shuffleParent.transform.parent = sector.transform; + shuffleParent.transform.parent = sector?.transform ?? go.transform; shuffleParent.transform.localPosition = Vector3.zero; propsInGroup.ToList().ForEach(p => p.transform.parent = shuffleParent.transform); diff --git a/NewHorizons/Builder/Props/TornadoBuilder.cs b/NewHorizons/Builder/Props/TornadoBuilder.cs index d7fef963..9ec65b5b 100644 --- a/NewHorizons/Builder/Props/TornadoBuilder.cs +++ b/NewHorizons/Builder/Props/TornadoBuilder.cs @@ -100,9 +100,9 @@ namespace NewHorizons.Builder.Props { var tornadoGO = downwards ? _downPrefab.InstantiateInactive() : _upPrefab.InstantiateInactive(); tornadoGO.name = downwards ? "Tornado_Down" : "Tornado_Up"; - tornadoGO.transform.parent = sector.transform; + tornadoGO.transform.parent = sector?.transform ?? planetGO.transform; tornadoGO.transform.position = planetGO.transform.TransformPoint(position); - tornadoGO.transform.rotation = Quaternion.FromToRotation(Vector3.up, sector.transform.TransformDirection(position.normalized)); + tornadoGO.transform.rotation = Quaternion.FromToRotation(Vector3.up, planetGO.transform.TransformDirection(position.normalized)); // Add the sound thing before changing the scale var soundGO = _soundPrefab.InstantiateInactive(); @@ -168,7 +168,7 @@ namespace NewHorizons.Builder.Props if (info.wanderRate != 0) { - ApplyWanderer(tornadoGO, sector, info); + ApplyWanderer(tornadoGO, planetGO, info); } soundGO.SetActive(true); @@ -179,9 +179,9 @@ namespace NewHorizons.Builder.Props { var hurricaneGO = _hurricanePrefab.InstantiateInactive(); hurricaneGO.name = "Hurricane"; - hurricaneGO.transform.parent = sector.transform; + hurricaneGO.transform.parent = sector?.transform ?? planetGO.transform; hurricaneGO.transform.position = planetGO.transform.TransformPoint(position); - hurricaneGO.transform.rotation = Quaternion.FromToRotation(Vector3.up, sector.transform.TransformDirection(position.normalized)); + hurricaneGO.transform.rotation = Quaternion.FromToRotation(Vector3.up, planetGO.transform.TransformDirection(position.normalized)); var fluidVolume = hurricaneGO.GetComponentInChildren(); fluidVolume._fluidType = info.fluidType.ConvertToOW(FluidVolume.Type.CLOUD); @@ -227,7 +227,7 @@ namespace NewHorizons.Builder.Props if (info.wanderRate != 0) { - ApplyWanderer(hurricaneGO, sector, info); + ApplyWanderer(hurricaneGO, planetGO, info); } hurricaneGO.SetActive(true); @@ -263,13 +263,13 @@ namespace NewHorizons.Builder.Props } } - private static void ApplyWanderer(GameObject go, Sector sector, PropModule.TornadoInfo info) + private static void ApplyWanderer(GameObject go, GameObject planetGO, PropModule.TornadoInfo info) { var wanderer = go.AddComponent(); wanderer.wanderRate = info.wanderRate; wanderer.wanderDegreesX = info.wanderDegreesX; wanderer.wanderDegreesZ = info.wanderDegreesZ; - wanderer.sector = sector; + wanderer.planetGO = planetGO; } } } diff --git a/NewHorizons/Builder/Props/VolcanoBuilder.cs b/NewHorizons/Builder/Props/VolcanoBuilder.cs index df8e549b..dd449e1f 100644 --- a/NewHorizons/Builder/Props/VolcanoBuilder.cs +++ b/NewHorizons/Builder/Props/VolcanoBuilder.cs @@ -44,7 +44,7 @@ namespace NewHorizons.Builder.Props InitPrefab(); var launcherGO = _meteorLauncherPrefab.InstantiateInactive(); - launcherGO.transform.parent = sector.transform; + launcherGO.transform.parent = sector?.transform ?? planetGO.transform; launcherGO.transform.position = planetGO.transform.TransformPoint(info.position == null ? Vector3.zero : (Vector3)info.position); launcherGO.transform.rotation = Quaternion.FromToRotation(launcherGO.transform.TransformDirection(Vector3.up), ((Vector3)info.position).normalized).normalized; launcherGO.name = "MeteorLauncher"; diff --git a/NewHorizons/Components/NHTornadoWanderController.cs b/NewHorizons/Components/NHTornadoWanderController.cs index ea65be11..6d8dcd0e 100644 --- a/NewHorizons/Components/NHTornadoWanderController.cs +++ b/NewHorizons/Components/NHTornadoWanderController.cs @@ -7,7 +7,7 @@ namespace NewHorizons.Components public float wanderRate; public float wanderDegreesX; public float wanderDegreesZ; - public Sector sector; + public GameObject planetGO; private float noiseOffset; private float startDegreesX; @@ -47,7 +47,7 @@ namespace NewHorizons.Components var newPos = new Vector3(newX, newY, newZ); transform.localPosition = newPos; - transform.rotation = Quaternion.FromToRotation(Vector3.up, sector.transform.TransformDirection(newPos.normalized)); + transform.rotation = Quaternion.FromToRotation(Vector3.up, planetGO.transform.TransformDirection(newPos.normalized)); } } }