code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using RimWorld;
using rjw.Modules.Interactions.Helpers;
using rjw.Modules.Interactions.Objects;
using UnityEngine;
using Verse;
using Verse.AI;
using rjw.Modules.Interactions.Enums;

namespace Rimworld_Animations {
    public static class AnimationUtility {

        public static void StartAnimation(List<Pawn> participants)
        {
            participants[0].Drawer.renderer.SetAnimation(AnimationDefOf.TestAnimation1);
            participants[1].Drawer.renderer.SetAnimation(AnimationDefOf.TestAnimation2);
        }

        //startgroupanimator with anchor
        //don't anchor to self if anchor is self
        public static void StartGroupAnimation(List<Pawn> participants, GroupAnimationDef groupAnimationDef, int reorder, Thing anchor)
        {

            int seed = GenTicks.TicksGame;

            for (int i = 0; i < participants.Count; i++)
            {

                groupAnimationDef.GetOffset(i, participants[i], out Vector3? position, out int? rotation, reorder);

                if (anchor is Pawn pawn && pawn == participants[i])
                {

                    List<AnimationDef> allAnimationsForPawn = groupAnimationDef.GetAllAnimationsForActor(i, seed, reorder);
                    participants[i].TryGetComp<CompExtendedAnimator>().PlayGroupAnimation(allAnimationsForPawn, position, rotation);
                }
                else
                {
                    //each participant gets their own unique extendedanimatoranchor, important for scribe_deep saving
                    List<AnimationDef> allAnimationsForPawn = groupAnimationDef.GetAllAnimationsForActor(i, seed, reorder);
                    BaseExtendedAnimatorAnchor animatorAnchor = new ExtendedAnimatorAnchor_Thing(anchor);

                    if (RJWAnimationSettings.debugMode)
                    {
                        Log.Message("Now playing animation: " + groupAnimationDef.defName + " Actor Shift: " + reorder);
                    }

                    participants[i].TryGetComp<CompExtendedAnimator>().PlayGroupAnimation(allAnimationsForPawn, position, rotation, animatorAnchor);
                }
            }
        }

        //startgroupanimation without anchor; just play where standing
        public static void StartGroupAnimation(List<Pawn> participants, GroupAnimationDef groupAnimationDef, int reorder)
        {
            int seed = GenTicks.TicksGame;

            for (int i = 0; i < participants.Count; i++)
            {
                List<AnimationDef> allAnimationsForPawn = groupAnimationDef.GetAllAnimationsForActor(i, seed, reorder);
                groupAnimationDef.GetOffset(i, participants[i], out Vector3? position, out int? rotation, reorder);
                participants[i].TryGetComp<CompExtendedAnimator>().PlayGroupAnimation(allAnimationsForPawn, position, rotation);
            }
        }

        public static void StopGroupAnimation(List<Pawn> participants)
        {
            foreach(Pawn pawn in participants)
            {
                pawn.TryGetComp<CompExtendedAnimator>()?.StopAnimating();
            }
        }

        public static void StopGroupAnimation(Pawn participant)
        {
            participant.TryGetComp<CompExtendedAnimator>()?.StopAnimating();
        }

        public static GroupAnimationDef FindGroupAnimation(List<Pawn> participants, out int reorder)
        {
            // go through each context in each GroupAnimationDef
            // if you find one where it returns canAnimationBeUsed (and reorders),
            // return that animation

            //find all, reorder randomly, then find max priority context
            DefDatabase<GroupAnimationDef>.AllDefsListForReading
                .FindAll((GroupAnimationDef x) => x.canAnimationBeUsed(participants))
                .OrderBy(_ => Rand.Int)
                .TryMaxBy((GroupAnimationDef x) => x.Priority(participants), out GroupAnimationDef result);

            reorder = result != null ? result.Reorder(participants) : 0;
            return result;

        }

        public static int GetAnimationLength(Pawn pawn)
        {
            return pawn.TryGetComp<CompExtendedAnimator>().AnimationLength;
        }

    }
}


code:
using RimWorld;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Verse;

namespace Rimworld_Animations
{
    public class VoiceDef : Def
    {

        public List<ThingDef> races = new List<ThingDef>();
        public Gender gender = Gender.None;
        public List<TraitDef> traits = new List<TraitDef>();
        public bool takesPriority = false;
        public float randomChanceFactor = 1;

        public Dictionary<VoiceTagDef, SoundDef> sounds = new Dictionary<VoiceTagDef, SoundDef>();

        public bool VoiceFitsPawn(Pawn pawn)
        {

            //doesn't match any of the races
            if (!races.Exists(x => x == pawn.def)) return false;

            //doesn't match gender
            if (gender != Gender.None && pawn.gender != gender) return false;

            //if traits list is not empty, and pawn doesn't have any of the designated traits, doesn't match
            if (!traits.Empty() && !traits.Any(trait => pawn.story.traits.HasTrait(trait))) return false;

            return true;

        }

    }
}

repo_name: wonwoojin/rimworld

license: unknown


code:
using RimWorld;
using rjw;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Rimworld_Animations
{
    [DefOf]
    public static class VoiceDefOf
    {
        static VoiceDefOf()
        {
            DefOfHelper.EnsureInitializedInCtor(typeof(VoiceDefOf));
        }

        public static VoiceDef Voice_HumanMale;
        public static VoiceDef Voice_HumanFemale;
    }
}


code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Verse;

namespace Rimworld_Animations
{
    public class VoiceTagDef : Def
    {

        public float probability = 1;

    }
}


code:
<?xml version="1.0" encoding="utf-8"?>

<ModMetaData>
	<name>Rimworld Animations 2.0</name>
	<author>C0ffee</author>
  <url>https://gitgud.io/c0ffeeeeeeee/rimworld-animations</url>
	<supportedVersions>

1.5

	</supportedVersions>
	<packageId>c0ffee.rimworld.animations</packageId>
	<modDependencies>

			<packageId>brrainz.harmony</packageId>
			<displayName>Harmony</displayName>
			<steamWorkshopUrl>steam://url/CommunityFilePage/2009463077</steamWorkshopUrl>
			<downloadUrl>https://github.com/pardeike/HarmonyRimWorld/releases/latest</downloadUrl>

			<packageId>UnlimitedHugs.HugsLib</packageId>
			<displayName>HugsLib</displayName>
			<downloadUrl>https://github.com/UnlimitedHugs/RimworldHugsLib/releases/latest</downloadUrl>
			<steamWorkshopUrl>steam://url/CommunityFilePage/818773962</steamWorkshopUrl>

			<packageId>rim.job.world</packageId>
			<displayName>RimJobWorld</displayName>
			<downloadUrl>https://www.loverslab.com/topic/110270-mod-rimjobworld/</downloadUrl>

	</modDependencies>
	<loadAfter>

UnlimitedHugs.HugsLib

brrainz.harmony

erdelf.humanoidalienraces

nals.facialanimation

com.yayo.yayoAni

	</loadAfter>
	<loadBefore>
	</loadBefore>
	<incompatibleWith>
	</incompatibleWith>
	<description>
    Rimworld Animations 2.0! Hurray!

    Questions or bugs?
    Chat with me on the forums: https://www.loverslab.com/topic/140386-rjw-animations/
    Or on the rjw discord: https://discord.gg/CXwHhv8

  </description>
</ModMetaData>


code:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Manifest>
  <identifier>Rimworld-Animations</identifier>
  <version>2.0.0</version>
</Manifest>


code:
<?xml version="1.0" encoding="utf-8" ?>
<LanguageData>

	<!-- Mod menu -->
	<RimAnim_ModSettings>RJW Animation Settings</RimAnim_ModSettings>
	<RimAnim_SoundOverride>启用声音覆盖</RimAnim_SoundOverride>
	<RimAnim_GenitalRotation>控制生殖器旋转</RimAnim_GenitalRotation>
	<RimAnim_OrgasmQuiver>启用高潮颤抖</RimAnim_OrgasmQuiver>
	<RimAnim_RapeShiver>启用强奸颤动</RimAnim_RapeShiver>
	<RimAnim_HeartsDuringLovin>性爱时启用心形</RimAnim_HeartsDuringLovin>
	<RimAnim_PlayNonsexual>播放非性行为的动画 (牵手、亲热)</RimAnim_PlayNonsexual>
	<RimAnim_AnimManagerTab>启用动画管理器选项卡</RimAnim_AnimManagerTab>
	<RimAnim_ShiverIntensity>颤抖/颤动强度 (默认为 2): </RimAnim_ShiverIntensity>
	<RimAnim_Voices>在动画期间播放语音</RimAnim_Voices>
	<RimAnim_HumanlikeVoicesDefault>如果没有找到外星种族的声音，则默认播放人类的声音</RimAnim_HumanlikeVoicesDefault>
	<RimAnim_DebugMode>调试模式</RimAnim_DebugMode>
	<RimAnim_FloatRangeRenderTree>调整渲染树偏移表单的浮动范围:</RimAnim_FloatRangeRenderTree>

	<!-- Main Tab Window -->
	<RimAnims_AnimManager>Animation Manager</RimAnims_AnimManager>
	<RimAnims_Warning>警告--一般情况下，你不想更改人类偏移值，只想更改外星种族偏移值或动物偏移值</RimAnims_Warning>
	<RimAnims_CopyToClipboard>将偏移值复制到剪贴板</RimAnims_CopyToClipboard>
	<RimAnims_ShareSettings>将偏移值粘贴到 OffsetDef 中，或在 Discord 中共享</RimAnims_ShareSettings>

</LanguageData>


code:
<?xml version="1.0" encoding="utf-8" ?>
<LanguageData>

	<!-- Mod menu -->
	<RimAnim_ModSettings>RJW Animation Settings</RimAnim_ModSettings>
	<RimAnim_SoundOverride>啟用聲音覆蓋</RimAnim_SoundOverride>
	<RimAnim_GenitalRotation>控制生殖器旋轉</RimAnim_GenitalRotation>
	<RimAnim_OrgasmQuiver>啟用高潮顫抖</RimAnim_OrgasmQuiver>
	<RimAnim_RapeShiver>啟用強姦顫動</RimAnim_RapeShiver>
	<RimAnim_HeartsDuringLovin>性愛時啟用心形</RimAnim_HeartsDuringLovin>
	<RimAnim_PlayNonsexual>播放非性行為的動畫 (牽手、親熱)</RimAnim_PlayNonsexual>
	<RimAnim_AnimManagerTab>啟用動畫管理器選項卡</RimAnim_AnimManagerTab>
	<RimAnim_ShiverIntensity>顫抖/顫動強度 (預設為 2): </RimAnim_ShiverIntensity>
	<RimAnim_Voices>在動畫期間播放語音</RimAnim_Voices>
	<RimAnim_HumanlikeVoicesDefault>如果沒有找到外星種族的聲音，則默認播放人類的聲音</RimAnim_HumanlikeVoicesDefault>
	<RimAnim_DebugMode>除錯模式</RimAnim_DebugMode>
	<RimAnim_FloatRangeRenderTree>調整渲染樹偏移表單的浮動範圍:</RimAnim_FloatRangeRenderTree>

	<!-- Main Tab Window -->
	<RimAnims_AnimManager>Animation Manager</RimAnims_AnimManager>
	<RimAnims_Warning>警告--一般情況下，你不想更改人類偏移值，只想更改外星種族偏移值或動物偏移值</RimAnims_Warning>
	<RimAnims_CopyToClipboard>將偏移值複製到剪貼板</RimAnims_CopyToClipboard>
	<RimAnims_ShareSettings>將偏移值黏貼到 OffsetDef 中，或在 Discord 中共享</RimAnims_ShareSettings>

