diff --git a/Source/Harmony/patch_races.cs b/Source/Harmony/patch_races.cs new file mode 100644 index 0000000000000000000000000000000000000000..8bd1c71ae822d994d18334518525318442db4e63 --- /dev/null +++ b/Source/Harmony/patch_races.cs @@ -0,0 +1,52 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using System.IO; +using System.Linq; +using System.Reflection; +using Harmony; +using RimWorld; +using Verse; +using System.Collections; + +namespace rjw +{ + /// <summary> + /// Patch all races into rjw genitals recipes + /// </summary> + + [StaticConstructorOnStartup] + public static class HarmonyPatches + { + static HarmonyPatches() + { + foreach (RecipeDef x in + DefDatabase<RecipeDef>.AllDefsListForReading.Where(x => x.IsSurgery && (x.targetsBodyPart || !x.appliedOnFixedBodyParts.NullOrEmpty()))) + { + try + { + if (x.appliedOnFixedBodyParts.Contains(DefDatabase<BodyPartDef>.GetNamed("Genitals")) + || x.appliedOnFixedBodyParts.Contains(DefDatabase<BodyPartDef>.GetNamed("Chest")) + || x.appliedOnFixedBodyParts.Contains(DefDatabase<BodyPartDef>.GetNamed("Anus")) + ) + + //Log.Message("2 " + x.defName); + foreach (ThingDef thingDef in DefDatabase<ThingDef>.AllDefs) + { + if (thingDef.race == null) + continue; + + //filter something? + //if (thingDef.race. == "Human") + // continue; + + if (!x.recipeUsers.Contains(thingDef)) + x.recipeUsers.Add(item: thingDef); + } + } + catch + { } + } + } + } +}