public KerbalTrait(Kerbal k, KerbalPortrait p) { portrait = p; crew = k; protoCrew = k.protoCrewMember; if (PortraitStats.ctiOk) { trait = CTIWrapper.CTI.getTrait(protoCrew.experienceTrait.Config.Name); iconColor = (trait.Color != null) ? (Color)trait.Color : XKCDColors.White; } GameObject hover = p.hoverObjectsContainer; GameObject role = hover.transform.GetChild(2).gameObject; setupGameObjects(role, hover, protoCrew); addEVAListener(); if (protoCrew.experienceTrait.Config.Name == "Tourist") { touristUpdate(); } cachedTooltip = portrait.tooltip.descriptionString; }
private void LateUpdate() { if (!FlightGlobals.ready) { return; } if (FlightGlobals.ActiveVessel == null) { return; } if (FlightGlobals.ActiveVessel.isEVA) { return; } if (reload) { reload = false; var crew = KerbalPortraitGallery.Instance.Portraits; for (int i = 0; i < crew.Count; i++) { KerbalPortrait p = crew[i]; if (p == null) { continue; } Kerbal k = p.crewMember; if (k == null) { return; } if (currentCrew.Contains(p.crewMemberName)) { continue; } if (k.state == Kerbal.States.DEAD) { continue; } KerbalTrait K = new KerbalTrait(k, p); if (K == null) { continue; } currentCrew.Add(p.crewMemberName, K); } } }