</LanguageData>


code:
<?xml version="1.0" encoding="utf-8" ?>
<LanguageData>

	<!-- Mod menu -->
	<RimAnim_ModSettings>RJW Animation Settings</RimAnim_ModSettings>
	<RimAnim_SoundOverride>Enable Sound Override</RimAnim_SoundOverride>
	<RimAnim_GenitalRotation>Control Genital Rotation</RimAnim_GenitalRotation>
	<RimAnim_OrgasmQuiver>Enable Orgasm Quiver</RimAnim_OrgasmQuiver>
	<RimAnim_RapeShiver>Enable Rape Shiver</RimAnim_RapeShiver>
	<RimAnim_HeartsDuringLovin>Enable hearts during lovin'</RimAnim_HeartsDuringLovin>
	<RimAnim_PlayNonsexual>Play animation for nonsexual acts (handholding, makeout)</RimAnim_PlayNonsexual>
	<RimAnim_AnimManagerTab>Enable Animation Manager Tab</RimAnim_AnimManagerTab>
	<RimAnim_ShiverIntensity>Shiver/Quiver Intensity (default 2): </RimAnim_ShiverIntensity>
	<RimAnim_Voices>Play voices during animations</RimAnim_Voices>
	<RimAnim_HumanlikeVoicesDefault>Play human voices by default, when none found for alien race</RimAnim_HumanlikeVoicesDefault>
	<RimAnim_DebugMode>Debug Mode</RimAnim_DebugMode>
	<RimAnim_FloatRangeRenderTree>Float range for Debug Render Tree offset menu: </RimAnim_FloatRangeRenderTree>

	<!-- Main Tab Window -->
	<RimAnims_AnimManager>Animation Manager</RimAnims_AnimManager>
	<RimAnims_Warning>Warning--You generally don't want to change human offsets, only alien offsets or animals</RimAnims_Warning>
	<RimAnims_CopyToClipboard>Copy Offset to Clipboard</RimAnims_CopyToClipboard>
	<RimAnims_ShareSettings>Paste offset values in OffsetDef, or share in Discord</RimAnims_ShareSettings>

</LanguageData>


code:
<?xml version="1.0" encoding="utf-8"?>
<LanguageData>

  <OffsetManager.label>gerenciador de posições</OffsetManager.label>
  <OffsetManager.description>Controla as posições sexuais dos colonos.</OffsetManager.description>

</LanguageData>


code:
<?xml version="1.0" encoding="utf-8"?>
<LanguageData>

  <Dog_Doggystyle.label>estilo cachorrinho</Dog_Doggystyle.label>
  <Horse_Cowgirl.label>vaqueira</Horse_Cowgirl.label>

</LanguageData>


code:
<?xml version="1.0" encoding="utf-8"?>
<LanguageData>

  <Tribadism.label>tribadismo</Tribadism.label>
  <Cunnilingus.label>cunilíngua</Cunnilingus.label>

</LanguageData>


code:
<?xml version="1.0" encoding="utf-8"?>
<LanguageData>

  <Double_Penetration.label>dupla penetração</Double_Penetration.label>

</LanguageData>


code:
<?xml version="1.0" encoding="utf-8"?>
<LanguageData>

  <Doggystyle.label>estilo cachorrinho</Doggystyle.label>
  <Blowjob.label>boquete</Blowjob.label>
  <ReverseStandAndCarry.label>69</ReverseStandAndCarry.label>
  <Cowgirl.label>vaqueira</Cowgirl.label>

</LanguageData>


code:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<loadFolders>
	<v1.1>

/

1.1

	</v1.1>
	<v1.2>

/

1.2

Patch_HatsDisplaySelection/1.2

	</v1.2>
	<v1.3>

/

1.3

Patch_HatsDisplaySelection/1.2

Patch_SexToysMasturbation

Patch_SexToysMasturbation/1.3

	</v1.3>
	<v1.4>

/

1.4

Patch_HumanoidAlienRaces/1.4

Patch_HatsDisplaySelection/1.2

Patch_SexToysMasturbation

Patch_SexToysMasturbation/1.4

	</v1.4>
	<v1.5>

/

1.5

Patch_HumanoidAlienRaces/1.5

Patch_SexToysMasturbation/1.5

Patch_FacialAnimation/1.5

Patch_NoRimNudeWorld/1.5

Patch_NoRimNudeWorldZoo/1.5

	</v1.5>

</loadFolders>


code:
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <ProjectGuid>{11DC70AF-FF23-4D4D-A4E5-6453664B1A12}</ProjectGuid>
    <OutputType>Library</OutputType>
    <AppDesignerFolder>Properties</AppDesignerFolder>
    <RootNamespace>Milkable_Colonists_Animations</RootNamespace>
    <AssemblyName>Milkable-Colonists-Animations</AssemblyName>
    <TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
    <FileAlignment>512</FileAlignment>
    <Deterministic>true</Deterministic>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>bin\Debug\</OutputPath>
    <DefineConstants>DEBUG;TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <DebugType>pdbonly</DebugType>
    <Optimize>true</Optimize>
    <OutputPath>bin\Release\</OutputPath>
    <DefineConstants>TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <ItemGroup>
    <Reference Include="0Harmony">
      <HintPath>..\..\..\..\..\workshop\content\294100\839005762\1.5\Assemblies\0Harmony.dll</HintPath>
      <Private>False</Private>
    </Reference>
    <Reference Include="Assembly-CSharp">
      <HintPath>..\..\..\RimWorldWin64_Data\Managed\Assembly-CSharp.dll</HintPath>
      <Private>False</Private>
    </Reference>
    <Reference Include="RJW">
      <HintPath>..\..\rjw\1.4\Assemblies\RJW.dll</HintPath>
      <Private>False</Private>
    </Reference>
    <Reference Include="System" />
    <Reference Include="System.Core" />
    <Reference Include="System.Xml.Linq" />
    <Reference Include="System.Data.DataSetExtensions" />
    <Reference Include="Microsoft.CSharp" />
    <Reference Include="System.Data" />
    <Reference Include="System.Net.Http" />
    <Reference Include="System.Xml" />
    <Reference Include="UnityEngine">
      <HintPath>..\..\..\RimWorldWin64_Data\Managed\UnityEngine.dll</HintPath>
      <Private>False</Private>
    </Reference>
  </ItemGroup>
  <ItemGroup>
    <Compile Include="Properties\AssemblyInfo.cs" />
    <Compile Include="Source\Patches\Harmony_PatchAll.cs" />
  </ItemGroup>
  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>


code:
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;

// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("Milkable-Colonists-Animations")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("Milkable-Colonists-Animations")]
[assembly: AssemblyCopyright("Copyright ©  2024")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]

// Setting ComVisible to false makes the types in this assembly not visible
// to COM components.  If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]

// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("11dc70af-ff23-4d4d-a4e5-6453664b1a12")]

// Version information for an assembly consists of the following four values:
//
//      Major Version
//      Minor Version
//      Build Number
//      Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]


code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Verse;
using HarmonyLib;
using System.Reflection;

namespace MC_Animations {

    [StaticConstructorOnStartup]
    public static class Harmony_PatchAll {

        static Harmony_PatchAll() {

            Harmony val = new Harmony("mcanim");
            val.PatchAll(Assembly.GetExecutingAssembly());

        }
    }
}


code:
<?xml version="1.0" encoding="utf-8" ?>
<Patch>

	<Operation Class="PatchOperationSequence">
		<success>Always</success>
		<operations>

				<xpath>/Defs/PawnRenderTreeDef[defName="Humanlike"]/root/children/li[debugLabel="Head"]/subworkerClasses</xpath>
				<success>Always</success>
				<nomatch Class="PatchOperationAdd">
					<xpath>/Defs/PawnRenderTreeDef[defName="Humanlike"]/root/children/li[debugLabel="Head"]</xpath>
					<value>
						<subworkerClasses />
					</value>
				</nomatch>

				<xpath>/Defs/PawnRenderTreeDef[defName="Humanlike"]/root/children/li[debugLabel="Head"]/subworkerClasses</xpath>
				<value>

Rimworld_Animations.PawnRenderSubWorker_HideWhenAnimating

				</value>

		</operations>
	</Operation>

</Patch>


code:
using HarmonyLib;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Reflection.Emit;
using System.Text;
using System.Threading.Tasks;
using UnityEngine;
using Verse;
using AlienRace;

namespace Rimworld_Animations {

	[StaticConstructorOnStartup]
	public static class HarmonyPatch_AlienRace
	{
		static HarmonyPatch_AlienRace()
		{
			(new Harmony("rjwanim")).Patch(AccessTools.Method(AccessTools.TypeByName("AlienRace.HarmonyPatches"), "DrawAddons"),
							prefix: new HarmonyMethod(AccessTools.Method(typeof(HarmonyPatch_AlienRace), "Prefix_AnimateHeadAddons")));
		}

