Don't use sector if null

cause it can be null on some bodies
This commit is contained in:
Noah Pilarski 2022-12-24 13:43:44 -05:00
parent 56d52bd5cd
commit 25e9eaf16f
6 changed files with 16 additions and 16 deletions

View File

@ -9,7 +9,7 @@ namespace NewHorizons.Builder.Atmosphere
var airGO = new GameObject("Air"); var airGO = new GameObject("Air");
airGO.SetActive(false); airGO.SetActive(false);
airGO.layer = 17; airGO.layer = 17;
airGO.transform.parent = sector?.transform ? sector.transform : planetGO.transform; airGO.transform.parent = sector?.transform ?? planetGO.transform;
var sc = airGO.AddComponent<SphereCollider>(); var sc = airGO.AddComponent<SphereCollider>();
sc.isTrigger = true; sc.isTrigger = true;

View File

@ -192,7 +192,7 @@ namespace NewHorizons.Builder.Props
var outerFogWarpVolume = GetOuterFogWarpVolumeFromAstroObject(go); var outerFogWarpVolume = GetOuterFogWarpVolumeFromAstroObject(go);
var fogLight = brambleNode.GetComponent<FogLight>(); var fogLight = brambleNode.GetComponent<FogLight>();
brambleNode.transform.parent = sector.transform; brambleNode.transform.parent = sector?.transform ?? go.transform;
brambleNode.transform.position = go.transform.TransformPoint(config.position ?? Vector3.zero); brambleNode.transform.position = go.transform.TransformPoint(config.position ?? Vector3.zero);
brambleNode.transform.rotation = go.transform.TransformRotation(Quaternion.Euler(config.rotation ?? Vector3.zero)); brambleNode.transform.rotation = go.transform.TransformRotation(Quaternion.Euler(config.rotation ?? Vector3.zero));
brambleNode.name = config.name ?? "Bramble Node to " + config.linksTo; brambleNode.name = config.name ?? "Bramble Node to " + config.linksTo;

View File

@ -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) 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); 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.localPosition = Vector3.zero;
groupRoot.transform.localEulerAngles = 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) 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); 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; groupRoot.transform.localPosition = Vector3.zero;
var states = new List<QuantumState>(); var states = new List<QuantumState>();
@ -128,7 +128,7 @@ namespace NewHorizons.Builder.Props
//var averagePosition = propsInGroup.Aggregate(Vector3.zero, (avg, prop) => avg + prop.transform.position) / propsInGroup.Count(); //var averagePosition = propsInGroup.Aggregate(Vector3.zero, (avg, prop) => avg + prop.transform.position) / propsInGroup.Count();
GameObject shuffleParent = new GameObject("Quantum Shuffle - " + quantumGroup.id); GameObject shuffleParent = new GameObject("Quantum Shuffle - " + quantumGroup.id);
shuffleParent.SetActive(false); shuffleParent.SetActive(false);
shuffleParent.transform.parent = sector.transform; shuffleParent.transform.parent = sector?.transform ?? go.transform;
shuffleParent.transform.localPosition = Vector3.zero; shuffleParent.transform.localPosition = Vector3.zero;
propsInGroup.ToList().ForEach(p => p.transform.parent = shuffleParent.transform); propsInGroup.ToList().ForEach(p => p.transform.parent = shuffleParent.transform);

View File

@ -100,9 +100,9 @@ namespace NewHorizons.Builder.Props
{ {
var tornadoGO = downwards ? _downPrefab.InstantiateInactive() : _upPrefab.InstantiateInactive(); var tornadoGO = downwards ? _downPrefab.InstantiateInactive() : _upPrefab.InstantiateInactive();
tornadoGO.name = downwards ? "Tornado_Down" : "Tornado_Up"; 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.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 // Add the sound thing before changing the scale
var soundGO = _soundPrefab.InstantiateInactive(); var soundGO = _soundPrefab.InstantiateInactive();
@ -168,7 +168,7 @@ namespace NewHorizons.Builder.Props
if (info.wanderRate != 0) if (info.wanderRate != 0)
{ {
ApplyWanderer(tornadoGO, sector, info); ApplyWanderer(tornadoGO, planetGO, info);
} }
soundGO.SetActive(true); soundGO.SetActive(true);
@ -179,9 +179,9 @@ namespace NewHorizons.Builder.Props
{ {
var hurricaneGO = _hurricanePrefab.InstantiateInactive(); var hurricaneGO = _hurricanePrefab.InstantiateInactive();
hurricaneGO.name = "Hurricane"; hurricaneGO.name = "Hurricane";
hurricaneGO.transform.parent = sector.transform; hurricaneGO.transform.parent = sector?.transform ?? planetGO.transform;
hurricaneGO.transform.position = planetGO.transform.TransformPoint(position); 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<HurricaneFluidVolume>(); var fluidVolume = hurricaneGO.GetComponentInChildren<HurricaneFluidVolume>();
fluidVolume._fluidType = info.fluidType.ConvertToOW(FluidVolume.Type.CLOUD); fluidVolume._fluidType = info.fluidType.ConvertToOW(FluidVolume.Type.CLOUD);
@ -227,7 +227,7 @@ namespace NewHorizons.Builder.Props
if (info.wanderRate != 0) if (info.wanderRate != 0)
{ {
ApplyWanderer(hurricaneGO, sector, info); ApplyWanderer(hurricaneGO, planetGO, info);
} }
hurricaneGO.SetActive(true); 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<NHTornadoWanderController>(); var wanderer = go.AddComponent<NHTornadoWanderController>();
wanderer.wanderRate = info.wanderRate; wanderer.wanderRate = info.wanderRate;
wanderer.wanderDegreesX = info.wanderDegreesX; wanderer.wanderDegreesX = info.wanderDegreesX;
wanderer.wanderDegreesZ = info.wanderDegreesZ; wanderer.wanderDegreesZ = info.wanderDegreesZ;
wanderer.sector = sector; wanderer.planetGO = planetGO;
} }
} }
} }

View File

@ -44,7 +44,7 @@ namespace NewHorizons.Builder.Props
InitPrefab(); InitPrefab();
var launcherGO = _meteorLauncherPrefab.InstantiateInactive(); 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.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.transform.rotation = Quaternion.FromToRotation(launcherGO.transform.TransformDirection(Vector3.up), ((Vector3)info.position).normalized).normalized;
launcherGO.name = "MeteorLauncher"; launcherGO.name = "MeteorLauncher";

View File

@ -7,7 +7,7 @@ namespace NewHorizons.Components
public float wanderRate; public float wanderRate;
public float wanderDegreesX; public float wanderDegreesX;
public float wanderDegreesZ; public float wanderDegreesZ;
public Sector sector; public GameObject planetGO;
private float noiseOffset; private float noiseOffset;
private float startDegreesX; private float startDegreesX;
@ -47,7 +47,7 @@ namespace NewHorizons.Components
var newPos = new Vector3(newX, newY, newZ); var newPos = new Vector3(newX, newY, newZ);
transform.localPosition = newPos; 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));
} }
} }
} }