using AlienRace; using System.Collections.Generic; using UnityEngine; using Verse; namespace RJW_Menstruation { public static class HARCompatibility { public static bool IsHAR(this Pawn pawn) { if (!Configurations.HARActivated) return false; return GenTypes.GetTypeInAnyAssembly("AlienRace.ThingDef_AlienRace").IsInstanceOfType(pawn?.def); } public static void CopyHARProperties(Pawn baby, Pawn original) { AlienPartGenerator.AlienComp babyHARComp = baby?.TryGetComp(); AlienPartGenerator.AlienComp originalHARComp = original?.TryGetComp(); if (babyHARComp == null || originalHARComp == null) return; babyHARComp.addonVariants = new List(originalHARComp.addonVariants); foreach (KeyValuePair> channel in originalHARComp.ColorChannels) { babyHARComp.OverwriteColorChannel(channel.Key, channel.Value.first, channel.Value.second); } babyHARComp.headVariant = originalHARComp.headVariant; babyHARComp.bodyVariant = originalHARComp.bodyVariant; babyHARComp.headMaskVariant = originalHARComp.headMaskVariant; babyHARComp.bodyMaskVariant = originalHARComp.bodyMaskVariant; } } }