		/* todo: replace jank prefix with this
		public static void Prefix_DrawAddonsFinalHook(ref Pawn pawn, ref AlienPartGenerator.BodyAddon addon, ref Rot4 rot, ref Graphic graphic, ref Vector3 offsetVector, ref float angle, ref Material mat)
        {
			CompBodyAnimator animator = pawn.TryGetComp<CompBodyAnimator>();

			if (animator == null || !animator.isAnimating)
            {
				return;
            }

			if(addon.alignWithHead || addon.drawnInBed)
            {
				rot = animator.headFacing;
				angle = animator.headAngle;
				offsetVector += animator.deltaPos + animator.bodyAngle * animator.headBob;

			}
			else
            {
				rot = animator.bodyFacing;
				angle = animator.bodyAngle;
				offsetVector += animator.deltaPos;
            }

        }
		*/
		public static bool Prefix_AnimateHeadAddons(PawnRenderFlags renderFlags, Vector3 vector, Vector3 headOffset, Pawn pawn, Quaternion quat, Rot4 rotation)
		{

			if (renderFlags.FlagSet(PawnRenderFlags.Portrait) || !CompBodyAnimator.IsAnimating(pawn)) return true;
			if (!(pawn.def is ThingDef_AlienRace alienProps) || renderFlags.FlagSet(PawnRenderFlags.Invisible)) return false;

			List<AlienPartGenerator.BodyAddon> addons = alienProps.alienRace.generalSettings.alienPartGenerator.bodyAddons;
			AlienPartGenerator.AlienComp comp = pawn.GetComp<AlienPartGenerator.AlienComp>();
			CompBodyAnimator pawnAnimator = pawn.TryGetComp<CompBodyAnimator>();

			bool flag = renderFlags.FlagSet(PawnRenderFlags.Portrait);
			bool flag2 = renderFlags.FlagSet(PawnRenderFlags.Invisible);

			for (int i = 0; i < addons.Count; i++)
			{
				AlienPartGenerator.BodyAddon ba = addons[index: i];

				if (!ba.CanDrawAddon(pawn: pawn)) continue;

				bool forceDrawForBody = false;
				if (alienProps.defName.Contains("Orassan") && ba.path.ToLower().Contains("tail"))
                {
					forceDrawForBody = true;
                }
				AlienPartGenerator.RotationOffset offset = ba.defaultOffsets.GetOffset((ba.drawnInBed && !forceDrawForBody) || ba.alignWithHead ? pawnAnimator.headFacing : pawnAnimator.bodyFacing);
				Vector3 a = (offset != null) ? offset.GetOffset(renderFlags.FlagSet(PawnRenderFlags.Portrait), pawn.story.bodyType, pawn.story.headType) : Vector3.zero;
				AlienPartGenerator.RotationOffset offset2 = ba.offsets.GetOffset((ba.drawnInBed && !forceDrawForBody) || ba.alignWithHead ? pawnAnimator.headFacing : pawnAnimator.bodyFacing);
				Vector3 vector2 = a + ((offset2 != null) ? offset2.GetOffset(renderFlags.FlagSet(PawnRenderFlags.Portrait), pawn.story.bodyType, pawn.story.headType) : Vector3.zero);
				vector2.y = (ba.inFrontOfBody ? (0.3f + vector2.y) : (-0.3f - vector2.y));
				float num = ba.angle;
				if (((ba.drawnInBed && !forceDrawForBody) || ba.alignWithHead ? pawnAnimator.headFacing : pawnAnimator.bodyFacing) == Rot4.North)
				{
					if (ba.layerInvert)
					{
						vector2.y = 0f - vector2.y;
					}
					num = 0f;
				}
				if (((ba.drawnInBed && !forceDrawForBody) || ba.alignWithHead ? pawnAnimator.headFacing : pawnAnimator.bodyFacing) == Rot4.East)
				{
					num = 0f - num;
					vector2.x = 0f - vector2.x;
				}
				Graphic addonGraphic = comp.addonGraphics[i];

				addonGraphic.drawSize = ((flag && ba.drawSizePortrait != Vector2.zero) ? ba.drawSizePortrait : ba.drawSize) * (ba.scaleWithPawnDrawsize ? (ba.alignWithHead ? ((flag ? comp.customPortraitHeadDrawSize : comp.customHeadDrawSize) * (ModsConfig.BiotechActive ? (pawn.ageTracker.CurLifeStage.headSizeFactor ?? 1.5f) : 1.5f)) : ((flag ? comp.customPortraitDrawSize : comp.customDrawSize) * (ModsConfig.BiotechActive ? pawn.ageTracker.CurLifeStage.bodySizeFactor : 1f) * 1.5f)) : (Vector2.one * 1.5f));

				if ((ba.drawnInBed && !forceDrawForBody) || ba.alignWithHead)
				{

					Quaternion addonRotation = Quaternion.AngleAxis(pawnAnimator.headAngle < 0 ? 360 - (360 % pawnAnimator.headAngle) : pawnAnimator.headAngle, Vector3.up);

					GenDraw.DrawMeshNowOrLater(mesh: addonGraphic.MeshAt(rot: pawnAnimator.headFacing), loc: vector + (ba.alignWithHead ? headOffset : headOffset - addonRotation * pawn.Drawer.renderer.BaseHeadOffsetAt(pawnAnimator.headFacing)) + vector2.RotatedBy(angle: Mathf.Acos(f: Quaternion.Dot(a: Quaternion.identity, b: addonRotation)) * 2f * 57.29578f),
					quat: Quaternion.AngleAxis(angle: num, axis: Vector3.up) * addonRotation, mat: addonGraphic.MatAt(rot: pawnAnimator.headFacing), renderFlags.FlagSet(PawnRenderFlags.DrawNow));

				}

				else
				{
					Quaternion addonRotation;
					if (AnimationSettings.controlGenitalRotation && ba.path.ToLower().Contains("penis"))
                    {
						addonRotation = Quaternion.AngleAxis(pawnAnimator.genitalAngle, Vector3.up);
					}
					else
                    {
						addonRotation = Quaternion.AngleAxis(pawnAnimator.bodyAngle, Vector3.up);
					}

					if (AnimationSettings.controlGenitalRotation && pawnAnimator.controlGenitalAngle && ba?.hediffGraphics != null && ba.hediffGraphics.Count != 0 && ba.hediffGraphics[0]?.path != null && (ba.hediffGraphics[0].path.Contains("Penis") || ba.hediffGraphics[0].path.Contains("penis")))
					{
						GenDraw.DrawMeshNowOrLater(mesh: addonGraphic.MeshAt(rot: rotation), loc: vector + (ba.alignWithHead ? headOffset : Vector3.zero) + vector2.RotatedBy(angle: Mathf.Acos(f: Quaternion.Dot(a: Quaternion.identity, b: addonRotation)) * 2f * 57.29578f),
						quat: Quaternion.AngleAxis(angle: pawnAnimator.genitalAngle, axis: Vector3.up), mat: addonGraphic.MatAt(rot: rotation), renderFlags.FlagSet(PawnRenderFlags.DrawNow));
					}

					else
                    {
						GenDraw.DrawMeshNowOrLater(mesh: addonGraphic.MeshAt(rot: rotation), loc: vector + (ba.alignWithHead ? headOffset : Vector3.zero) + vector2.RotatedBy(angle: Mathf.Acos(f: Quaternion.Dot(a: Quaternion.identity, b: addonRotation)) * 2f * 57.29578f),
						quat: Quaternion.AngleAxis(angle: num, axis: Vector3.up) * addonRotation, mat: addonGraphic.MatAt(rot: rotation), renderFlags.FlagSet(PawnRenderFlags.DrawNow));
					}

				}

			}

			return false;
		}
	}

