From 3cdefbfd5347b2fcf1fdadf745dce79777fb7ca6 Mon Sep 17 00:00:00 2001 From: Noah Pilarski Date: Tue, 26 Jul 2022 13:12:37 -0400 Subject: [PATCH] Check if parent actually exists --- NewHorizons/Builder/Props/NomaiTextBuilder.cs | 36 +++++++++++++++---- .../Builder/Props/ProjectionBuilder.cs | 24 ++++++++++--- NewHorizons/Builder/Props/SignalBuilder.cs | 6 +++- 3 files changed, 55 insertions(+), 11 deletions(-) diff --git a/NewHorizons/Builder/Props/NomaiTextBuilder.cs b/NewHorizons/Builder/Props/NomaiTextBuilder.cs index e0a404e1..789449e2 100644 --- a/NewHorizons/Builder/Props/NomaiTextBuilder.cs +++ b/NewHorizons/Builder/Props/NomaiTextBuilder.cs @@ -119,7 +119,11 @@ namespace NewHorizons.Builder.Props if (!string.IsNullOrEmpty(info.parentPath)) { - nomaiWallTextObj.transform.parent = planetGO.transform.Find(info.parentPath); + var newParent = planetGO.transform.Find(info.parentPath); + if (newParent != null) + { + nomaiWallTextObj.transform.parent = newParent; + } } nomaiWallTextObj.transform.position = planetGO.transform.TransformPoint(info.position); @@ -182,7 +186,11 @@ namespace NewHorizons.Builder.Props if (!string.IsNullOrEmpty(info.parentPath)) { - customScroll.transform.parent = planetGO.transform.Find(info.parentPath); + var newParent = planetGO.transform.Find(info.parentPath); + if (newParent != null) + { + customScroll.transform.parent = newParent; + } } customScroll.transform.position = planetGO.transform.TransformPoint(info.position ?? Vector3.zero); @@ -223,7 +231,11 @@ namespace NewHorizons.Builder.Props if (!string.IsNullOrEmpty(info.parentPath)) { - computerObject.transform.parent = planetGO.transform.Find(info.parentPath); + var newParent = planetGO.transform.Find(info.parentPath); + if (newParent != null) + { + computerObject.transform.parent = newParent; + } } computerObject.transform.position = planetGO.transform.TransformPoint(info?.position ?? Vector3.zero); @@ -260,7 +272,11 @@ namespace NewHorizons.Builder.Props if (!string.IsNullOrEmpty(info.parentPath)) { - computerObject.transform.SetParent(planetGO.transform.Find(info.parentPath), true); + var newParent = planetGO.transform.Find(info.parentPath); + if (newParent != null) + { + computerObject.transform.SetParent(newParent, true); + } } var up = computerObject.transform.position - planetGO.transform.position; @@ -307,7 +323,11 @@ namespace NewHorizons.Builder.Props if (!string.IsNullOrEmpty(info.parentPath)) { - cairnObject.transform.parent = planetGO.transform.Find(info.parentPath); + var newParent = planetGO.transform.Find(info.parentPath); + if (newParent != null) + { + cairnObject.transform.parent = newParent; + } } cairnObject.transform.position = planetGO.transform.TransformPoint(info?.position ?? Vector3.zero); @@ -365,7 +385,11 @@ namespace NewHorizons.Builder.Props if (!string.IsNullOrEmpty(info.parentPath)) { - recorderObject.transform.parent = planetGO.transform.Find(info.parentPath); + var newParent = planetGO.transform.Find(info.parentPath); + if (newParent != null) + { + recorderObject.transform.parent = newParent; + } } recorderObject.transform.position = planetGO.transform.TransformPoint(info?.position ?? Vector3.zero); diff --git a/NewHorizons/Builder/Props/ProjectionBuilder.cs b/NewHorizons/Builder/Props/ProjectionBuilder.cs index 6570033a..923b22ae 100644 --- a/NewHorizons/Builder/Props/ProjectionBuilder.cs +++ b/NewHorizons/Builder/Props/ProjectionBuilder.cs @@ -68,7 +68,11 @@ namespace NewHorizons.Builder.Props if (!string.IsNullOrEmpty(info.parentPath)) { - slideReelObj.transform.parent = planetGO.transform.Find(info.parentPath); + var newParent = planetGO.transform.Find(info.parentPath); + if (newParent != null) + { + slideReelObj.transform.parent = newParent; + } } slideReelObj.transform.position = planetGO.transform.TransformPoint((Vector3)(info.position ?? Vector3.zero)); @@ -165,7 +169,11 @@ namespace NewHorizons.Builder.Props if (!string.IsNullOrEmpty(info.parentPath)) { - autoProjector.transform.parent = planetGO.transform.Find(info.parentPath); + var newParent = planetGO.transform.Find(info.parentPath); + if (newParent != null) + { + autoProjector.transform.parent = newParent; + } } autoProjector.transform.position = planetGO.transform.TransformPoint((Vector3)(info.position ?? Vector3.zero)); @@ -210,7 +218,11 @@ namespace NewHorizons.Builder.Props if (!string.IsNullOrEmpty(info.parentPath)) { - g.transform.SetParent(planetGO.transform.Find(info.parentPath), true); + var newParent = planetGO.transform.Find(info.parentPath); + if (newParent != null) + { + g.transform.SetParent(newParent, true); + } } if (g == null) @@ -265,7 +277,11 @@ namespace NewHorizons.Builder.Props if (!string.IsNullOrEmpty(info.parentPath)) { - standingTorch.transform.SetParent(planetGO.transform.Find(info.parentPath), true); + var newParent = planetGO.transform.Find(info.parentPath); + if (newParent != null) + { + standingTorch.transform.SetParent(newParent, true); + } } if (standingTorch == null) diff --git a/NewHorizons/Builder/Props/SignalBuilder.cs b/NewHorizons/Builder/Props/SignalBuilder.cs index bc7b8195..ff0962ca 100644 --- a/NewHorizons/Builder/Props/SignalBuilder.cs +++ b/NewHorizons/Builder/Props/SignalBuilder.cs @@ -139,7 +139,11 @@ namespace NewHorizons.Builder.Props if (!string.IsNullOrEmpty(info.parentPath)) { - signalGO.transform.parent = planetGO.transform.Find(info.parentPath); + var newParent = planetGO.transform.Find(info.parentPath); + if (newParent != null) + { + signalGO.transform.parent = newParent; + } } signalGO.transform.position = planetGO.transform.TransformPoint(info.position != null ? (Vector3)info.position : Vector3.zero);