mirror of
				https://gitgud.io/c0ffeeeeeeee/rimworld-animations.git
				synced 2024-08-15 00:43:45 +00:00 
			
		
		
		
	added:
offsets, dynamically set in animation animation prop graphics, absolute positioning, changing textures, can be used in animation
This commit is contained in:
		
							parent
							
								
									6b5c67018a
								
							
						
					
					
						commit
						32f3b1522f
					
				
					 34 changed files with 424 additions and 144 deletions
				
			
		
										
											Binary file not shown.
										
									
								
							| 
						 | 
				
			
			@ -10,7 +10,7 @@
 | 
			
		|||
		
 | 
			
		||||
		<!-- Note: props always return graphic_multi; set cardinal textures to blank and only north in anim if only one tex-->
 | 
			
		||||
		<!-- or draw east, south, and west directions, use them in animations? -->
 | 
			
		||||
		<animPropProperties>
 | 
			
		||||
		<animPropProperties Class="Rimworld_Animations.PawnRenderNodeProperties_GraphicVariants">
 | 
			
		||||
			<debugLabel>AnimProp_Banana</debugLabel>
 | 
			
		||||
			<nodeClass>Rimworld_Animations.PawnRenderNode_GraphicVariants</nodeClass>
 | 
			
		||||
			<workerClass>Rimworld_Animations.PawnRenderNodeWorker_GraphicVariants</workerClass>
 | 
			
		||||
| 
						 | 
				
			
			@ -27,6 +27,26 @@
 | 
			
		|||
				<li>AnimationProps/Cat/Cat2</li>
 | 
			
		||||
			</texPathVariants>
 | 
			
		||||
 | 
			
		||||
			<absolutePosition>True</absolutePosition>
 | 
			
		||||
			
 | 
			
		||||
		</animPropProperties>
 | 
			
		||||
	</Rimworld_Animations.AnimationPropDef>
 | 
			
		||||
 | 
			
		||||
	<PawnRenderNodeTagDef>
 | 
			
		||||
		<defName>RenderNodeTag_Genitals</defName>
 | 
			
		||||
	</PawnRenderNodeTagDef>
 | 
			
		||||
 | 
			
		||||
	<Rimworld_Animations.AnimationPropDef>
 | 
			
		||||
		<defName>AnimationProp_Genitals</defName>
 | 
			
		||||
 | 
			
		||||
		<animPropProperties>
 | 
			
		||||
			<debugLabel>AnimProp_Genitals</debugLabel>
 | 
			
		||||
			<useGraphic>false</useGraphic>
 | 
			
		||||
			<tagDef>RenderNodeTag_Genitals</tagDef>
 | 
			
		||||
			<parentTagDef>Body</parentTagDef>
 | 
			
		||||
			<!-- for height -->
 | 
			
		||||
			<overlayLayer>Head</overlayLayer>
 | 
			
		||||
			<baseLayer>95</baseLayer>
 | 
			
		||||
		</animPropProperties>
 | 
			
		||||
	</Rimworld_Animations.AnimationPropDef>
 | 
			
		||||
</Defs>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -24,51 +24,16 @@
 | 
			
		|||
					</li>
 | 
			
		||||
				</loopOptions>
 | 
			
		||||
			</li>
 | 
			
		||||
			
 | 
			
		||||
			<!--
 | 
			
		||||
			<li Class="Rimworld_Animations.AnimationStage_Branch">
 | 
			
		||||
				<paths>
 | 
			
		||||
					<li Class="Rimworld_Animations.AnimationStage_LoopRandomSelectChance">
 | 
			
		||||
						<loops>10</loops>
 | 
			
		||||
						<loopOptions>
 | 
			
		||||
							<li>
 | 
			
		||||
								<probability>3</probability>
 | 
			
		||||
								<animationDefs>
 | 
			
		||||
									<li>TestAnimation1</li>
 | 
			
		||||
									<li>TestAnimation1</li>
 | 
			
		||||
								</animationDefs>
 | 
			
		||||
							</li>
 | 
			
		||||
							<li>
 | 
			
		||||
								<probability>1</probability>
 | 
			
		||||
								<animationDefs>
 | 
			
		||||
									<li>TestAnimation1</li>
 | 
			
		||||
									<li>TestAnimation1</li>
 | 
			
		||||
								</animationDefs>
 | 
			
		||||
							</li>
 | 
			
		||||
						</loopOptions>
 | 
			
		||||
						
 | 
			
		||||
					</li>
 | 
			
		||||
					<li Class="Rimworld_Animations.AnimationStage_LoopRandomSelectChance">
 | 
			
		||||
						<loops>10</loops>
 | 
			
		||||
						<loopOptions>
 | 
			
		||||
							<li>
 | 
			
		||||
								<probability>3</probability>
 | 
			
		||||
								<animationDefs>
 | 
			
		||||
									<li>TestAnimation2</li>
 | 
			
		||||
									<li>TestAnimation2</li>
 | 
			
		||||
								</animationDefs>
 | 
			
		||||
							</li>
 | 
			
		||||
 | 
			
		||||
							<li>
 | 
			
		||||
								<probability>1</probability>
 | 
			
		||||
								<animationDefs>
 | 
			
		||||
									<li>TestAnimation2</li>
 | 
			
		||||
									<li>TestAnimation2</li>
 | 
			
		||||
								</animationDefs>
 | 
			
		||||
							</li>
 | 
			
		||||
						</loopOptions>
 | 
			
		||||
 | 
			
		||||
					</li>
 | 
			
		||||
					<li>GroupAnimationDef1_1</li>
 | 
			
		||||
					<li>GroupAnimationDef1_2</li>
 | 
			
		||||
				</paths>
 | 
			
		||||
			</li>
 | 
			
		||||
			-->
 | 
			
		||||
			
 | 
			
		||||
		</animationStages>
 | 
			
		||||
			
 | 
			
		||||
		<contexts>
 | 
			
		||||
