protected override string GetLocalizedValue(AcademicDegreeNames value, ref ThumbnailKey icon) { AcademicDegreeStaticData degree = AcademicDegreeManager.GetStaticElement(value); if (degree == null) { return(null); } // icon = new ThumbnailKey(ResourceKey.CreatePNGKey(career.CareerIconColored, ResourceUtils.ProductVersionToGroupId(ProductVersion.BaseGame)), ThumbnailSize.Medium); return(degree.DegreeName); }
protected override AcademicDegreeNames ConvertFromString(string value) { AcademicDegreeNames result; if (!ParserFunctions.TryParseEnum <AcademicDegreeNames>(value, out result, AcademicDegreeNames.Undefined)) { ulong guid; if (ulong.TryParse(value, out guid)) { result = (AcademicDegreeNames)guid; if (AcademicDegreeManager.GetStaticElement(result) == null) { return(AcademicDegreeNames.Undefined); } } } return(result); }
public static void CleanupAcademics(Logger log) { Dictionary <ulong, SimDescription> sims = SimListing.GetResidents(false); foreach (SimDescription sim in sims.Values) { if (sim.CareerManager == null) { continue; } AcademicCareer career = sim.OccupationAsAcademicCareer; if (career != null) { if ((career.mDegree == null) || (AcademicDegreeManager.GetStaticElement(career.mDegree.AcademicDegreeName) == null)) { career.LeaveJobNow(Career.LeaveJobReason.kJobBecameInvalid); } } AcademicDegreeManager manager = sim.CareerManager.DegreeManager; if (manager == null) { continue; } List <AcademicDegreeNames> remove = new List <AcademicDegreeNames>(); foreach (AcademicDegree degree in manager.List) { if (AcademicDegreeManager.GetStaticElement(degree.AcademicDegreeName) == null) { remove.Add(degree.AcademicDegreeName); } } foreach (AcademicDegreeNames degree in remove) { manager.RemoveElement((ulong)degree); if (log != null) { log("Remove Corrupt Degree: " + sim.FullName); } } } if (AcademicCareer.sAcademicSims != null) { for (int i = AcademicCareer.sAcademicSims.Count - 1; i >= 0; i--) { bool remove = false; SimDescription sim; if (!sims.TryGetValue(AcademicCareer.sAcademicSims[i], out sim)) { remove = true; } else { AcademicCareer career = sim.OccupationAsAcademicCareer; if (career == null) { remove = true; } else if (career.mDegree == null) { remove = true; } else if (career.Coworkers == null) { remove = true; } } if (remove) { if (log != null) { if (sim != null) { log(" Removed: " + sim.FullName); } else { log(" Removed: " + AcademicCareer.sAcademicSims[i]); } } AcademicCareer.sAcademicSims.RemoveAt(i); } } } }