public static bool IsValid(ChiselModelGeneratedObjects satelliteObjects) { if (satelliteObjects == null) { return(false); } if (!satelliteObjects.generatedDataContainer || !satelliteObjects.colliderContainer || satelliteObjects.colliders == null || // must be an array, even if 0 length satelliteObjects.renderables == null || satelliteObjects.renderables.Length != 8 || satelliteObjects.meshRenderers == null || satelliteObjects.meshRenderers.Length != 5) { return(false); } // These queries are valid, and should never be null if (satelliteObjects.renderables[1] == null || satelliteObjects.renderables[2] == null || satelliteObjects.renderables[3] == null || satelliteObjects.renderables[5] == null || satelliteObjects.renderables[7] == null) { return(false); } // These queries are invalid, and should always be null satelliteObjects.renderables[0] = null; satelliteObjects.renderables[4] = null; satelliteObjects.renderables[6] = null; for (int i = 0; i < satelliteObjects.renderables.Length; i++) { if (satelliteObjects.renderables[i] == null) { continue; } if (!ChiselRenderObjects.IsValid(satelliteObjects.renderables[i])) { return(false); } } for (int i = 0; i < satelliteObjects.colliders.Length; i++) { if (!ChiselColliderObjects.IsValid(satelliteObjects.colliders[i])) { return(false); } } return(true); }
public static bool IsValid(ChiselGeneratedObjects satelliteObjects) { if (satelliteObjects == null) { return(false); } if (!satelliteObjects.generatedDataContainer) { return(false); } if (!satelliteObjects.colliderContainer || satelliteObjects.colliders == null) // must be an array, even if 0 length { return(false); } if (satelliteObjects.renderables == null || satelliteObjects.renderables.Length != kGeneratedMeshRenderCount || satelliteObjects.meshRenderers == null || satelliteObjects.meshRenderers.Length != kGeneratedMeshRendererCount) { return(false); } if (satelliteObjects.debugHelpers == null || satelliteObjects.debugHelpers.Length != kDebugHelperCount || satelliteObjects.debugMeshRenderers == null || satelliteObjects.debugMeshRenderers.Length != kDebugHelperCount) { return(false); } // These queries are valid, and should never be null (We don't care about the other queries) if (satelliteObjects.renderables[1] == null || satelliteObjects.renderables[2] == null || satelliteObjects.renderables[3] == null || satelliteObjects.renderables[5] == null || satelliteObjects.renderables[7] == null) { return(false); } // These queries are valid, and should never be null (We don't care about the other queries) for (int i = 0; i < kDebugHelperCount; i++) { if (satelliteObjects.debugHelpers[i] == null) { return(false); } } satelliteObjects.renderables[0].invalid = true; satelliteObjects.renderables[1].invalid = false; satelliteObjects.renderables[2].invalid = false; satelliteObjects.renderables[3].invalid = false; satelliteObjects.renderables[4].invalid = true; satelliteObjects.renderables[5].invalid = false; satelliteObjects.renderables[6].invalid = true; satelliteObjects.renderables[7].invalid = false; for (int i = 0; i < kDebugHelperCount; i++) { satelliteObjects.debugHelpers[i].invalid = false; } for (int i = 0; i < satelliteObjects.renderables.Length; i++) { if (satelliteObjects.renderables[i] == null || satelliteObjects.renderables[i].invalid) { continue; } if (!ChiselRenderObjects.IsValid(satelliteObjects.renderables[i])) { return(false); } } for (int i = 0; i < satelliteObjects.debugHelpers.Length; i++) { if (satelliteObjects.debugHelpers[i] == null) { continue; } if (!ChiselRenderObjects.IsValid(satelliteObjects.debugHelpers[i])) { return(false); } } for (int i = 0; i < satelliteObjects.colliders.Length; i++) { if (!ChiselColliderObjects.IsValid(satelliteObjects.colliders[i])) { return(false); } } return(true); }