| 
						 | 
				
			
			@ -87,12 +52,11 @@
 | 
			
		|||
 | 
			
		||||
			</li>
 | 
			
		||||
		</contexts>
 | 
			
		||||
		<!--
 | 
			
		||||
		<OffsetDefs>
 | 
			
		||||
			<li>GroinToAppropriateHeight</li>
 | 
			
		||||
			<li>GroinToAppropriateHeight</li>
 | 
			
		||||
		</OffsetDefs>
 | 
			
		||||
 | 
			
		||||
		-->
 | 
			
		||||
		<offsetDefs>
 | 
			
		||||
			<li>GroinToAppropriateHeight</li> <!-- first pawn in animation -->
 | 
			
		||||
			<li>GroinToAppropriateHeight</li> <!-- second pawn in animation -->
 | 
			
		||||
		</offsetDefs>
 | 
			
		||||
 | 
			
		||||
	</Rimworld_Animations.GroupAnimationDef>
 | 
			
		||||
</Defs>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,38 +1,44 @@
 | 
			
		|||
<?xml version="1.0" encoding="utf-8" ?>
 | 
			
		||||
<Defs>
 | 
			
		||||
	<Rimworld_Animations.OffsetDef>
 | 
			
		||||
	<Rimworld_Animations.AnimationOffsetDef>
 | 
			
		||||
		<defName>GroinToAppropriateHeight</defName>
 | 
			
		||||
		<bodyTypeOffsets>
 | 
			
		||||
			<li>
 | 
			
		||||
				<bodyType>Male</bodyType>
 | 
			
		||||
				<offset>(0, 0, 0.5)</offset>
 | 
			
		||||
		<offsets>
 | 
			
		||||
			<li Class="Rimworld_Animations.AnimationOffset_Single">
 | 
			
		||||
				<races>
 | 
			
		||||
					<li>Alien_Orassan</li>
 | 
			
		||||
				</races>
 | 
			
		||||
				<offset>(0, 0, 5)</offset>
 | 
			
		||||
			</li>
 | 
			
		||||
		</bodyTypeOffsets>
 | 
			
		||||
		<raceOffsets>
 | 
			
		||||
			<li Class="Rimworld_Animations.RaceOffsets_BodyTypes" MayRequire="erdelf.HumanoidAlienRaces,Minecraft.Mod">
 | 
			
		||||
				<def>MinecraftCreeper</def>
 | 
			
		||||
				<genderGraphics>
 | 
			
		||||
					<Female>
 | 
			
		||||
						<Hulk>(0, 0, 0.5)</Hulk>
 | 
			
		||||
						<Thin>(0, 0, 0.3)</Thin>
 | 
			
		||||
					</Female>
 | 
			
		||||
					<Male>
 | 
			
		||||
						<Hulk>(0, 0, 0.5)</Hulk>
 | 
			
		||||
						<Thin>(0, 0, 0.3)</Thin>
 | 
			
		||||
					</Male>
 | 
			
		||||
				</genderGraphics>
 | 
			
		||||
 | 
			
		||||
			<li Class="Rimworld_Animations.AnimationOffset_BodyType">
 | 
			
		||||
				<races>
 | 
			
		||||
					<li>Human</li>
 | 
			
		||||
				</races>
 | 
			
		||||
				<offsets>
 | 
			
		||||
					<li><bodyType>Hulk</bodyType><offset>(0, 0, 0.5)</offset></li>
 | 
			
		||||
					<li><bodyType>Thin</bodyType><offset>(0, 0, 0.3)</offset></li>
 | 
			
		||||
					<li><bodyType>Female</bodyType><offset>(0, 0, 0.4)</offset></li>
 | 
			
		||||
				</offsets>
 | 
			
		||||
			</li>
 | 
			
		||||
			<li Class="Rimworld_Animations.RaceOffsets_DifferentBodyTypes" MayRequire="Specific.Mod,Other.Cool.Mod">
 | 
			
		||||
				<def>MinecraftPig</def>
 | 
			
		||||
				<bodyType>Male</bodyType>
 | 
			
		||||
				<offset>(0, 0, -0.5)</offset>
 | 
			
		||||
			
 | 
			
		||||
			<li Class="Rimworld_Animations.AnimationOffset_BodyTypeGendered" MayRequire="erdelf.HumanoidAlienRaces,Minecraft.Mod">
 | 
			
		||||
				<races>
 | 
			
		||||
					<li>MinecraftCreeper</li>
 | 
			
		||||
				</races>
 | 
			
		||||
				<offsetsMale>
 | 
			
		||||
					<li><bodyType>Hulk</bodyType><offset>(0, 0, 0.5)</offset></li>
 | 
			
		||||
					<li><bodyType>Male</bodyType><offset>(0, 0, 0.5)</offset></li>
 | 
			
		||||
					<li><bodyType>Female</bodyType><offset>(0, 0, 0.5)</offset></li>
 | 
			
		||||
					<li><bodyType>Thin</bodyType><offset>(0, 0, 0.3)</offset></li>
 | 
			
		||||
				</offsetsMale>
 | 
			
		||||
				<offsetsFemale>
 | 
			
		||||
					<li><bodyType>Hulk</bodyType><offset>(0, 0, 0.5)</offset></li>
 | 
			
		||||
					<li><bodyType>Male</bodyType><offset>(0, 0, 0.5)</offset></li>
 | 
			
		||||
					<li><bodyType>Female</bodyType><offset>(0, 0, 0.5)</offset></li>
 | 
			
		||||
					<li><bodyType>Thin</bodyType><offset>(0, 0, 0.3)</offset></li>
 | 
			
		||||
				</offsetsFemale>
 | 
			
		||||
			</li>
 | 
			
		||||
			<li Class="Rimworld_Animations.RaceOffsets_DifferentBodyTypes" MayRequire="Specific.Minecraft.Mod">
 | 
			
		||||
				<def>MinecraftPig</def>
 | 
			
		||||
				<bodyType>Female</bodyType>
 | 
			
		||||
				<offset>(0, 0, -0.5)</offset>
 | 
			
		||||
			</li>
 | 
			
		||||
		</raceOffsets>
 | 
			
		||||
	</Rimworld_Animations.OffsetDef>
 | 
			
		||||
		</offsets>
 | 
			
		||||
	</Rimworld_Animations.AnimationOffsetDef>
 | 
			
		||||