	/*

    [HarmonyPatch(typeof(AlienRace.HarmonyPatches), "DrawAddons")]
    public static class HarmonyPatch_AlienRace {

		public static void RenderHeadAddonInAnimation(Mesh mesh, Vector3 loc, Quaternion quat, Material mat, bool drawNow, Graphic graphic, AlienPartGenerator.BodyAddon bodyAddon, Vector3 v, Vector3 headOffset, Pawn pawn, PawnRenderFlags renderFlags, Vector3 vector, Rot4 rotation)
        {

			CompBodyAnimator pawnAnimator = pawn.TryGetComp<CompBodyAnimator>();
			AlienPartGenerator.AlienComp comp = pawn.GetComp<AlienPartGenerator.AlienComp>();

			if (pawnAnimator != null && pawnAnimator.isAnimating)
            {

				if((bodyAddon.drawnInBed || bodyAddon.alignWithHead))
                {

					AlienPartGenerator.RotationOffset offset = bodyAddon.defaultOffsets.GetOffset(rotation);
					Vector3 a = (offset != null) ? offset.GetOffset(renderFlags.FlagSet(PawnRenderFlags.Portrait), pawn.story.bodyType, comp.crownType) : Vector3.zero;
					AlienPartGenerator.RotationOffset offset2 = bodyAddon.offsets.GetOffset(rotation);
					Vector3 vector2 = a + ((offset2 != null) ? offset2.GetOffset(renderFlags.FlagSet(PawnRenderFlags.Portrait), pawn.story.bodyType, comp.crownType) : Vector3.zero);
					vector2.y = (bodyAddon.inFrontOfBody ? (0.3f + vector2.y) : (-0.3f - vector2.y));
					float num = bodyAddon.angle;
					if (rotation == Rot4.North)
					{
						if (bodyAddon.layerInvert)
						{
							vector2.y = -vector2.y;
						}
						num = 0f;
					}
					if (rotation == Rot4.East)
					{
						num = -num;
						vector2.x = -vector2.x;
					}

					vector = vector + Quaternion.AngleAxis(pawnAnimator.bodyAngle, Vector3.up) * pawn.Drawer.renderer.BaseHeadOffsetAt(pawnAnimator.bodyFacing) - pawnAnimator.getPawnHeadOffset(); //convert vector into pseudo body pos for head
					quat = Quaternion.AngleAxis(pawnAnimator.headAngle, Vector3.up);
					loc = vector + (bodyAddon.alignWithHead ? headOffset : Vector3.zero) + vector2.RotatedBy(Mathf.Acos(Quaternion.Dot(Quaternion.identity, quat)) * 2f * 57.29578f);
					mat = graphic.MatAt(rot: pawnAnimator.headFacing);
				}
				else
                {

					AlienPartGenerator.RotationOffset offset = bodyAddon.defaultOffsets.GetOffset(rotation);
					Vector3 a = (offset != null) ? offset.GetOffset(renderFlags.FlagSet(PawnRenderFlags.Portrait), pawn.story.bodyType, comp.crownType) : Vector3.zero;
					AlienPartGenerator.RotationOffset offset2 = bodyAddon.offsets.GetOffset(rotation);
					Vector3 vector2 = a + ((offset2 != null) ? offset2.GetOffset(renderFlags.FlagSet(PawnRenderFlags.Portrait), pawn.story.bodyType, comp.crownType) : Vector3.zero);
					vector2.y = (bodyAddon.inFrontOfBody ? (0.3f + vector2.y) : (-0.3f - vector2.y));
					float num = bodyAddon.angle;
					if (rotation == Rot4.North)
					{
						if (bodyAddon.layerInvert)
						{
							vector2.y = -vector2.y;
						}
						num = 0f;
					}
					if (rotation == Rot4.East)
					{
						num = -num;
						vector2.x = -vector2.x;
					}
					quat = Quaternion.AngleAxis(pawnAnimator.bodyAngle, Vector3.up);
					loc = vector + (bodyAddon.alignWithHead ? headOffset : Vector3.zero) + vector2.RotatedBy(Mathf.Acos(Quaternion.Dot(Quaternion.identity, quat)) * 2f * 57.29578f);

				}

			}
			GenDraw.DrawMeshNowOrLater(mesh, loc, quat, mat, drawNow);

			/*
			if (pawnAnimator != null && !renderFlags.FlagSet(PawnRenderFlags.Portrait) && pawnAnimator.isAnimating && (bodyAddon.drawnInBed || bodyAddon.alignWithHead))
            {

				if ((pawn.def as ThingDef_AlienRace).defName == "Alien_Orassan")
                {
					orassan = true;

					if(bodyAddon.path.Contains("closed"))
                    {
						return;
                    }

					if (bodyAddon.bodyPart.Contains("ear"))

					{
						orassan = true;

						orassanv = new Vector3(0, 0, 0.23f);
						if (pawnAnimator.headFacing == Rot4.North)
						{
							orassanv.z -= 0.1f;
							orassanv.y += 1f;

							if(bodyAddon.bodyPart.Contains("left"))
                            {
								orassanv.x += 0.03f;
                            } else
                            {
								orassanv.x -= 0.03f;
							}

						}
						else if (pawnAnimator.headFacing == Rot4.East)
						{
							orassanv.x -= 0.1f;
						}
						else if (pawnAnimator.headFacing == Rot4.West)
						{
							orassanv.x = 0.1f;
						}
						else
                        {
							orassanv.z -= 0.1f;
							orassanv.y += 1f;

							if (bodyAddon.bodyPart.Contains("right"))
							{
								orassanv.x += 0.05f;
							}
							else
							{
								orassanv.x -= 0.05f;
							}
						}
						orassanv = orassanv.RotatedBy(pawnAnimator.headAngle);
					}
				}

			GenDraw.DrawMeshNowOrLater(mesh: graphic.MeshAt(rot: headRotInAnimation), loc: loc + orassanv + (bodyAddon.alignWithHead ? headOffset : Vector3.zero),// + v.RotatedBy(Mathf.Acos(Quaternion.Dot(Quaternion.identity, quat)) * 2f * 57.29578f),
					quat: Quaternion.AngleAxis(angle: num, axis: Vector3.up) * headQuatInAnimation, mat: graphic.MatAt(rot: pawnAnimator.headFacing), drawNow: drawNow);;
			}

			else
            {

			}

		}

		public static IEnumerable<CodeInstruction> Transpiler(IEnumerable<CodeInstruction> instructions)
        {
			List<CodeInstruction> ins = instructions.ToList();
			for (int i = 0; i < ins.Count; i++)
            {

				Type[] type = new Type[] { typeof(Mesh), typeof(Vector3), typeof(Quaternion), typeof(Material), typeof(bool) };

				if (ins[i].OperandIs(AccessTools.Method(typeof(GenDraw), "DrawMeshNowOrLater", type)))
                {

					yield return new CodeInstruction(OpCodes.Ldloc, (object)7); //graphic
					yield return new CodeInstruction(OpCodes.Ldloc, (object)4); //bodyAddon
					yield return new CodeInstruction(OpCodes.Ldloc, (object)5); //offsetVector/AddonOffset (v)
					yield return new CodeInstruction(OpCodes.Ldarg, (object)2); //headOffset
					yield return new CodeInstruction(OpCodes.Ldarg, (object)3); //pawn
					yield return new CodeInstruction(OpCodes.Ldarg, (object)0); //renderflags
					yield return new CodeInstruction(OpCodes.Ldarg, (object)1); //vector
					yield return new CodeInstruction(OpCodes.Ldarg, (object)5); //rotation

					yield return new CodeInstruction(OpCodes.Call, AccessTools.DeclaredMethod(typeof(HarmonyPatch_AlienRace), "RenderHeadAddonInAnimation"));

                }

				else
                {
					yield return ins[i];
				}
            }
        }

		public static bool Prefix(PawnRenderFlags renderFlags, ref Vector3 vector, ref Vector3 headOffset, Pawn pawn, ref Quaternion quat, ref Rot4 rotation)
		{
			if(pawn == null)
            {
				return true;
			}

			CompBodyAnimator anim = pawn.TryGetComp<CompBodyAnimator>();

			if(anim == null)
            {
				return true;
            }

			if (anim != null && !renderFlags.FlagSet(PawnRenderFlags.Portrait) && anim.isAnimating)
			{
				//quat = Quaternion.AngleAxis(anim.bodyAngle, Vector3.up);
			}

			return true;

		}
	}

	*/

}


code:
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <ProjectGuid>{C76F3790-9AC0-4827-ACD5-84174238954F}</ProjectGuid>
    <OutputType>Library</OutputType>
    <AppDesignerFolder>Properties</AppDesignerFolder>
    <RootNamespace>Patch_HumanoidAlienRaces</RootNamespace>
    <AssemblyName>Patch_HumanoidAlienRaces</AssemblyName>
    <TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
    <FileAlignment>512</FileAlignment>
    <Deterministic>true</Deterministic>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    <DebugSymbols>false</DebugSymbols>
    <DebugType>none</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>1.5\Assemblies\</OutputPath>
    <DefineConstants>DEBUG;TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
    <GenerateSerializationAssemblies>Off</GenerateSerializationAssemblies>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <DebugType>pdbonly</DebugType>
    <Optimize>true</Optimize>
    <OutputPath>bin\Release\</OutputPath>
    <DefineConstants>TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <ItemGroup>
    <Reference Include="0Harmony">
      <HintPath>..\..\..\..\..\workshop\content\294100\839005762\1.4\Assemblies\0Harmony.dll</HintPath>
      <Private>False</Private>
    </Reference>
    <Reference Include="AlienRace">
      <HintPath>..\..\..\..\..\workshop\content\294100\839005762\1.5\Assemblies\AlienRace.dll</HintPath>
      <Private>False</Private>
    </Reference>
    <Reference Include="Assembly-CSharp">
      <HintPath>..\..\..\RimWorldWin64_Data\Managed\Assembly-CSharp.dll</HintPath>
      <Private>False</Private>
    </Reference>
    <Reference Include="Rimworld-Animations">
      <HintPath>..\1.4\Assemblies\Rimworld-Animations.dll</HintPath>
      <Private>False</Private>
    </Reference>
    <Reference Include="RJW">
      <HintPath>..\..\rjw\1.4\Assemblies\RJW.dll</HintPath>
      <Private>False</Private>
    </Reference>
    <Reference Include="System" />
    <Reference Include="System.Core" />
    <Reference Include="System.Xml.Linq" />
    <Reference Include="System.Data.DataSetExtensions" />
    <Reference Include="Microsoft.CSharp" />
    <Reference Include="System.Data" />
    <Reference Include="System.Net.Http" />
    <Reference Include="System.Xml" />
    <Reference Include="UnityEngine">
      <HintPath>..\..\..\RimWorldWin64_Data\Managed\UnityEngine.dll</HintPath>
      <Private>False</Private>
    </Reference>
    <Reference Include="UnityEngine.CoreModule">
      <HintPath>..\..\..\RimWorldWin64_Data\Managed\UnityEngine.CoreModule.dll</HintPath>
      <Private>False</Private>
    </Reference>
  </ItemGroup>
  <ItemGroup>
    <Compile Include="1.5\Source\Patches\Harmony_PatchAll.cs" />
    <Compile Include="Properties\AssemblyInfo.cs" />
  </ItemGroup>
  <ItemGroup>
    <Content Include="1.5\Assemblies\Patch_HumanoidAlienRaces.dll" />
  </ItemGroup>
  <ItemGroup />
  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>


code:
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;

// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("Patch_HumanoidAlienRaces")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("Patch_HumanoidAlienRaces")]
[assembly: AssemblyCopyright("Copyright ©  2022")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]

// Setting ComVisible to false makes the types in this assembly not visible
// to COM components.  If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]

// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("c76f3790-9ac0-4827-acd5-84174238954f")]

// Version information for an assembly consists of the following four values:
//
//      Major Version
//      Minor Version
//      Build Number
//      Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]


code:
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
	<!-- placeholder for when RimNude isn't installed -->
	<PawnRenderNodeTagDef>
		<defName>RimNude_Penis</defName>
	</PawnRenderNodeTagDef>
</Defs>


code:
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
	<!-- placeholder for when RimNude isn't installed -->
	<PawnRenderNodeTagDef>
		<defName>AnimalPenis</defName>
	</PawnRenderNodeTagDef>
</Defs>


code:
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;

// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("Rimworld-Animations")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("Rimworld-Animations")]
[assembly: AssemblyCopyright("Copyright ©  2020")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]

// Setting ComVisible to false makes the types in this assembly not visible
// to COM components.  If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]

// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("71b05d71-67b2-4014-82cd-18c20ac0882f")]

// Version information for an assembly consists of the following four values:
//
//      Major Version
//      Minor Version
//      Build Number
//      Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]


code:
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <ProjectGuid>{71B05D71-67B2-4014-82CD-18C20AC0882F}</ProjectGuid>
    <OutputType>Library</OutputType>
    <AppDesignerFolder>Properties</AppDesignerFolder>
    <RootNamespace>Rimworld_Animations</RootNamespace>
    <AssemblyName>Rimworld-Animations</AssemblyName>
    <TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
    <FileAlignment>512</FileAlignment>
    <Deterministic>true</Deterministic>
    <TargetFrameworkProfile />
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    <DebugSymbols>false</DebugSymbols>
    <DebugType>none</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>1.5\Assemblies\</OutputPath>
    <DefineConstants>DEBUG;TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <DebugType>none</DebugType>
    <Optimize>true</Optimize>
    <OutputPath>bin\Release\</OutputPath>
    <DefineConstants>TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <ItemGroup>
    <Reference Include="0Harmony">
      <HintPath>..\..\..\..\workshop\content\294100\839005762\1.4\Assemblies\0Harmony.dll</HintPath>
      <Private>False</Private>
    </Reference>
    <Reference Include="AlienRace">
      <HintPath>..\..\..\..\workshop\content\294100\839005762\1.4\Assemblies\AlienRace.dll</HintPath>
      <Private>False</Private>
    </Reference>
    <Reference Include="Assembly-CSharp">
      <HintPath>..\..\RimWorldWin64_Data\Managed\Assembly-CSharp.dll</HintPath>
      <Private>False</Private>
    </Reference>
    <Reference Include="RJW">
      <HintPath>..\rjw\1.5\Assemblies\RJW.dll</HintPath>
      <Private>False</Private>
    </Reference>
    <Reference Include="RJW-ToysAndMasturbation">
      <HintPath>..\rjw-toys-and-masturbation\Assemblies\RJW-ToysAndMasturbation.dll</HintPath>
      <Private>False</Private>
    </Reference>
    <Reference Include="System" />
    <Reference Include="System.Core" />
    <Reference Include="System.Xml.Linq" />
    <Reference Include="System.Data.DataSetExtensions" />
    <Reference Include="Microsoft.CSharp" />
    <Reference Include="System.Data" />
    <Reference Include="System.Net.Http" />
    <Reference Include="System.Xml" />
    <Reference Include="UnityEngine">
      <HintPath>..\..\RimWorldWin64_Data\Managed\UnityEngine.dll</HintPath>
      <Private>False</Private>
    </Reference>
    <Reference Include="UnityEngine.CoreModule">
      <HintPath>..\..\RimWorldWin64_Data\Managed\UnityEngine.CoreModule.dll</HintPath>
      <Private>False</Private>
    </Reference>
    <Reference Include="UnityEngine.IMGUIModule">
      <HintPath>..\..\RimWorldWin64_Data\Managed\UnityEngine.IMGUIModule.dll</HintPath>
      <Private>False</Private>
    </Reference>
  </ItemGroup>
  <ItemGroup>
    <Compile Include="1.5\Source\Actors\Actor.cs" />
    <Compile Include="1.5\Source\Actors\AlienRaceOffset.cs" />
    <Compile Include="1.5\Source\Animations\AnimationOffsets\AnimationOffsetDef.cs" />
    <Compile Include="1.5\Source\Animations\AnimationOffsets\Offsets\AnimationOffset_AgeRange.cs" />
    <Compile Include="1.5\Source\Animations\AnimationOffsets\Offsets\AnimationOffset_BodyType.cs" />
    <Compile Include="1.5\Source\Animations\AnimationOffsets\Offsets\AnimationOffset_BodyTypeGendered.cs" />
    <Compile Include="1.5\Source\Animations\AnimationOffsets\Offsets\AnimationOffset_Single.cs" />
    <Compile Include="1.5\Source\Animations\AnimationOffsets\Offsets\BaseAnimationOffset.cs" />
    <Compile Include="1.5\Source\Animations\AnimationOffsets\Offsets\BodyTypeOffset.cs" />
    <Compile Include="1.5\Source\Animations\AnimationProps\AnimationPropDef.cs" />
    <Compile Include="1.5\Source\Animations\AnimationWorkers\AnimationWorker_KeyframesExtended.cs" />
    <Compile Include="1.5\Source\Animations\PawnTests\BasePawnTest.cs" />
    <Compile Include="1.5\Source\Animations\PawnTests\PawnTest_Never.cs" />
    <Compile Include="1.5\Source\Animations\PawnTests\PawnTest_Humanlike.cs" />
    <Compile Include="1.5\Source\Animations\PawnTests\PawnTest_PrisonerOfColony.cs" />
    <Compile Include="1.5\Source\Animations\PawnTests\PawnTest_SlaveOfColony.cs" />
    <Compile Include="1.5\Source\Animations\PawnTests\PawnTest_Always.cs" />
    <Compile Include="1.5\Source\Animations\PawnTests\PawnTest_JobDef.cs" />
    <Compile Include="1.5\Source\Animations\PawnTests\PawnTest_Multi.cs" />
    <Compile Include="1.5\Source\Animations\PawnTests\PawnTest_Race.cs" />
    <Compile Include="1.5\Source\Animations\PawnTests\PawnTest_RJWCanBeFucked.cs" />
    <Compile Include="1.5\Source\Animations\PawnTests\PawnTest_RJWCanFuck.cs" />
    <Compile Include="1.5\Source\Animations\PawnTests\PawnTest_Trait.cs" />
    <Compile Include="1.5\Source\Comps\CompExtendedAnimator.cs" />
    <Compile Include="1.5\Source\Comps\CompProperties_ExtendedAnimator.cs" />
    <Compile Include="1.5\Source\Comps\CompProperties_ThingAnimator.cs" />
    <Compile Include="1.5\Source\Comps\CompThingAnimator.cs" />
    <Compile Include="1.5\Source\Comps\ExtendedAnimatorAnchor\BaseExtendedAnimatorAnchor.cs" />
    <Compile Include="1.5\Source\Comps\ExtendedAnimatorAnchor\ExtendedAnimatorAnchor_Thing.cs" />
    <Compile Include="1.5\Source\Comps\ExtendedAnimatorAnchor\ExtendedAnimatorAnchor_Vector3.cs" />
    <Compile Include="1.5\Source\Defs\AnimationDefOf.cs" />
    <Compile Include="1.5\Source\Animations\GroupAnimations\GroupAnimationContexts\BaseGroupAnimationContext.cs" />
    <Compile Include="1.5\Source\Animations\GroupAnimations\GroupAnimationContexts\GroupAnimationContext_RJWSex.cs" />
    <Compile Include="1.5\Source\Animations\GroupAnimations\GroupAnimationDef.cs" />
    <Compile Include="1.5\Source\Animations\GroupAnimations\GroupAnimationStages\AnimationStage.cs" />
    <Compile Include="1.5\Source\Animations\GroupAnimations\GroupAnimationStages\AnimationStage_Branch.cs" />
    <Compile Include="1.5\Source\Animations\GroupAnimations\GroupAnimationStages\AnimationStage_LoopRandomSelectChance.cs" />
    <Compile Include="1.5\Source\Animations\GroupAnimations\GroupAnimationStages\AnimationStage_TicksDuration.cs" />
    <Compile Include="1.5\Source\Animations\Keyframes\ExtendedKeyframe.cs" />
    <Compile Include="1.5\Source\MainTabWindows\MainTabWindow_OffsetConfigure.cs" />
    <Compile Include="1.5\Source\MainTabWindows\OffsetMainButtonDefOf.cs" />
    <Compile Include="1.5\Source\MainTabWindows\WorldComponent_UpdateMainTab.cs" />
    <Compile Include="1.5\Source\Patches\Harmony_PatchAll.cs" />
    <Compile Include="1.5\Source\Patches\RimworldPatches\HarmonyPatch_Dialog_DebugRenderTree.cs" />
    <Compile Include="1.5\Source\Patches\RimworldPatches\HarmonyPatch_PawnRenderer.cs" />
    <Compile Include="1.5\Source\Patches\RimworldPatches\HarmonyPatch_PawnRenderNode.cs" />
    <Compile Include="1.5\Source\Patches\RimworldPatches\HarmonyPatch_PawnRenderNodeWorker.cs" />
    <Compile Include="1.5\Source\Patches\RimworldPatches\HarmonyPatch_PawnRenderTree.cs" />
    <Compile Include="1.5\Source\Patches\RimworldPatches\HarmonyPatch_Pawn_DrawTracker.cs" />
    <Compile Include="1.5\Source\Patches\RimworldPatches\HarmonyPatch_Thing.cs" />
    <Compile Include="1.5\Source\Patches\RJWPatches\JobDrivers\JobDriver_Sex\HarmonyPatch_Animate.cs" />
    <Compile Include="1.5\Source\Patches\RJWPatches\JobDrivers\JobDriver_Sex\HarmonyPatch_PlaySexSounds.cs" />
    <Compile Include="1.5\Source\Patches\RJWPatches\JobDrivers\JobDriver_Sex\HarmonyPatch_SexTick.cs" />
    <Compile Include="1.5\Source\Patches\RJWPatches\HarmonyPatch_WorkGiverSex.cs" />
    <Compile Include="1.5\Source\Patches\RJWPatches\JobDrivers\HarmonyPatch_JobDriver_JoinInBed.cs" />
    <Compile Include="1.5\Source\Patches\RJWPatches\JobDrivers\HarmonyPatch_JobDriver_Sex.cs" />
    <Compile Include="1.5\Source\Patches\RJWPatches\JobDrivers\HarmonyPatch_JobDriver_SexBaseInitiator.cs" />
    <Compile Include="1.5\Source\Patches\RJWPatches\JobDrivers\SexBaseReceivers\HarmonyPatch_JobDriver_SexBaseReceiverRaped.cs" />
    <Compile Include="1.5\Source\Patches\RJWPatches\JobDrivers\SexBaseReceivers\HarmonyPatch_JobDriver_SexBaseReceiverLoved.cs" />
    <Compile Include="1.5\Source\PawnRenderNode\GraphicBodyTypeVariants\PawnRenderNodeProperties_GraphicBodyTypeVariants.cs" />
    <Compile Include="1.5\Source\PawnRenderNode\GraphicBodyTypeVariants\PawnRenderNodeWorker_GraphicBodyTypeVariants.cs" />
    <Compile Include="1.5\Source\PawnRenderNode\GraphicBodyTypeVariants\PawnRenderNode_GraphicBodyTypeVariants.cs" />
    <Compile Include="1.5\Source\PawnRenderNode\GraphicHediffSeverityVariants\PawnRenderNodeProperties_GraphicHediffSeverityVariants.cs" />
    <Compile Include="1.5\Source\PawnRenderNode\GraphicHediffSeverityVariants\PawnRenderNodeWorker_GraphicHediffSeverityVariants.cs" />
    <Compile Include="1.5\Source\PawnRenderNode\GraphicHediffSeverityVariants\PawnRenderNode_GraphicHediffSeverityVariants.cs" />
    <Compile Include="1.5\Source\PawnRenderNode\GraphicHediffVariants\PawnRenderNodeProperties_GraphicHediffVariants.cs" />
    <Compile Include="1.5\Source\PawnRenderNode\GraphicHediffVariants\PawnRenderNodeWorker_GraphicHediffVariants.cs" />
    <Compile Include="1.5\Source\PawnRenderNode\GraphicHediffVariants\PawnRenderNode_GraphicHediffVariants.cs" />
    <Compile Include="1.5\Source\PawnRenderNode\GraphicVariants\PawnRenderNodeProperties_GraphicVariants.cs" />
    <Compile Include="1.5\Source\PawnRenderNode\GraphicVariants\PawnRenderNodeWorker_GraphicVariants.cs" />
    <Compile Include="1.5\Source\PawnRenderNode\GraphicVariants\PawnRenderNode_GraphicVariants.cs" />
    <Compile Include="1.5\Source\PawnRenderNode\TexPathVariants.cs" />
    <Compile Include="1.5\Source\RenderSubWorkers\PawnRenderSubWorker_ChangeOffset.cs" />
    <Compile Include="1.5\Source\Patches\RJWPatches\RJWAnimationSettings.cs" />
    <Compile Include="1.5\Source\RenderSubWorkers\PawnRenderSubWorker_HideWhenAnimating.cs" />
    <Compile Include="1.5\Source\Utilities\AnimationUtility.cs" />
    <Compile Include="1.5\Source\Voices\VoiceDef.cs" />
    <Compile Include="1.5\Source\Voices\VoiceDefOf.cs" />
    <Compile Include="1.5\Source\Voices\VoiceTagDef.cs" />
    <Compile Include="Properties\AssemblyInfo.cs" />
  </ItemGroup>
  <ItemGroup>
    <Content Include="1.5\Assemblies\0MultiplayerAPI.dll" />
    <Content Include="1.5\Assemblies\Rimworld-Animations.dll" />
    <Content Include="1.5\Assemblies\RJW.dll" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Beast\DogBeast\GroupAnimation_DogBeast.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Beast\DogBeast\Stage1.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Beast\DogBeast\Stage2.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Beast\DogBeast\Stage3_Variant1.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Beast\DogBeast\Stage3_Variant2_FollowupWithVariant1.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Beast\DogBeast\Stage3_Variant3.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Beast\DogBeast\Stage4.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Beast\DogBeast\Stage5_Variant1.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Beast\DogBeast\Stage5_Variant2.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Beast\DogBeast\Stage5_Variant3.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Beast\DogBeast\Stage6.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Blowjob\AnimationPropDef_Cum.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Blowjob\GroupAnimation_Blowjob.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Blowjob\OffsetDef_Blowjob.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Blowjob\Stage1.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Blowjob\Stage2a.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Blowjob\Stage2b.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Blowjob\Stage2c.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Blowjob\Stage3.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Blowjob\Stage4a.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Blowjob\Stage4b.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Blowjob\Stage4c.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Blowjob\Stage5.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Blowjob\Stage6a.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Blowjob\Stage6b.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Cowgirl\AnimationPropDef_Cowgirl_Xray.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Cowgirl\Cowgirl_Stage1.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Cowgirl\Cowgirl_Stage2_1.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Cowgirl\Cowgirl_Stage2_2.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Cowgirl\Cowgirl_Stage2_3.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Cowgirl\Cowgirl_Stage3_XRay.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Cowgirl\Cowgirl_Stage4.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Cowgirl\Cowgirl_Stage_1_5.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Cowgirl\GroupAnimation_Cowgirl.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Cowgirl\OffsetDef_Cowgirl.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Cunnilingus\AnimationPropDef_Saliva.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Cunnilingus\GroupAnimation_Cunnilingus.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Cunnilingus\OffsetDef_Cunnilingus.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Cunnilingus\Stage1.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Cunnilingus\Stage2a.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Cunnilingus\Stage2b.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Cunnilingus\Stage2c.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Cunnilingus\Stage3_LoopOnce.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Cunnilingus\Stage4a.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Cunnilingus\Stage4b.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Cunnilingus\Stage4c.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Cunnilingus\Stage5.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Cunnilingus\Stage6.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\DoublePenetration\GroupAnimation_DP.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\DoublePenetration\OffsetDef_DP.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\DoublePenetration\Stage1.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\DoublePenetration\Stage2a.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\DoublePenetration\Stage2b.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\DoublePenetration\Stage2c.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\DoublePenetration\Stage2d.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\DoublePenetration\Stage3.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\DoublePenetration\Stage4.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\DoublePenetration\Stage5a.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\DoublePenetration\Stage5b.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\DoublePenetration\Stage5c.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\DoublePenetration\Stage5_Base.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Missionary\GroupAnimation_Missionary.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Missionary\OffsetDef_Missionary.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Missionary\Stage1.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Missionary\Stage2.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Missionary\Stage2b.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Missionary\Stage2c.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Missionary\Stage3_DontLoop.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Missionary\Stage4.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Missionary\Stage5.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Missionary\Stage6.xml" />
    <Content Include="1.5\Defs\AnimationPropDefs\AnimationPropDef_Hand.xml" />
    <Content Include="1.5\Defs\OffsetDefs\OffsetDef_Placeholder.xml" />
    <Content Include="1.5\Defs\TestDoNotPush\Experimental\1 Intro\Doggystyle Intro1.xml" />
    <Content Include="1.5\Defs\TestDoNotPush\Experimental\1 Intro\Doggystyle Intro2.xml" />
    <Content Include="1.5\Defs\TestDoNotPush\Experimental\1 Intro\Doggystyle Intro3.xml" />
    <Content Include="1.5\Defs\TestDoNotPush\Experimental\1 Intro\Doggystyle1a.xml" />
    <Content Include="1.5\Defs\TestDoNotPush\Experimental\2 Main\Doggystyle1b.xml" />
    <Content Include="1.5\Defs\TestDoNotPush\Experimental\2 Main\Doggystyle2.xml" />
    <Content Include="1.5\Defs\TestDoNotPush\Experimental\2 Main\Doggystyle3.xml" />
    <Content Include="1.5\Defs\TestDoNotPush\Experimental\2 Main\Doggystyle4.xml" />
    <Content Include="1.5\Defs\TestDoNotPush\Experimental\2 Main\Doggystyle5.xml" />
    <Content Include="1.5\Defs\TestDoNotPush\Experimental\2 Main\Doggystyle6.xml" />
    <Content Include="1.5\Defs\TestDoNotPush\Experimental\2 Main\Doggystyle7.xml" />
    <Content Include="1.5\Defs\TestDoNotPush\Experimental\3 Ending\Doggystyle8.xml" />
    <Content Include="1.5\Defs\TestDoNotPush\Experimental\3 Ending\Doggystyle8a.xml" />
    <Content Include="1.5\Defs\TestDoNotPush\Experimental\3 Ending\Doggystyle8b.xml" />
    <Content Include="1.5\Defs\TestDoNotPush\Experimental\3 Ending\Doggystyle8c.xml" />
    <Content Include="1.5\Defs\TestDoNotPush\Experimental\3 Ending\Doggystyle8d.xml" />
    <Content Include="1.5\Defs\TestDoNotPush\Experimental\3 Ending\Doggystyle8e.xml" />
    <Content Include="1.5\Defs\TestDoNotPush\Experimental\Misc\AnimationPropDef_BEV.xml" />
    <Content Include="1.5\Defs\TestDoNotPush\Experimental\Misc\GroupAnimation_Doggystyle_Condom_BEV.xml" />
    <Content Include="1.5\Defs\TestDoNotPush\Experimental\Misc\OffsetDef_Doggystyle_BEV.xml" />
    <Content Include="1.5\Defs\TestDoNotPush\Experimental\Misc\TexPathVariants_Doggystyle_BEV.xml" />
    <Content Include="1.5\Defs\TexPathVariantsDefs\TexPathVariants_XrayPenis_Human.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\TestAnimation\TestAnimation1.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\TestAnimation\TestAnimation2.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\TestAnimation\TestAnimation3.xml" />
    <Content Include="1.5\Defs\AnimationPropDefs\AnimationPropDef_Knees.xml" />
    <Content Include="1.5\Defs\AnimationPropDefs\AnimationPropDef_Xray_Inside.xml" />
    <Content Include="1.5\Defs\AnimationPropDefs\AnimationPropDef_Banana.xml" />
    <Content Include="1.5\Defs\AnimationPropDefs\AnimationPropDef_Xray_Penis.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\TestAnimation\TestGroupAnimation1.xml" />
    <Content Include="1.5\Defs\MainTabDefs\MainButtonDef.xml" />
    <Content Include="1.5\Defs\OffsetDefs\OffsetDef_GroinToAppropriateHeight.xml" />
    <Content Include="1.5\Defs\SoundDefs\Sounds_Sex.xml" />
    <Content Include="1.5\Defs\TexPathVariantsDefs\TexPathVariants_Cat.xml" />
    <Content Include="1.5\Defs\TexPathVariantsDefs\TexPathVariants_Arms.xml" />
    <Content Include="1.5\Defs\TexPathVariantsDefs\TexPathVariants_Knees.xml" />
    <Content Include="1.5\Defs\TexPathVariantsDefs\TexPathVariants_Xray_Inside.xml" />
    <Content Include="1.5\Defs\TexPathVariantsDefs\TexPathVariants_XrayPenis_Horse.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Cowgirl\TexPathVariants_Cowgirl.xml" />
    <Content Include="1.5\Defs\VoiceDefs\VoiceDef_Human\SoundDef_HumanFemale.xml" />
    <Content Include="1.5\Defs\VoiceDefs\VoiceDef_Human\SoundDef_HumanMale.xml" />
    <Content Include="1.5\Defs\VoiceDefs\VoiceDef_Human\VoiceDef_Human.xml" />
    <Content Include="1.5\Defs\VoiceDefs\VoiceDef_Orassan.xml" />
    <Content Include="1.5\Defs\VoiceDefs\VoiceTagDef.xml" />
    <Content Include="1.5\Patches\AnimationPatchHSK.xml" />
    <Content Include="1.5\Patches\AnimationPatch_CompExtendedAnimator.xml" />
    <Content Include="1.5\Patches\AnimationPatch_PawnRenderTree_OffsetSubWorker.xml" />
    <Content Include="1.5\Patches\CompatibilityPatch_FacialAnimation.xml" />
    <Content Include="1.5\Patches\CompatibilityPatch_HCSK.xml" />
    <Content Include="1.5\Patches\CompPatches\AutoCleaner.xml" />
    <Content Include="1.5\Patches\CompPatches\CombatExtended.xml" />
    <Content Include="1.5\Patches\CompPatches\ZombieLand.xml" />
    <Content Include="1.5\Patches\Patch_GenitaliaRenderNode.xml" />
    <Content Include="1.5\Sounds\Sex\Clap_1.wav" />
    <Content Include="1.5\Sounds\Sex\Clap_2.wav" />
    <Content Include="1.5\Sounds\Sex\Clap_3.wav" />
    <Content Include="1.5\Sounds\Sex\Clap_4.wav" />
    <Content Include="1.5\Sounds\Sex\Clap_5.wav" />
    <Content Include="1.5\Sounds\Sex\Clap_6.wav" />
    <Content Include="1.5\Sounds\Sex\Clap_7.wav" />
    <Content Include="1.5\Sounds\Sex\Clap_8.wav" />
    <Content Include="1.5\Sounds\Sex\cum.wav" />
    <Content Include="1.5\Sounds\Sex\kucyu04.wav" />
    <Content Include="1.5\Sounds\Sex\Slap\Slap_1.wav" />
    <Content Include="1.5\Sounds\Sex\Slap\Slap_2.wav" />
    <Content Include="1.5\Sounds\Sex\Slap\Slap_3.wav" />
    <Content Include="1.5\Sounds\Sex\Slap\Slap_4.wav" />
    <Content Include="1.5\Sounds\Sex\Slap\Slap_5.wav" />
    <Content Include="1.5\Sounds\Sex\Slime\Slimy1.wav" />
    <Content Include="1.5\Sounds\Sex\Slime\Slimy2.wav" />
    <Content Include="1.5\Sounds\Sex\Slime\Slimy3.wav" />
    <Content Include="1.5\Sounds\Sex\Slime\Slimy4.wav" />
    <Content Include="1.5\Sounds\Sex\Slime\Slimy5.wav" />
    <Content Include="1.5\Sounds\Sex\Suck\Suck_1.wav" />
    <Content Include="1.5\Sounds\Sex\Suck\Suck_10.wav" />
    <Content Include="1.5\Sounds\Sex\Suck\Suck_2.wav" />
    <Content Include="1.5\Sounds\Sex\Suck\Suck_3.wav" />
    <Content Include="1.5\Sounds\Sex\Suck\Suck_4.wav" />
    <Content Include="1.5\Sounds\Sex\Suck\Suck_5.wav" />
    <Content Include="1.5\Sounds\Sex\Suck\Suck_6.wav" />
    <Content Include="1.5\Sounds\Sex\Suck\Suck_7.wav" />
    <Content Include="1.5\Sounds\Sex\Suck\Suck_8.wav" />
    <Content Include="1.5\Sounds\Sex\Suck\Suck_9.wav" />
    <Content Include="1.5\Sounds\Sex\Suck\Swallow_1.wav" />
    <Content Include="1.5\Sounds\Sex\Suck\Swallow_2.wav" />
    <Content Include="1.5\Sounds\Sex\Suck\Swallow_3.wav" />
    <Content Include="1.5\Sounds\Voices\FVoice\Grunt1.wav" />
    <Content Include="1.5\Sounds\Voices\FVoice\Grunt2.wav" />
    <Content Include="1.5\Sounds\Voices\FVoice\Grunt3.wav" />
    <Content Include="1.5\Sounds\Voices\FVoice\Grunt4.wav" />
    <Content Include="1.5\Sounds\Voices\FVoice\Grunt5.wav" />
    <Content Include="1.5\Sounds\Voices\FVoice\Grunt6.wav" />
    <Content Include="1.5\Sounds\Voices\FVoice\Moan1.wav" />
    <Content Include="1.5\Sounds\Voices\FVoice\Moan2.wav" />
    <Content Include="1.5\Sounds\Voices\FVoice\Moan3.wav" />
    <Content Include="1.5\Sounds\Voices\FVoice\Moan4.wav" />
    <Content Include="1.5\Sounds\Voices\FVoice\MoanShort1.wav" />
    <Content Include="1.5\Sounds\Voices\FVoice\MoanShort2.wav" />
    <Content Include="1.5\Sounds\Voices\FVoice\MoanShort3.wav" />
    <Content Include="1.5\Sounds\Voices\FVoice\Scream1.wav" />
    <Content Include="1.5\Sounds\Voices\FVoice\Scream2.wav" />
    <Content Include="1.5\Sounds\Voices\FVoice\Scream3.wav" />
    <Content Include="1.5\Sounds\Voices\FVoice\Scream4.wav" />
    <Content Include="1.5\Sounds\Voices\MVoice\Grunt1.wav" />
    <Content Include="1.5\Sounds\Voices\MVoice\Grunt2.wav" />
    <Content Include="1.5\Sounds\Voices\MVoice\Grunt3.wav" />
    <Content Include="1.5\Sounds\Voices\MVoice\Grunt4.wav" />
    <Content Include="1.5\Sounds\Voices\MVoice\Moan1.wav" />
    <Content Include="1.5\Sounds\Voices\MVoice\Moan2.wav" />
    <Content Include="1.5\Sounds\Voices\MVoice\Moan3.wav" />
    <Content Include="1.5\Sounds\Voices\MVoice\Moan4.wav" />
    <Content Include="1.5\Sounds\Voices\MVoice\MoanShort1.wav" />
    <Content Include="1.5\Sounds\Voices\MVoice\MoanShort2.wav" />
    <Content Include="1.5\Sounds\Voices\MVoice\MoanShort3.wav" />
    <Content Include="1.5\Sounds\Voices\MVoice\Scream1.wav" />
    <Content Include="1.5\Sounds\Voices\MVoice\Scream2.wav" />
    <Content Include="1.5\Sounds\Voices\MVoice\Scream3.wav" />
    <Content Include="1.5\Textures\AnimationProps\Banana\Banana_east.png" />
    <Content Include="1.5\Textures\AnimationProps\Banana\Banana_north.png" />
    <Content Include="1.5\Textures\AnimationProps\Banana\Banana_south.png" />
    <Content Include="1.5\Textures\AnimationProps\Banana\Banana_west.png" />
    <Content Include="1.5\Textures\AnimationProps\Cat\Cat1_north.png" />
    <Content Include="1.5\Textures\AnimationProps\Cat\Cat2_north.png" />
    <Content Include="1.5\Textures\AnimationProps\Cum\Cum.png" />
    <Content Include="1.5\Textures\AnimationProps\Doggystyle\Doggy_Arms_north.png" />
    <Content Include="1.5\Textures\AnimationProps\Doggystyle\Doggy_Legs_north.png" />
    <Content Include="1.5\Textures\AnimationProps\Hand\Hand_north.png" />
    <Content Include="1.5\Textures\AnimationProps\MissingTexture\MissingTexture_east.png" />
    <Content Include="1.5\Textures\AnimationProps\MissingTexture\MissingTexture_north.png" />
    <Content Include="1.5\Textures\AnimationProps\MissingTexture\MissingTexture_south.png" />
    <Content Include="1.5\Textures\AnimationProps\MissingTexture\MissingTexture_west.png" />
    <Content Include="1.5\Textures\AnimationProps\CowgirlXray\XRay2-1.png" />
    <Content Include="1.5\Textures\AnimationProps\CowgirlXray\XRay2-2.png" />
    <Content Include="1.5\Textures\AnimationProps\CowgirlXray\XRay2-3.png" />
    <Content Include="1.5\Textures\AnimationProps\CowgirlXray\XRay2-4.png" />
    <Content Include="1.5\Textures\AnimationProps\CowgirlXray\XRay2-5.png" />
    <Content Include="1.5\Textures\AnimationProps\CowgirlXray\XRay2-6.png" />
    <Content Include="1.5\Textures\AnimationProps\Saliva\Saliva_north.png" />
    <Content Include="1.5\Textures\UI\MainTab.png" />
    <Content Include="About\About.xml" />
    <Content Include="About\Manifest.xml" />
    <Content Include="Languages\English\Keyed\RJWAnimations-LanguageData.xml" />
    <Content Include="Languages\PortugueseBrazilian\DefInjected\MainButtonDef\MainButtonDef.xml" />
    <Content Include="Languages\PortugueseBrazilian\DefInjected\Rimworld_Animations.AnimationDef\Animations_Beast.xml" />
    <Content Include="Languages\PortugueseBrazilian\DefInjected\Rimworld_Animations.AnimationDef\Animations_Lesbian.xml" />
    <Content Include="Languages\PortugueseBrazilian\DefInjected\Rimworld_Animations.AnimationDef\Animations_Multi.xml" />
    <Content Include="Languages\PortugueseBrazilian\DefInjected\Rimworld_Animations.AnimationDef\Animations_vanilla.xml" />
    <Content Include="LoadFolders.xml" />
    <Content Include="Patch_FacialAnimation\1.5\Patches\AnimationPatch_HideHeadWhenAnimating.xml" />
    <Content Include="Patch_NoRimNudeWorldZoo\1.5\Defs\PawnRenderNodeTagDef_AnimalPenisPlaceholder.xml" />
    <Content Include="Patch_NoRimNudeWorld\1.5\Defs\PawnRenderNodeTagDef_RimnudePenisPlaceholder.xml" />
  </ItemGroup>
  <ItemGroup>
    <Folder Include="1.5\Source\Extensions\" />
    <Folder Include="1.5\Source\Patches\OtherModPatches\" />
    <Folder Include="1.5\Source\Settings\" />
  </ItemGroup>
  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>


