public static void ResolveSplits() { if (ResearchProjectHelper.oldNewMap.Count == 0) { return; } var cache = AccessTools.Field(typeof(ResearchProjectDef), "cachedUnlockedDefs"); foreach (ResearchProjectDef rpd in ResearchProjectHelper.oldNewMap.Keys) { ResearchProjectDef toResolve = oldNewMap[rpd]; DefGenerator.AddImpliedDef <ResearchProjectDef>(toResolve); cache.SetValue(rpd, null); } ResearchProjectDef.GenerateNonOverlappingCoordinates(); }