</Defs>
 | 
			
		||||
	
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,27 @@
 | 
			
		|||
<?xml version="1.0" encoding="utf-8" ?>
 | 
			
		||||
<Patch>
 | 
			
		||||
	<!-- add offset rendersubworker to all pawn render tree defs -->
 | 
			
		||||
	<Operation Class="PatchOperationSequence">
 | 
			
		||||
		<success>Always</success>
 | 
			
		||||
		<operations>
 | 
			
		||||
			<li Class="PatchOperationConditional">
 | 
			
		||||
				<xpath>/Defs/PawnRenderTreeDef/root/subworkerClasses</xpath>
 | 
			
		||||
				<success>Always</success>
 | 
			
		||||
				<nomatch Class="PatchOperationAdd">
 | 
			
		||||
					<xpath>/Defs/PawnRenderTreeDef/root</xpath>
 | 
			
		||||
					<value>
 | 
			
		||||
						<subworkerClasses />
 | 
			
		||||
					</value>
 | 
			
		||||
				</nomatch>
 | 
			
		||||
			</li>
 | 
			
		||||
 | 
			
		||||
			<li Class="PatchOperationAdd">
 | 
			
		||||
				<xpath>/Defs/PawnRenderTreeDef/root/subworkerClasses</xpath>
 | 
			
		||||
				<value>
 | 
			
		||||
					<li>Rimworld_Animations.PawnRenderSubWorker_ChangeOffset</li>
 | 
			
		||||
				</value>
 | 
			
		||||
			</li>
 | 
			
		||||
		</operations>
 | 
			
		||||
	</Operation>
 | 
			
		||||
 | 
			
		||||
</Patch>
 | 
			
		||||
| 
						 | 
				
			
			@ -1,18 +0,0 @@
 | 
			
		|||
using System;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using System.Linq;
 | 
			
		||||
using System.Text;
 | 
			
		||||
using System.Threading.Tasks;
 | 
			
		||||
using UnityEngine;
 | 
			
		||||
 | 
			
		||||
namespace Rimworld_Animations {
 | 
			
		||||
    public class BodyTypeOffset {
 | 
			
		||||
 | 
			
		||||
        public Vector2? Male;
 | 
			
		||||
        public Vector2? Female;
 | 
			
		||||
        public Vector2? Thin;
 | 
			
		||||
        public Vector2? Hulk;
 | 
			
		||||
        public Vector2? Fat;
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										33
									
								
								1.5/Source/Animations/AnimationOffsets/AnimationOffsetDef.cs
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								1.5/Source/Animations/AnimationOffsets/AnimationOffsetDef.cs
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,33 @@
 | 
			