code:
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.29905.134
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Rimworld-Animations", "Rimworld-Animations.csproj", "{71B05D71-67B2-4014-82CD-18C20AC0882F}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Milkable-Colonists-Animations", "Milkable-Colonists-Animations\Milkable-Colonists-Animations.csproj", "{11DC70AF-FF23-4D4D-A4E5-6453664B1A12}"
EndProject
Global
	GlobalSection(SolutionConfigurationPlatforms) = preSolution
		Debug|Any CPU = Debug|Any CPU
		Release|Any CPU = Release|Any CPU
	EndGlobalSection
	GlobalSection(ProjectConfigurationPlatforms) = postSolution
		{71B05D71-67B2-4014-82CD-18C20AC0882F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
		{71B05D71-67B2-4014-82CD-18C20AC0882F}.Debug|Any CPU.Build.0 = Debug|Any CPU
		{71B05D71-67B2-4014-82CD-18C20AC0882F}.Release|Any CPU.ActiveCfg = Release|Any CPU
		{71B05D71-67B2-4014-82CD-18C20AC0882F}.Release|Any CPU.Build.0 = Release|Any CPU
		{11DC70AF-FF23-4D4D-A4E5-6453664B1A12}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
		{11DC70AF-FF23-4D4D-A4E5-6453664B1A12}.Debug|Any CPU.Build.0 = Debug|Any CPU
		{11DC70AF-FF23-4D4D-A4E5-6453664B1A12}.Release|Any CPU.ActiveCfg = Release|Any CPU
		{11DC70AF-FF23-4D4D-A4E5-6453664B1A12}.Release|Any CPU.Build.0 = Release|Any CPU
	EndGlobalSection
	GlobalSection(SolutionProperties) = preSolution
		HideSolutionNode = FALSE
	EndGlobalSection
	GlobalSection(ExtensibilityGlobals) = postSolution
		SolutionGuid = {7E01292A-D76F-4CA3-AA64-085B84ECD905}
	EndGlobalSection
EndGlobal


code:
# IDE, temp, generated, and other local-only files
.idea/
*.iml
node_modules/
tweego.exe
*.html

* Ignoring working folder for Quin2k
mod/

repo_name: BrokenSoul/degrees

path: .gitignore


code:
<NotepadPlus>
    <UserLang name="Sugarcube4" ext="twee tw" udlVersion="2.1">
        <Settings>
            <Global caseIgnored="no" allowFoldOfComments="no" foldCompact="yes" forcePureLC="0" decimalSeparator="0" />
            <Prefix Keywords1="yes" Keywords2="no" Keywords3="no" Keywords4="no" Keywords5="no" Keywords6="no" Keywords7="no" Keywords8="no" />
        </Settings>
        <KeywordLists>
            <Keywords name="Comments">00 01 02 03/% 03/* 03<!-- 04%/ 04*/ 04--></Keywords>
            <Keywords name="Numbers, prefix1"></Keywords>
            <Keywords name="Numbers, prefix2"></Keywords>
            <Keywords name="Numbers, extras1"></Keywords>
            <Keywords name="Numbers, extras2"></Keywords>
            <Keywords name="Numbers, suffix1"></Keywords>
            <Keywords name="Numbers, suffix2"></Keywords>
            <Keywords name="Numbers, range"></Keywords>
            <Keywords name="Operators1">+ - * / = += -= *= /= ++ -- == != === !== > < >= <= ! && || & | ( )</Keywords>
            <Keywords name="Operators2"></Keywords>
            <Keywords name="Folders in code1, open"><<if</Keywords>
            <Keywords name="Folders in code1, middle"></Keywords>
            <Keywords name="Folders in code1, close"><</if>></Keywords>
            <Keywords name="Folders in code2, open"></Keywords>
            <Keywords name="Folders in code2, middle"></Keywords>
            <Keywords name="Folders in code2, close"></Keywords>
            <Keywords name="Folders in comment, open"></Keywords>
            <Keywords name="Folders in comment, middle"></Keywords>
            <Keywords name="Folders in comment, close"></Keywords>
            <Keywords name="Keywords1">$ _</Keywords>
            <Keywords name="Keywords2"></Keywords>
            <Keywords name="Keywords3"></Keywords>
            <Keywords name="Keywords4"></Keywords>
            <Keywords name="Keywords5"></Keywords>
            <Keywords name="Keywords6"></Keywords>
            <Keywords name="Keywords7"></Keywords>
            <Keywords name="Keywords8"></Keywords>
            <Keywords name="Delimiters">00:: 01 02((EOL)) 03<< 04 05>> 06[[ 07 08]] 09< 10 11> 12'' 13 14'' 15// 16 17// 18@@ 19 20@@ 21[img[ 22 23]]</Keywords>
        </KeywordLists>
        <Styles>
            <WordsStyle name="DEFAULT" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
            <WordsStyle name="COMMENTS" fgColor="808080" bgColor="FFFFFF" fontName="" fontStyle="2" nesting="0" />
            <WordsStyle name="LINE COMMENTS" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
            <WordsStyle name="NUMBERS" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
            <WordsStyle name="KEYWORDS1" fgColor="004080" bgColor="FFFFFF" fontName="" fontStyle="1" nesting="0" />
            <WordsStyle name="KEYWORDS2" fgColor="8080C0" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
            <WordsStyle name="KEYWORDS3" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
            <WordsStyle name="KEYWORDS4" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
            <WordsStyle name="KEYWORDS5" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
            <WordsStyle name="KEYWORDS6" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
            <WordsStyle name="KEYWORDS7" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
            <WordsStyle name="KEYWORDS8" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
            <WordsStyle name="OPERATORS" fgColor="800040" bgColor="FFFFFF" fontName="" fontStyle="1" nesting="0" />
            <WordsStyle name="FOLDER IN CODE1" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="1" nesting="0" />
            <WordsStyle name="FOLDER IN CODE2" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
            <WordsStyle name="FOLDER IN COMMENT" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
            <WordsStyle name="DELIMITERS1" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="5" fontSize="12" nesting="0" />
            <WordsStyle name="DELIMITERS2" fgColor="800080" bgColor="FFFFFF" fontName="" fontStyle="1" nesting="50334724" />
            <WordsStyle name="DELIMITERS3" fgColor="0000FF" bgColor="FFFFFF" fontName="" fontStyle="1" nesting="1024" />
            <WordsStyle name="DELIMITERS4" fgColor="0000FF" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
            <WordsStyle name="DELIMITERS5" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="1" nesting="32" />
            <WordsStyle name="DELIMITERS6" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="2" nesting="16" />
            <WordsStyle name="DELIMITERS7" fgColor="008000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
            <WordsStyle name="DELIMITERS8" fgColor="8080FF" bgColor="FFFFFF" fontName="" fontStyle="1" nesting="0" />
        </Styles>
    </UserLang>
</NotepadPlus>


code:
# New 'n fresh build guide

This document contains updated information on what's required to update the game.

All tools required are free but require a bit of time to set up (1-time process)

## Requirements

 * SCSS (optional) [Download Here](https://sass-lang.com/install)
 * NPM / Node.js (optional) [Download Here](https://www.npmjs.com/get-npm)
 * Tweego [Download Here](https://www.motoslave.net/tweego/)

## Building base.js

 * Navigate to /src in your terminal/IDE of choice and run "npm install"
 * Next, in the same folder run "npm run build"
 * That's it, a base.js file should appear in the /game folder now, ready for tweego compile

## Compiling the game

Assuming that no css or js files were changed, no SCSS or NPM actions are required, you're free to simply run compile.bat or equivalent.

Mind that resources can be out of date if you don't recompile SCSS and create a new base.js file, and the game might not function correctly.


code:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="48" height="48" version="1.1" inkscape:version="0.48.0 r9654">
  <defs id="defs4"/>
  <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="11.313708" inkscape:cx="27.203376" inkscape:cy="26.578528" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" inkscape:window-width="1280" inkscape:window-height="968" inkscape:window-x="-4" inkscape:window-y="-4" inkscape:window-maximized="1">
    <inkscape:grid type="xygrid" id="grid2985" empspacing="5" visible="true" enabled="true" snapvisiblegridlinesonly="true"/>
  </sodipodi:namedview>
  <g inkscape:label="Layer 1" inkscape:groupmode="layer" id="layer1" transform="translate(0,-1004.3622)">
    <g id="g3000" transform="translate(-6,1003)">
      <path sodipodi:nodetypes="ccccc" inkscape:connector-curvature="0" id="path2987" d="m 30,2.3621826 -20,10.0000004 20,10 20,-10 z" style="fill:#f9f9f9;stroke:none"/>
      <path style="fill:#ececec;stroke:none" d="m 30,22.362183 0,25 20,-10 0,-25 z" id="path2989" inkscape:connector-curvature="0" sodipodi:nodetypes="ccccc"/>
      <path sodipodi:nodetypes="ccccc" inkscape:connector-curvature="0" id="path2991" d="m 30,22.362183 0,25 -20,-10 0,-25 z" style="fill:#cccccc;stroke:none"/>
      <path inkscape:connector-curvature="0" id="path2993" d="M 30,2.3749996 10,12.375 l 0,25 20,10 20,-10 0,-25 L 30,2.3749996 z" style="fill:none;stroke:#4d4d4d;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"/>
    </g>
  </g>
  <metadata>
    <rdf:RDF>
      <cc:Work>
        <dc:format>image/svg+xml</dc:format>
        <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
        <cc:license rdf:resource="http://creativecommons.org/licenses/publicdomain/"/>
        <dc:publisher>
          <cc:Agent rdf:about="http://openclipart.org/">
            <dc:title>Open Clip Art Library</dc:title>
          </cc:Agent>
        </dc:publisher>
        <dc:title>Sugar Cube icon</dc:title>
        <dc:date>2010-10-10T11:46:52</dc:date>
        <dc:description>A sugar cube.</dc:description>
        <dc:source>http://openclipart.org/detail/89407/sugar-cube-icon-by-jhnri4</dc:source>
        <dc:creator>
          <cc:Agent>
            <dc:title>jhnri4</dc:title>
          </cc:Agent>
        </dc:creator>
        <dc:subject>
          <rdf:Bag>
            <rdf:li>SVG</rdf:li>
            <rdf:li>block</rdf:li>
            <rdf:li>clip art</rdf:li>
            <rdf:li>clipart</rdf:li>
            <rdf:li>cube</rdf:li>
            <rdf:li>icon</rdf:li>
            <rdf:li>sugar</rdf:li>
            <rdf:li>white</rdf:li>
          </rdf:Bag>
        </dc:subject>
      </cc:Work>
      <cc:License rdf:about="http://creativecommons.org/licenses/publicdomain/">
        <cc:permits rdf:resource="http://creativecommons.org/ns#Reproduction"/>
        <cc:permits rdf:resource="http://creativecommons.org/ns#Distribution"/>
        <cc:permits rdf:resource="http://creativecommons.org/ns#DerivativeWorks"/>
      </cc:License>
    </rdf:RDF>
  </metadata>
</svg>


code:
$GameDirectory = "game";
$GameDirectoryRoot = Join-Path $PSScriptRoot $GameDirectory;

$VariableList = "variable_rename_list.txt";
$VariableFile = Join-Path $PSScriptRoot $VariableList;

Write-Host "File is " $VariableFile;
Write-Host "Directory for .twee scripts is " $GameDirectoryRoot;

if (-Not (Test-Path -Path $VariableFile)) {
    Write-Host "The specified file apparently does not exist, quitting.";
    Exit-PSSession;
}

if (-Not (Test-Path -Path $GameDirectoryRoot)) {
    Write-Host "The specified game directory does not exist, quitting.";
    Exit-PSSession;
}

$ReplaceVariables = @();

foreach ($line in Get-Content $VariableFile) {
    if ($line -match '^\$') {
        $ReplaceVariables += , $line.Split(" ")
    }
}

if ($ReplaceVariables.Length -eq 0) {
    Write-Host "No variables to replace found, quitting.";
    Exit-PSSession;
}

$GameFileList = Get-ChildItem -Path $GameDirectoryRoot -Recurse -Include "*.twee";

if ($GameFileList.Length -eq 0) {
    Write-Host "No files found in the game directory, quitting.";
    Exit-PSSession;
}

Write-Host $ReplaceVariables.Length "variables to replace found";
Write-Host $GameFileList.Length "files found, please make a backup and press enter to continue";
$null = $Host.UI.RawUI.ReadKey('NoEcho,IncludeKeyDown');

Write-Host "Working...";


code:
@set TWEEGO_PATH=%cd%\StoryFormats
@tweego -o "Degrees of Lewdity VERSION.html" game
echo "Game compiled"