public static void CanDoNext_Prefix() { if (PokemonConfig.startWith) { DefDatabase<PawnKindDef>.Clear (); var hashSet = new HashSet<string>(); foreach (ModContentPack modContentPack in (from m in LoadedModManager.RunningMods orderby m.OverwritePriority select m).ThenBy((ModContentPack x) => LoadedModManager.RunningModsListForReading.IndexOf(x))){ hashSet.Clear(); foreach (PawnKindDef t in GenDefDatabase.DefsToGoInDatabase<PawnKindDef>(modContentPack)){ if (!modContentPack.IsCoreMod) { if (hashSet.Contains (t.defName)) { Log.Error (string.Concat (new object[] { "Mod ", modContentPack, " has multiple ", typeof(PawnKindDef), "s named ", t.defName, ". Skipping." })); } else { if (t.defName == "UnnamedDef") { var text = "Unnamed" + nameof(PawnKindDef) + Rand.Range (1, 100000).ToString () + "A"; Log.Error (string.Concat(new [] { nameof(PawnKindDef), " in ", modContentPack.ToString (), " with label ", t.label, " lacks a defName. Giving name ", text })); t.defName = text; } /*PawnKindDef def; if (DefDatabase<PawnKindDef>.defsByName.TryGetValue(t.defName, out def)){ DefDatabase<PawnKindDef>.Remove(def); }*/ DefDatabase<PawnKindDef>.Add (t); } } } } } else { DefDatabase<PawnKindDef>.Clear (); var hashSet = new HashSet<string>(); foreach (ModContentPack modContentPack in (from m in LoadedModManager.RunningMods orderby m.OverwritePriority select m).ThenBy((ModContentPack x) => LoadedModManager.RunningModsListForReading.IndexOf(x))){ hashSet.Clear(); foreach (PawnKindDef t in GenDefDatabase.DefsToGoInDatabase<PawnKindDef>(modContentPack)){ if (hashSet.Contains (t.defName)) { Log.Error (string.Concat (new object[] { "Mod ", modContentPack, " has multiple ", typeof(PawnKindDef), "s named ", t.defName, ". Skipping." })); } else { if (t.defName == "UnnamedDef") { var text = "Unnamed" + typeof(PawnKindDef).Name + Rand.Range (1, 100000).ToString () + "A"; Log.Error (string.Concat (new string[] { typeof(PawnKindDef).Name, " in ", modContentPack.ToString (), " with label ", t.label, " lacks a defName. Giving name ", text })); t.defName = text; } /*PawnKindDef def; if (DefDatabase<PawnKindDef>.defsByName.TryGetValue(t.defName, out def)){ DefDatabase<PawnKindDef>.Remove(def); }*/ DefDatabase<PawnKindDef>.Add (t); } } } } }