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

35 lines
1.4 KiB
C#
Raw Normal View History

2022-10-24 01:02:02 +00:00
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;
2023-01-11 00:09:37 +00:00
return GenTypes.GetTypeInAnyAssembly("AlienRace.ThingDef_AlienRace").IsInstanceOfType(pawn?.def);
2022-10-24 01:02:02 +00:00
}
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)
2022-10-24 01:02:02 +00:00
{
babyHARComp.OverwriteColorChannel(channel.Key, channel.Value.first, channel.Value.second);
}
babyHARComp.headVariant = originalHARComp.headVariant;
babyHARComp.bodyVariant = originalHARComp.bodyVariant;
2022-10-24 01:02:02 +00:00
babyHARComp.headMaskVariant = originalHARComp.headMaskVariant;
babyHARComp.bodyMaskVariant = originalHARComp.bodyMaskVariant;
}
}
}