		|||
using System;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using System.Linq;
 | 
			
		||||
using System.Text;
 | 
			
		||||
using System.Threading.Tasks;
 | 
			
		||||
using UnityEngine;
 | 
			
		||||
using Verse;
 | 
			
		||||
 | 
			
		||||
namespace Rimworld_Animations
 | 
			
		||||
{
 | 
			
		||||
    public class AnimationOffsetDef : Def
 | 
			
		||||
    {
 | 
			
		||||
 | 
			
		||||
        public List<BaseAnimationOffset> offsets;
 | 
			
		||||
 | 
			
		||||
        public Vector3 FindOffset(Pawn pawn)
 | 
			
		||||
        {
 | 
			
		||||
            foreach (BaseAnimationOffset animOffset in offsets)
 | 
			
		||||
            {
 | 
			
		||||
                if (animOffset.appliesToPawn(pawn)) {
 | 
			
		||||
 | 
			
		||||
                    Vector3? offset = animOffset.getOffset(pawn);
 | 
			
		||||
                    return (offset == null ? Vector3.zero : (Vector3)offset);
 | 
			
		||||
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            return Vector3.zero;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,23 @@
 | 
			
		|||
using RimWorld;
 | 
			
		||||
using System;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using System.Linq;
 | 
			
		||||
using System.Text;
 | 
			
		||||
using System.Threading.Tasks;
 | 
			
		||||
using UnityEngine;
 | 
			
		||||
using Verse;
 | 
			
		||||
 | 
			
		||||
namespace Rimworld_Animations
 | 
			
		||||
{
 | 
			
		||||
    public class AnimationOffset_BodyType : BaseAnimationOffset
 | 
			
		||||
    {
 | 
			
		||||
 | 
			
		||||
        public List<BodyTypeOffset> offsets;
 | 
			
		||||
 | 
			
		||||
        public override Vector3? getOffset(Pawn pawn)
 | 
			
		||||
        {
 | 
			
		||||
            return offsets.Find(x => x.bodyType == pawn.story.bodyType)?.offset;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,30 @@
 | 
			
		|||
using System;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using System.Linq;
 | 
			
		||||
using System.Text;
 | 
			
		||||
using System.Threading.Tasks;
 | 
			
		||||
using UnityEngine;
 | 
			
		||||
using Verse;
 | 
			
		||||
 | 
			
		||||
namespace Rimworld_Animations
 | 
			
		||||
{
 | 
			
		||||
    public class AnimationOffset_BodyTypeGendered : BaseAnimationOffset
 | 
			
		||||
    {
 | 
			
		||||
 | 
			
		||||
        public List<BodyTypeOffset> offsetsMale;
 | 
			
		||||
        public List<BodyTypeOffset> offsetsFemale;
 | 
			
		||||
 | 
			
		||||
        public override Vector3? getOffset(Pawn pawn)
 | 
			
		||||
        {
 | 
			
		||||
            if (pawn.gender == Gender.Female)
 | 
			
		||||
            {
 | 
			
		||||
                return offsetsFemale.Find(x => x.bodyType == pawn.story.bodyType)?.offset;
 | 
			
		||||
            }
 | 
			
		||||
            else
 | 
			
		||||
            {
 | 
			
		||||
                return offsetsMale.Find(x => x.bodyType == pawn.story.bodyType)?.offset;
 | 
			
		||||
            }
 | 
			
		||||
            
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,21 @@
 | 
			
		|||
using System;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using System.Linq;
 | 
			
		||||
using System.Text;
 | 
			
		||||
using System.Threading.Tasks;
 | 
			
		||||
using UnityEngine;
 | 
			
		||||
using Verse;
 | 
			
		||||
 | 
			
		||||
namespace Rimworld_Animations
 | 
			
		||||
{
 | 
			
		||||
    public class AnimationOffset_Single : BaseAnimationOffset
 | 
			
		||||
    {
 | 
			
		||||
 | 
			
		||||
        public Vector3 offset;
 | 
			
		||||
 | 
			
		||||
        public override Vector3? getOffset(Pawn pawn)
 | 
			
		||||
        {
 | 
			
		||||
            return offset;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,25 @@
 | 
			
		|||
using RimWorld;
 | 
			
		||||
using System;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using System.Linq;
 | 
			
		||||
using System.Text;
 | 
			
		||||
using System.Threading.Tasks;
 | 
			
		||||
using UnityEngine;
 | 
			
		||||
using Verse;
 | 
			
		||||
 | 
			
		||||
namespace Rimworld_Animations
 | 
			
		||||
{
 | 
			
		||||
    public abstract class BaseAnimationOffset
 | 
			
		||||
    {
 | 
			
		||||
        public List<ThingDef> races;
 | 
			
		||||
 | 
			
		||||
        public abstract Vector3? getOffset(Pawn pawn);
 | 
			
		||||
 | 
			
		||||
        public bool appliesToPawn(Pawn pawn)
 | 
			
		||||
        {
 | 
			
		||||
            return races.Contains(pawn.def);
 | 
			
		||||
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,17 @@
 | 
			
		|||
using RimWorld;
 | 
			
		||||
using System;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using System.Linq;
 | 
			
		||||
using System.Text;
 | 
			
		||||
using System.Threading.Tasks;
 | 
			
		||||
using UnityEngine;
 | 
			
		||||
 | 
			
		||||
namespace Rimworld_Animations
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
    public class BodyTypeOffset
 | 
			
		||||
    {
 | 
			
		||||
        public BodyTypeDef bodyType;
 | 
			
		||||
        public Vector3 offset;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -10,7 +10,7 @@ namespace Rimworld_Animations
 | 
			
		|||
    public class AnimationPropDef : Def
 | 
			
		||||
    {
 | 
			
		||||
 | 
			
		||||
        public PawnRenderNodeProperties_GraphicVariants animPropProperties;
 | 
			
		||||
        public PawnRenderNodeProperties animPropProperties;
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -18,6 +18,7 @@ namespace Rimworld_Animations
 | 
			
		|||
        public override Vector3 OffsetAtTick(int tick, PawnDrawParms parms)
 | 
			
		||||
        {
 | 
			
		||||
            //Todo: Use this for bodyoffsets
 | 
			
		||||
            //or maybe make a rendersubworker for it instead
 | 
			
		||||
            return base.OffsetAtTick(tick, parms);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -3,6 +3,7 @@ using System.Collections.Generic;
 | 
			
		|||
using System.Linq;
 | 
			
		||||
using System.Text;
 | 
			
		||||
using System.Threading.Tasks;
 | 
			
		||||
using UnityEngine;
 | 
			
		||||
using Verse;
 | 
			
		||||
 | 
			
		||||
namespace Rimworld_Animations
 | 
			
		||||
| 
						 | 
				
			
			@ -12,6 +13,7 @@ namespace Rimworld_Animations
 | 
			
		|||
        public int numActors;
 | 
			
		||||
        public List<AnimationStage> animationStages;
 | 
			
		||||
        public List<BaseGroupAnimationContext> contexts;
 | 
			
		||||
        public List<AnimationOffsetDef> offsetDefs;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        public bool canAnimationBeUsed(List<Pawn> actors, out int reorder)
 | 
			
		||||
| 
						 | 
				
			
			@ -48,5 +50,12 @@ namespace Rimworld_Animations
 | 
			
		|||
 | 
			
		||||
            return animations;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public Vector3? GetOffset(int actor, Pawn pawn, int reorder = 0)
 | 
			
		||||
        {
 | 
			
		||||
            //element at or default to stop errors
 | 
			
		||||
            if (offsetDefs == null) return null;
 | 
			
		||||
            return offsetDefs[(actor + reorder) % numActors].FindOffset(pawn);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,26 @@
 | 
			
		|||
using System;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using System.Linq;
 | 
			
		||||
using System.Text;
 | 
			
		||||
using System.Threading.Tasks;
 | 
			
		||||
using Verse;
 | 
			
		||||
 | 
			
		||||
namespace Rimworld_Animations
 | 
			
		||||
{
 | 
			
		||||
    public class AnimationStage_Branch : AnimationStage
 | 
			
		||||
    {
 | 
			
		||||
        public List<GroupAnimationDef> paths;
 | 
			
		||||
        public override List<AnimationDef> GetAnimations(int actorNumber, int seed)
 | 
			
		||||
        {
 | 
			
		||||
            List<AnimationDef> animationDefs = new List<AnimationDef>();
 | 
			
		||||
 | 
			
		||||
            //loop thru the selected groupanimationdef path
 | 
			
		||||
            foreach (AnimationStage stage in paths[(seed * 59) % paths.Count].animationStages)
 | 
			
		||||
            {
 | 
			
		||||
                animationDefs.AddRange(stage.GetAnimations(actorNumber, seed));
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            return animationDefs;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -19,6 +19,7 @@ namespace Rimworld_Animations {
 | 
			
		|||
 | 
			
		||||
        private List<AnimationDef> animationQueue;
 | 
			
		||||
        private BaseExtendedAnimatorAnchor anchor;
 | 
			
		||||
        private Vector3? offset;
 | 
			
		||||
        private bool isAnimating = false;
 | 
			
		||||
 | 
			
		||||
        
 | 
			
		||||
| 
						 | 
				
			
			@ -38,12 +39,23 @@ namespace Rimworld_Animations {
 | 
			
		|||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public Vector3? Offset
 | 
			
		||||
        {
 | 
			
		||||
            get
 | 
			
		||||
            {
 | 
			
		||||
                return offset;
 | 
			
		||||
            }
 | 
			
		||||
            set
 | 
			
		||||
            {
 | 
			
		||||
                this.offset = value;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public Vector3 getAnchor()
 | 
			
		||||
        {
 | 
			
		||||
            return anchor.getDrawPos();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        public override void CompTick()
 | 
			
		||||
        {
 | 
			
		||||
            if (isAnimating)
 | 
			
		||||
| 
						 | 
				
			
			@ -99,19 +111,21 @@ namespace Rimworld_Animations {
 | 
			
		|||
            isAnimating = false;
 | 
			
		||||
            animationQueue = null;
 | 
			
		||||
            anchor = null;
 | 
			
		||||
            offset = null;
 | 
			
		||||
            pawn.Drawer.renderer.SetAnimation(null);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public void PlayGroupAnimation(List<AnimationDef> groupAnimation)
 | 
			
		||||
        public void PlayGroupAnimation(List<AnimationDef> groupAnimation, Vector3? offset)
 | 
			
		||||
        {
 | 
			
		||||
            this.Offset = offset;
 | 
			
		||||
            animationQueue = groupAnimation;
 | 
			
		||||
            PlayNextAnimation();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public void PlayGroupAnimation(List<AnimationDef> groupAnimation, BaseExtendedAnimatorAnchor anchor)
 | 
			
		||||
        public void PlayGroupAnimation(List<AnimationDef> groupAnimation, Vector3? offset, BaseExtendedAnimatorAnchor anchor)
 | 
			
		||||
        {
 | 
			
		||||
            this.anchor = anchor;
 | 
			
		||||
            PlayGroupAnimation(groupAnimation);
 | 
			
		||||
            PlayGroupAnimation(groupAnimation, offset);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public override void PostExposeData()
 | 
			
		||||
| 
						 | 
				
			
			@ -137,8 +151,16 @@ namespace Rimworld_Animations {
 | 
			
		|||
                    //if animation makes use of prop,
 | 
			
		||||
                    if (AnimationMakesUseOfProp(animationProp))
 | 
			
		||||
                    {
 | 
			
		||||
 | 
			
		||||
                        PawnRenderNodeProperties props = animationProp.animPropProperties;
 | 
			
		||||
 | 
			
		||||
                        //create new render node
 | 
			
		||||
                        PawnRenderNode_GraphicVariants animRenderNode = new PawnRenderNode_GraphicVariants(pawn, animationProp.animPropProperties, pawn.Drawer.renderer.renderTree);
 | 
			
		||||
                        PawnRenderNode animRenderNode = (PawnRenderNode)Activator.CreateInstance(props.nodeClass, new object[] {
 | 
			
		||||
                            this.pawn,
 | 
			
		||||
                            props,
 | 
			
		||||
                            pawn.Drawer.renderer.renderTree
 | 
			
		||||
                        });
 | 
			
		||||
 | 
			
		||||
                        animRenderNodes.Add(animRenderNode);
 | 
			
		||||
                    }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,18 +0,0 @@
 | 
			
		|||
using System;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using System.Linq;
 | 
			
		||||
using System.Text;
 | 
			
		||||
using System.Threading.Tasks;
 | 
			
		||||
using Verse;
 | 
			
		||||
 | 
			
		||||
namespace Rimworld_Animations
 | 
			
		||||
{
 | 
			
		||||
    public class AnimationStage_Branch : AnimationStage
 | 
			
		||||
    {
 | 
			
		||||
        public List<AnimationStage> paths;
 | 
			
		||||
        public override List<AnimationDef> GetAnimations(int actorNumber, int seed)
 | 
			
		||||
        {
 | 
			
		||||
            return paths[(seed * 59) % paths.Count].GetAnimations(actorNumber, seed);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -5,6 +5,7 @@ using System.Collections.Generic;
 | 
			
		|||
using System.Linq;
 | 
			
		||||
using System.Text;
 | 
			
		||||
using System.Threading.Tasks;
 | 
			
		||||
using UnityEngine;
 | 
			
		||||
using Verse;
 | 
			
		||||
 | 
			
		||||
namespace Rimworld_Animations
 | 
			
		||||
| 
						 | 
				
			
			@ -13,9 +14,11 @@ namespace Rimworld_Animations
 | 
			
		|||
    [HarmonyPatch(typeof(PawnRenderTree), "TryGetMatrix")]
 | 
			
		||||
    public class HarmonyPatch_PawnRenderTree
 | 
			
		||||
    {
 | 
			
		||||
        public static void Prefix(PawnRenderTree __instance, Dictionary<PawnRenderNodeTagDef, PawnRenderNode> ___nodesByTag, PawnRenderNode node, ref PawnDrawParms parms)
 | 
			
		||||
        public static bool Prefix(PawnRenderTree __instance, Dictionary<PawnRenderNodeTagDef, PawnRenderNode> ___nodesByTag, PawnRenderNode node, ref PawnDrawParms parms, ref Matrix4x4 matrix, ref bool __result)
 | 
			
		||||
        {
 | 
			
		||||
 | 
			
		||||
            /*
 | 
			
		||||
             * Facing fix
 | 
			
		||||
             */
 | 
			
		||||
            //find lowest parent that is animating, or nothing if not animating
 | 
			
		||||
            PawnRenderNode animatingNode = node;
 | 
			
		||||
            while (animatingNode != null
 | 
			
		||||
| 
						 | 
				
			
			@ -30,6 +33,27 @@ namespace Rimworld_Animations
 | 
			
		|||
                //change parm to facing to animate correctly
 | 
			
		||||
                parms.facing = animatingNodeAnimationWorker.facingAtTick(__instance.AnimationTick);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            /*
 | 
			
		||||
             * Set Render Node to absolute position
 | 
			
		||||
             */
 | 
			
		||||
            if (node.Props is PawnRenderNodeProperties_GraphicVariants graphicVariantProp
 | 
			
		||||
                && graphicVariantProp.absolutePosition)
 | 
			
		||||
            {
 | 
			
		||||
                matrix = parms.matrix;
 | 
			
		||||
                float num = node.Worker.AltitudeFor(node, parms);
 | 
			
		||||
                if (num != 0f)
 | 
			
		||||
                {
 | 
			
		||||
                    matrix *= Matrix4x4.Translate(Vector3.up * num);
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                __result = true;
 | 
			
		||||
                return false;
 | 
			
		||||
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            return true;
 | 
			
		||||
          
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -11,6 +11,7 @@ namespace Rimworld_Animations
 | 
			
		|||
    {
 | 
			
		||||
 | 
			
		||||
        public List<string> texPathVariants;
 | 
			
		||||
        public bool absolutePosition = false;
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,30 @@
 | 
			
		|||
using System;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using System.Linq;
 | 
			
		||||
using System.Text;
 | 
			
		||||
using System.Threading.Tasks;
 | 
			
		||||
using UnityEngine;
 | 
			
		||||
using Verse;
 | 
			
		||||
 | 
			
		||||
namespace Rimworld_Animations
 | 
			
		||||
{
 | 
			
		||||
    public class PawnRenderSubWorker_ChangeOffset : PawnRenderSubWorker
 | 
			
		||||
    {
 | 
			
		||||
 | 
			
		||||
        public override void TransformOffset(PawnRenderNode node, PawnDrawParms parms, ref Vector3 offset, ref Vector3 pivot)
 | 
			
		||||
        {
 | 
			
		||||
            if (node.AnimationWorker is AnimationWorker_KeyframesExtended
 | 
			
		||||
                && node.tree.pawn.TryGetComp<CompExtendedAnimator>(out CompExtendedAnimator extendedAnimator)
 | 
			
		||||
                && extendedAnimator.IsAnimating)
 | 
			
		||||
            {
 | 
			
		||||
                Vector3? pawnOffset = extendedAnimator.Offset;
 | 
			
		||||
                if (pawnOffset != null)
 | 
			
		||||
                {
 | 
			
		||||
                    offset += (Vector3)pawnOffset;
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -30,20 +30,21 @@ namespace Rimworld_Animations {
 | 
			
		|||
 | 
			
		||||
            for (int i = 0; i < participants.Count; i++)
 | 
			
		||||
            {
 | 
			
		||||
 | 
			
		||||
                Vector3? offset = groupAnimationDef.GetOffset(i, participants[i], reorder);
 | 
			
		||||
 | 
			
		||||
                if (anchor is Pawn pawn && pawn == participants[i])
 | 
			
		||||
                {
 | 
			
		||||
 | 
			
		||||
                    List<AnimationDef> allAnimationsForPawn = groupAnimationDef.GetAllAnimationsForActor(i, seed, reorder);
 | 
			
		||||
                    participants[i].TryGetComp<CompExtendedAnimator>().PlayGroupAnimation(allAnimationsForPawn);
 | 
			
		||||
                    participants[i].TryGetComp<CompExtendedAnimator>().PlayGroupAnimation(allAnimationsForPawn, offset);
 | 
			
		||||
                }
 | 
			
		||||
                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);
 | 
			
		||||
 | 
			
		||||
                    participants[i].TryGetComp<CompExtendedAnimator>().PlayGroupAnimation(allAnimationsForPawn, animatorAnchor);
 | 
			
		||||
                    participants[i].TryGetComp<CompExtendedAnimator>().PlayGroupAnimation(allAnimationsForPawn, offset, animatorAnchor);
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
| 
						 | 
				
			
			@ -56,7 +57,8 @@ namespace Rimworld_Animations {
 | 
			
		|||
            for (int i = 0; i < participants.Count; i++)
 | 
			
		||||
            {
 | 
			
		||||
                List<AnimationDef> allAnimationsForPawn = groupAnimationDef.GetAllAnimationsForActor(i, seed, reorder);
 | 
			
		||||
                participants[i].TryGetComp<CompExtendedAnimator>().PlayGroupAnimation(allAnimationsForPawn);
 | 
			
		||||
                Vector3? offset = groupAnimationDef.GetOffset(i, participants[i], reorder);
 | 
			
		||||
                participants[i].TryGetComp<CompExtendedAnimator>().PlayGroupAnimation(allAnimationsForPawn, offset);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
										
											Binary file not shown.
										
									
								
							| 
						 | 
				
			
			@ -0,0 +1,23 @@
 | 
			
		|||
using System;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using System.Linq;
 | 
			
		||||
using System.Text;
 | 
			
		||||
using System.Threading.Tasks;
 | 
			
		||||
using Verse;
 | 
			
		||||
using HarmonyLib;
 | 
			
		||||
using System.Reflection;
 | 
			
		||||
 | 
			
		||||
namespace Patch_SexToysMasturbation
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
    [StaticConstructorOnStartup]
 | 
			
		||||
    public static class Harmony_PatchAll {
 | 
			
		||||
 | 
			
		||||
        static Harmony_PatchAll() {
 | 
			
		||||
 | 
			
		||||
            Harmony val = new Harmony("harmonypatch");
 | 
			
		||||
            val.PatchAll(Assembly.GetExecutingAssembly());
 | 
			
		||||
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -38,6 +38,7 @@
 | 
			
		|||
    </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>
 | 
			
		||||
| 
						 | 
				
			
			@ -69,7 +70,12 @@
 | 
			
		|||
    </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>
 | 
			
		||||
| 
						 | 
				
			
			@ -71,9 +71,14 @@
 | 
			
		|||
  <ItemGroup>
 | 
			
		||||
    <Compile Include="1.5\Source\Actors\Actor.cs" />
 | 
			
		||||
    <Compile Include="1.5\Source\Actors\AlienRaceOffset.cs" />
 | 
			
		||||
    <Compile Include="1.5\Source\Actors\BodyTypeOffset.cs" />
 | 
			
		||||
    <Compile Include="1.5\Source\AnimationProps\AnimationPropDef.cs" />
 | 
			
		||||
    <Compile Include="1.5\Source\AnimationWorkers\AnimationWorker_KeyframesExtended.cs" />
 | 
			
		||||
    <Compile Include="1.5\Source\Animations\AnimationOffsets\AnimationOffsetDef.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\Comps\CompExtendedAnimator.cs" />
 | 
			
		||||
    <Compile Include="1.5\Source\Comps\CompProperties_ExtendedAnimator.cs" />
 | 
			
		||||
    <Compile Include="1.5\Source\Comps\CompProperties_ThingAnimator.cs" />
 | 
			
		||||
| 
						 | 
				
			
			@ -82,14 +87,14 @@
 | 
			
		|||
    <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\GroupAnimations\GroupAnimationContexts\BaseGroupAnimationContext.cs" />
 | 
			
		||||
    <Compile Include="1.5\Source\GroupAnimations\GroupAnimationContexts\GroupAnimationContext_RJWSex.cs" />
 | 
			
		||||
    <Compile Include="1.5\Source\GroupAnimations\GroupAnimationDef.cs" />
 | 
			
		||||
    <Compile Include="1.5\Source\GroupAnimations\GroupAnimationStages\AnimationStage.cs" />
 | 
			
		||||
    <Compile Include="1.5\Source\GroupAnimations\GroupAnimationStages\AnimationStage_Branch.cs" />
 | 
			
		||||
    <Compile Include="1.5\Source\GroupAnimations\GroupAnimationStages\AnimationStage_LoopRandomSelectChance.cs" />
 | 
			
		||||
    <Compile Include="1.5\Source\GroupAnimations\GroupAnimationStages\AnimationStage_TicksDuration.cs" />
 | 
			
		||||
    <Compile Include="1.5\Source\Keyframes\ExtendedKeyframe.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" />
 | 
			
		||||
| 
						 | 
				
			
			@ -107,9 +112,10 @@
 | 
			
		|||
    <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\PawnRenderNodeProperties_GraphicVariants.cs" />
 | 
			
		||||
    <Compile Include="1.5\Source\PawnRenderNode\PawnRenderNodeWorker_GraphicVariants.cs" />
 | 
			
		||||
    <Compile Include="1.5\Source\PawnRenderNode\PawnRenderNode_GraphicVariants.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\RenderSubWorkers\PawnRenderSubWorker_ChangeOffset.cs" />
 | 
			
		||||
    <Compile Include="1.5\Source\Settings\AnimationSettings.cs" />
 | 
			
		||||
    <Compile Include="1.5\Source\Utilities\AnimationUtility.cs" />
 | 
			
		||||
    <Compile Include="Properties\AssemblyInfo.cs" />
 | 
			
		||||
| 
						 | 
				
			
			@ -127,6 +133,7 @@
 | 
			
		|||
    <Content Include="1.5\Defs\SoundDefs\Sounds_Sex.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" />
 | 
			
		||||
| 
						 | 
				
			
			@ -178,7 +185,6 @@
 | 
			
		|||
  <ItemGroup>
 | 
			
		||||
    <Folder Include="1.5\Source\Extensions\" />
 | 
			
		||||
    <Folder Include="1.5\Source\Patches\OtherModPatches\" />
 | 
			
		||||
    <Folder Include="1.5\Source\RenderSubWorkers\" />
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
 | 
			
		||||
</Project>
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue