rjw_menstruation/1.4/source/RJW_Menstruation/RJW_Menstruation/Compatibility/HARCompatibility.cs

35 lines
1.4 KiB
C#

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>();
AlienPartGenerator.AlienComp originalHARComp = original?.TryGetComp<AlienPartGenerator.AlienComp>();
if (babyHARComp == null || originalHARComp == null) return;
babyHARComp.addonVariants = new List<int>(originalHARComp.addonVariants);
foreach (KeyValuePair<string, AlienPartGenerator.ExposableValueTuple<Color, Color>> 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;
}
}
}