/// <summary> /// Gets the children transforms of this specific part /// </summary> public static List<Renderer> GetPartRenderers(this Part part, RealChuteModule module) { List<Renderer> toRemove = new List<Renderer>(part.children.Select(p => p.transform).SelectMany(t => t.GetComponentsInChildren<Renderer>())); toRemove.AddRange(module.parachutes.Select(p => p.parachute).SelectMany(t => t.GetComponents<Renderer>())); List<Renderer> renderers = part.transform.GetComponentsInChildren<Renderer>().Except(toRemove).ToList(); return renderers; }
/// <summary> /// Gets the children transforms of this specific part /// </summary> public static List<Renderer> GetPartRenderers(this Part part, RealChuteModule module) { List<Renderer> renderers = new List<Renderer>(part.transform.GetComponentsInChildren<Renderer>()); if (part.children.Count > 0) { foreach (Part p in part.children) { p.transform.GetComponentsInChildren<Renderer>().Where(r => renderers.Contains(r)).ToList().ForEach(r => renderers.Remove(r)); } } module.main.parachute.GetComponents<Renderer>().ToList().ForEach(r => renderers.Remove(r)); if (module.secondaryChute) { module.secondary.parachute.GetComponents<Renderer>().ToList().ForEach(r => renderers.Remove(r)); } return renderers; }
/// <summary> /// Gets the children transforms of this specific part /// </summary> public static IEnumerable<Renderer> GetPartRenderers(this Part part, RealChuteModule module) { List<Renderer> toRemove = new List<Renderer>(part.children.SelectMany(p => p.transform.GetComponentsInChildren<Renderer>())); toRemove.AddRange(module.parachutes.SelectMany(p => p.parachute.GetComponents<Renderer>())); return part.transform.GetComponentsInChildren<Renderer>().Except(toRemove); }