Compare commits

...

3 commits

Author SHA1 Message Date
c0ffee
1419a57f30 added some offsets for animations 2024-04-29 17:50:15 -07:00
c0ffee
72a2566e9e depth fixes for missionary anim 2024-04-29 17:06:30 -07:00
c0ffee
3b1282fd3c Added cowgirl animation, missionary animation
Tweaks to prop visibility, hidden when not animating
made looping general, added to branch stages
2024-04-29 14:21:15 -07:00
40 changed files with 3175 additions and 25 deletions

View file

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<PawnRenderNodeTagDef>
<defName>RenderNodeTag_Cowgirl_Xray</defName>
</PawnRenderNodeTagDef>
<Rimworld_Animations.AnimationPropDef>
<defName>AnimProp_Cowgirl_Xray</defName>
<animPropProperties Class="Rimworld_Animations.PawnRenderNodeProperties_GraphicVariants">
<debugLabel>Cowgirl Xray</debugLabel>
<nodeClass>Rimworld_Animations.PawnRenderNode_GraphicVariants</nodeClass>
<workerClass>Rimworld_Animations.PawnRenderNodeWorker_GraphicVariants</workerClass>
<tagDef>RenderNodeTag_Cowgirl_Xray</tagDef>
<absoluteTransform>True</absoluteTransform>
<parentTagDef>Body</parentTagDef>
<!-- for height -->
<texPath>AnimationProps/CowgirlXray/XRay2-1</texPath>
<overlayLayer>Head</overlayLayer>
<baseLayer>95</baseLayer>
<texPathVariantsDef>TexPathVariants_Cowgirl_Xray</texPathVariantsDef>
</animPropProperties>
</Rimworld_Animations.AnimationPropDef>
</Defs>

View file

@ -0,0 +1,172 @@
<?xml version="1.0" encoding="utf-8"?>
<Defs>
<AnimationDef>
<defName>Male_Cowgirl_Stage1</defName>
<durationTicks>150</durationTicks>
<animationParts>
<li>
<key>Root</key>
<value>
<workerClass>Rimworld_Animations.AnimationWorker_KeyframesExtended</workerClass>
<keyframes>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>0</tick>
<angle>180</angle>
<visible>true</visible>
<offset>(0, 0, -0.7)</offset>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>55</tick>
<angle>180</angle>
<visible>true</visible>
<offset>(0, 0, -0.7)</offset>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>110</tick>
<angle>180</angle>
<visible>true</visible>
<offset>(0, 0, -0.75)</offset>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>150</tick>
<angle>180</angle>
<visible>true</visible>
<offset>(0, 0, -0.7)</offset>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
</keyframes>
</value>
</li>
<li>
<key>Head</key>
<value>
<workerClass>Rimworld_Animations.AnimationWorker_KeyframesExtended</workerClass>
<keyframes>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>0</tick>
<angle>0</angle>
<visible>true</visible>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
</keyframes>
</value>
</li>
<li MayRequire="shauaputa.rimnudeworld">
<key>RimNude_Penis</key>
<value>
<workerClass>Rimworld_Animations.AnimationWorker_KeyframesExtended</workerClass>
<keyframes>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>0</tick>
<angle>190</angle>
<visible>true</visible>
<offset>(0, 1, 0)</offset>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>70</tick>
<angle>170</angle>
<visible>true</visible>
<offset>(0, 1, 0)</offset>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>150</tick>
<angle>180</angle>
<visible>true</visible>
<offset>(0, 1, 0)</offset>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
</keyframes>
</value>
</li>
</animationParts>
</AnimationDef>
<AnimationDef>
<defName>Female_Cowgirl_Stage1</defName>
<durationTicks>150</durationTicks>
<animationParts>
<li>
<key>Root</key>
<value>
<workerClass>Rimworld_Animations.AnimationWorker_KeyframesExtended</workerClass>
<keyframes>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>0</tick>
<angle>15</angle>
<visible>true</visible>
<offset>(0.2, 2, 0.5)</offset>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>30</tick>
<angle>15</angle>
<visible>true</visible>
<offset>(0.1, 2, 0.5)</offset>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>110</tick>
<angle>0</angle>
<visible>true</visible>
<offset>(0, 2, 0.2)</offset>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>150</tick>
<angle>0</angle>
<visible>true</visible>
<offset>(0, 2, 0.23)</offset>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
</keyframes>
</value>
</li>
<li>
<key>Head</key>
<value>
<workerClass>Rimworld_Animations.AnimationWorker_KeyframesExtended</workerClass>
<keyframes>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>0</tick>
<angle>-15</angle>
<visible>true</visible>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>55</tick>
<angle>-15</angle>
<visible>true</visible>
<offset>(0, 0, -0.05)</offset>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>110</tick>
<angle>0</angle>
<visible>true</visible>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
</keyframes>
</value>
</li>
</animationParts>
</AnimationDef>
</Defs>

View file

@ -0,0 +1,140 @@
<?xml version="1.0" encoding="utf-8"?>
<Defs>
<AnimationDef>
<defName>Male_Cowgirl_Stage2_1</defName>
<durationTicks>30</durationTicks>
<animationParts>
<li>
<key>Root</key>
<value>
<workerClass>Rimworld_Animations.AnimationWorker_KeyframesExtended</workerClass>
<keyframes>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>0</tick>
<angle>180</angle>
<visible>true</visible>
<offset>(0, 0, -0.7)</offset>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>20</tick>
<angle>180</angle>
<visible>true</visible>
<offset>(0, 0, -0.65)</offset>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>30</tick>
<angle>180</angle>
<visible>true</visible>
<offset>(0, 0, -0.7)</offset>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
</keyframes>
</value>
</li>
<li>
<key>Head</key>
<value>
<workerClass>Rimworld_Animations.AnimationWorker_KeyframesExtended</workerClass>
<keyframes>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>0</tick>
<angle>0</angle>
<visible>true</visible>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
</keyframes>
</value>
</li>
<li MayRequire="shauaputa.rimnudeworld">
<key>RimNude_Penis</key>
<value>
<workerClass>Rimworld_Animations.AnimationWorker_KeyframesExtended</workerClass>
<keyframes>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>0</tick>
<angle>180</angle>
<visible>true</visible>
<offset>(0, 1, 0)</offset>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
</keyframes>
</value>
</li>
</animationParts>
</AnimationDef>
<AnimationDef>
<defName>Female_Cowgirl_Stage2_1</defName>
<durationTicks>30</durationTicks>
<animationParts>
<li>
<key>Root</key>
<value>
<workerClass>Rimworld_Animations.AnimationWorker_KeyframesExtended</workerClass>
<keyframes>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>0</tick>
<angle>0</angle>
<visible>true</visible>
<offset>(0, 2, 0.23)</offset>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>10</tick>
<angle>0</angle>
<visible>true</visible>
<offset>(0, 2, 0.43)</offset>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>30</tick>
<angle>0</angle>
<visible>true</visible>
<offset>(0, 2, 0.23)</offset>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
</keyframes>
</value>
</li>
<li>
<key>Head</key>
<value>
<workerClass>Rimworld_Animations.AnimationWorker_KeyframesExtended</workerClass>
<keyframes>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>0</tick>
<angle>0</angle>
<visible>true</visible>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>15</tick>
<angle>0</angle>
<visible>true</visible>
<offset>(0, 0, -0.04)</offset>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>30</tick>
<angle>0</angle>
<visible>true</visible>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
</keyframes>
</value>
</li>
</animationParts>
</AnimationDef>
</Defs>

View file

@ -0,0 +1,140 @@
<?xml version="1.0" encoding="utf-8"?>
<Defs>
<AnimationDef>
<defName>Male_Cowgirl_Stage2_2</defName>
<durationTicks>30</durationTicks>
<animationParts>
<li>
<key>Root</key>
<value>
<workerClass>Rimworld_Animations.AnimationWorker_KeyframesExtended</workerClass>
<keyframes>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>0</tick>
<angle>180</angle>
<visible>true</visible>
<offset>(0, 0, -0.7)</offset>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>20</tick>
<angle>180</angle>
<visible>true</visible>
<offset>(0, 0, -0.65)</offset>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>30</tick>
<angle>180</angle>
<visible>true</visible>
<offset>(0, 0, -0.7)</offset>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
</keyframes>
</value>
</li>
<li>
<key>Head</key>
<value>
<workerClass>Rimworld_Animations.AnimationWorker_KeyframesExtended</workerClass>
<keyframes>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>0</tick>
<angle>0</angle>
<visible>true</visible>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
</keyframes>
</value>
</li>
<li MayRequire="shauaputa.rimnudeworld">
<key>RimNude_Penis</key>
<value>
<workerClass>Rimworld_Animations.AnimationWorker_KeyframesExtended</workerClass>
<keyframes>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>0</tick>
<angle>180</angle>
<visible>true</visible>
<offset>(0, 1, 0)</offset>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
</keyframes>
</value>
</li>
</animationParts>
</AnimationDef>
<AnimationDef>
<defName>Female_Cowgirl_Stage2_2</defName>
<durationTicks>30</durationTicks>
<animationParts>
<li>
<key>Root</key>
<value>
<workerClass>Rimworld_Animations.AnimationWorker_KeyframesExtended</workerClass>
<keyframes>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>0</tick>
<angle>0</angle>
<visible>true</visible>
<offset>(0, 2, 0.23)</offset>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>10</tick>
<angle>7</angle>
<visible>true</visible>
<offset>(0, 2, 0.43)</offset>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>30</tick>
<angle>0</angle>
<visible>true</visible>
<offset>(0, 2, 0.23)</offset>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
</keyframes>
</value>
</li>
<li>
<key>Head</key>
<value>
<workerClass>Rimworld_Animations.AnimationWorker_KeyframesExtended</workerClass>
<keyframes>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>0</tick>
<angle>0</angle>
<visible>true</visible>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>15</tick>
<angle>-7</angle>
<visible>true</visible>
<offset>(0, 0, -0.04)</offset>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>30</tick>
<angle>0</angle>
<visible>true</visible>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
</keyframes>
</value>
</li>
</animationParts>
</AnimationDef>
</Defs>

View file

@ -0,0 +1,156 @@
<?xml version="1.0" encoding="utf-8"?>
<Defs>
<AnimationDef>
<defName>Male_Cowgirl_Stage2_3</defName>
<durationTicks>30</durationTicks>
<animationParts>
<li>
<key>Root</key>
<value>
<workerClass>Rimworld_Animations.AnimationWorker_KeyframesExtended</workerClass>
<keyframes>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>0</tick>
<angle>180</angle>
<visible>true</visible>
<offset>(0, 0, -0.7)</offset>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>20</tick>
<angle>180</angle>
<visible>true</visible>
<offset>(0, 0, -0.65)</offset>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>30</tick>
<angle>180</angle>
<visible>true</visible>
<offset>(0, 0, -0.7)</offset>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
</keyframes>
</value>
</li>
<li>
<key>Head</key>
<value>
<workerClass>Rimworld_Animations.AnimationWorker_KeyframesExtended</workerClass>
<keyframes>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>0</tick>
<angle>0</angle>
<visible>true</visible>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
</keyframes>
</value>
</li>
<li MayRequire="shauaputa.rimnudeworld">
<key>RimNude_Penis</key>
<value>
<workerClass>Rimworld_Animations.AnimationWorker_KeyframesExtended</workerClass>
<keyframes>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>0</tick>
<angle>180</angle>
<visible>true</visible>
<offset>(0, 1, 0)</offset>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
</keyframes>
</value>
</li>
</animationParts>
</AnimationDef>
<AnimationDef>
<defName>Female_Cowgirl_Stage2_3</defName>
<durationTicks>30</durationTicks>
<animationParts>
<li>
<key>Root</key>
<value>
<workerClass>Rimworld_Animations.AnimationWorker_KeyframesExtended</workerClass>
<keyframes>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>0</tick>
<angle>0</angle>
<visible>true</visible>
<offset>(0, 2, 0.23)</offset>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>10</tick>
<angle>7</angle>
<visible>true</visible>
<offset>(0, 2, 0.43)</offset>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>15</tick>
<angle>-7</angle>
<visible>true</visible>
<offset>(0.03, 2, 0.43)</offset>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>30</tick>
<angle>0</angle>
<visible>true</visible>
<offset>(0, 2, 0.23)</offset>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
</keyframes>
</value>
</li>
<li>
<key>Head</key>
<value>
<workerClass>Rimworld_Animations.AnimationWorker_KeyframesExtended</workerClass>
<keyframes>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>0</tick>
<angle>0</angle>
<visible>true</visible>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>10</tick>
<angle>-7</angle>
<visible>true</visible>
<offset>(0, 0, -0.07)</offset>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>15</tick>
<angle>7</angle>
<visible>true</visible>
<offset>(0, 0, -0.07)</offset>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>30</tick>
<angle>0</angle>
<visible>true</visible>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
</keyframes>
</value>
</li>
</animationParts>
</AnimationDef>
</Defs>

View file

@ -0,0 +1,216 @@
<?xml version="1.0" encoding="utf-8"?>
<Defs>
<AnimationDef>
<defName>Male_Cowgirl_Stage3</defName>
<durationTicks>25</durationTicks>
<animationParts>
<li>
<key>Root</key>
<value>
<workerClass>Rimworld_Animations.AnimationWorker_KeyframesExtended</workerClass>
<keyframes>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>0</tick>
<angle>180</angle>
<visible>true</visible>
<offset>(0, 0, -0.7)</offset>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>20</tick>
<angle>180</angle>
<visible>true</visible>
<offset>(0, 0, -0.6)</offset>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>25</tick>
<angle>180</angle>
<visible>true</visible>
<offset>(0, 0, -0.7)</offset>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
</keyframes>
</value>
</li>
<li>
<key>Head</key>
<value>
<workerClass>Rimworld_Animations.AnimationWorker_KeyframesExtended</workerClass>
<keyframes>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>0</tick>
<angle>0</angle>
<visible>true</visible>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>10</tick>
<angle>0</angle>
<visible>true</visible>
<offset>(0, 0, 0.03)</offset>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>25</tick>
<angle>0</angle>
<visible>true</visible>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
</keyframes>
</value>
</li>
<li MayRequire="shauaputa.rimnudeworld">
<key>RimNude_Penis</key>
<value>
<workerClass>Rimworld_Animations.AnimationWorker_KeyframesExtended</workerClass>
<keyframes>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>0</tick>
<angle>180</angle>
<visible>true</visible>
<offset>(0, 1, 0)</offset>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
</keyframes>
</value>
</li>
</animationParts>
</AnimationDef>
<AnimationDef>
<defName>Female_Cowgirl_Stage3</defName>
<durationTicks>25</durationTicks>
<animationParts>
<li>
<key>Root</key>
<value>
<workerClass>Rimworld_Animations.AnimationWorker_KeyframesExtended</workerClass>
<keyframes>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>0</tick>
<angle>0</angle>
<visible>true</visible>
<offset>(0, 2, 0.23)</offset>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>7</tick>
<angle>3</angle>
<visible>true</visible>
<offset>(0, 2, 0.43)</offset>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>25</tick>
<angle>0</angle>
<visible>true</visible>
<offset>(0, 2, 0.23)</offset>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
</keyframes>
</value>
</li>
<li>
<key>Head</key>
<value>
<workerClass>Rimworld_Animations.AnimationWorker_KeyframesExtended</workerClass>
<keyframes>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>0</tick>
<angle>0</angle>
<visible>true</visible>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>20</tick>
<angle>0</angle>
<visible>true</visible>
<offset>(0, 0, 0.03)</offset>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>25</tick>
<angle>0</angle>
<visible>true</visible>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
</keyframes>
</value>
</li>
<li>
<key>RenderNodeTag_Cowgirl_Xray</key>
<value>
<workerClass>Rimworld_Animations.AnimationWorker_KeyframesExtended</workerClass>
<keyframes>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>0</tick>
<angle>0</angle>
<visible>true</visible>
<offset>(1, 0, 0.3)</offset>
<scale>(0.5, 1, 0.5)</scale>
<rotation>North</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>5</tick>
<angle>0</angle>
<visible>true</visible>
<offset>(1, 0, 0.3)</offset>
<scale>(0.5, 1, 0.5)</scale>
<rotation>North</rotation>
<variant>1</variant>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>10</tick>
<angle>0</angle>
<visible>true</visible>
<offset>(1, 0, 0.3)</offset>
<scale>(0.52, 1, 0.52)</scale>
<rotation>North</rotation>
<variant>2</variant>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>15</tick>
<angle>1</angle>
<visible>true</visible>
<offset>(1, 0, 0.3)</offset>
<scale>(0.52, 1, 0.52)</scale>
<rotation>North</rotation>
<variant>3</variant>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>20</tick>
<angle>2</angle>
<visible>true</visible>
<offset>(1, 0, 0.3)</offset>
<scale>(0.5, 1, 0.5)</scale>
<rotation>North</rotation>
<variant>2</variant>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>25</tick>
<angle>1</angle>
<visible>true</visible>
<offset>(1, 0, 0.3)</offset>
<scale>(0.5, 1, 0.5)</scale>
<rotation>North</rotation>
<variant>1</variant>
</li>
</keyframes>
</value>
</li>
</animationParts>
</AnimationDef>
</Defs>

View file

@ -0,0 +1,270 @@
<?xml version="1.0" encoding="utf-8"?>
<Defs>
<AnimationDef>
<defName>Male_Cowgirl_Stage4</defName>
<durationTicks>200</durationTicks>
<animationParts>
<li>
<key>Root</key>
<value>
<workerClass>Rimworld_Animations.AnimationWorker_KeyframesExtended</workerClass>
<keyframes>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>0</tick>
<angle>180</angle>
<visible>true</visible>
<offset>(0, 0, -0.7)</offset>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>60</tick>
<angle>180</angle>
<visible>true</visible>
<offset>(0, 0, -0.7)</offset>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>70</tick>
<angle>180</angle>
<visible>true</visible>
<offset>(0, 0, -0.67)</offset>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>75</tick>
<angle>180</angle>
<visible>true</visible>
<offset>(0, 0, -0.7)</offset>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>125</tick>
<angle>180</angle>
<visible>true</visible>
<offset>(0, 0, -0.7)</offset>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>135</tick>
<angle>180</angle>
<visible>true</visible>
<offset>(0, 0, -0.67)</offset>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>150</tick>
<angle>180</angle>
<visible>true</visible>
<offset>(0, 0, -0.7)</offset>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>200</tick>
<angle>180</angle>
<visible>true</visible>
<offset>(0, 0, -0.72)</offset>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
</keyframes>
</value>
</li>
<li>
<key>Head</key>
<value>
<workerClass>Rimworld_Animations.AnimationWorker_KeyframesExtended</workerClass>
<keyframes>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>0</tick>
<angle>0</angle>
<visible>true</visible>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>75</tick>
<angle>0</angle>
<visible>true</visible>
<offset>(0, 0, -0.02)</offset>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>200</tick>
<angle>0</angle>
<visible>true</visible>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
</keyframes>
</value>
</li>
<li MayRequire="shauaputa.rimnudeworld">
<key>RimNude_Penis</key>
<value>
<workerClass>Rimworld_Animations.AnimationWorker_KeyframesExtended</workerClass>
<keyframes>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>0</tick>
<angle>180</angle>
<visible>true</visible>
<offset>(0, 1, 0)</offset>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
</keyframes>
</value>
</li>
</animationParts>
</AnimationDef>
<AnimationDef>
<defName>Female_Cowgirl_Stage4</defName>
<durationTicks>200</durationTicks>
<animationParts>
<li>
<key>Root</key>
<value>
<workerClass>Rimworld_Animations.AnimationWorker_KeyframesExtended</workerClass>
<keyframes>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>0</tick>
<angle>0</angle>
<visible>true</visible>
<offset>(0, 2, 0.23)</offset>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>75</tick>
<angle>0</angle>
<visible>true</visible>
<offset>(0, 2, 0.26)</offset>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>85</tick>
<angle>0</angle>
<visible>true</visible>
<offset>(0, 2, 0.23)</offset>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>135</tick>
<angle>0</angle>
<visible>true</visible>
<offset>(0, 2, 0.26)</offset>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>200</tick>
<angle>0</angle>
<visible>true</visible>
<offset>(0, 2, 0.23)</offset>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
</keyframes>
</value>
</li>
<li>
<key>Head</key>
<value>
<workerClass>Rimworld_Animations.AnimationWorker_KeyframesExtended</workerClass>
<keyframes>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>0</tick>
<angle>0</angle>
<visible>true</visible>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>50</tick>
<angle>0</angle>
<visible>true</visible>
<offset>(0, 0, 0.02)</offset>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>100</tick>
<angle>0</angle>
<visible>true</visible>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>150</tick>
<angle>0</angle>
<visible>true</visible>
<offset>(0, 0, 0.025)</offset>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>200</tick>
<angle>0</angle>
<visible>true</visible>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
</keyframes>
</value>
</li>
<li>
<key>RenderNodeTag_Cowgirl_Xray</key>
<value>
<workerClass>Rimworld_Animations.AnimationWorker_KeyframesExtended</workerClass>
<keyframes>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>0</tick>
<angle>1</angle>
<visible>true</visible>
<offset>(1, 0, 0.3)</offset>
<scale>(0.5, 1, 0.5)</scale>
<rotation>North</rotation>
<variant>3</variant>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>40</tick>
<angle>1</angle>
<visible>true</visible>
<offset>(1, 0, 0.3)</offset>
<scale>(0.5, 1, 0.5)</scale>
<rotation>North</rotation>
<variant>4</variant>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>105</tick>
<angle>1</angle>
<visible>true</visible>
<offset>(1, 0, 0.3)</offset>
<scale>(0.5, 1, 0.5)</scale>
<rotation>North</rotation>
<variant>5</variant>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>150</tick>
<angle>1</angle>
<visible>true</visible>
<offset>(1, 0, 0.3)</offset>
<scale>(0.5, 1, 0.5)</scale>
<rotation>North</rotation>
<variant>5</variant>
</li>
</keyframes>
</value>
</li>
</animationParts>
</AnimationDef>
</Defs>

View file

@ -0,0 +1,140 @@
<?xml version="1.0" encoding="utf-8"?>
<Defs>
<AnimationDef>
<defName>Male_Cowgirl_Stage1_5</defName>
<durationTicks>55</durationTicks>
<animationParts>
<li>
<key>Root</key>
<value>
<workerClass>Rimworld_Animations.AnimationWorker_KeyframesExtended</workerClass>
<keyframes>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>0</tick>
<angle>180</angle>
<visible>true</visible>
<offset>(0, 0, -0.7)</offset>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>30</tick>
<angle>180</angle>
<visible>true</visible>
<offset>(0, 0, -0.65)</offset>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>55</tick>
<angle>180</angle>
<visible>true</visible>
<offset>(0, 0, -0.7)</offset>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
</keyframes>
</value>
</li>
<li>
<key>Head</key>
<value>
<workerClass>Rimworld_Animations.AnimationWorker_KeyframesExtended</workerClass>
<keyframes>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>0</tick>
<angle>0</angle>
<visible>true</visible>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
</keyframes>
</value>
</li>
<li MayRequire="shauaputa.rimnudeworld">
<key>RimNude_Penis</key>
<value>
<workerClass>Rimworld_Animations.AnimationWorker_KeyframesExtended</workerClass>
<keyframes>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>0</tick>
<angle>180</angle>
<visible>true</visible>
<offset>(0, 1, 0)</offset>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
</keyframes>
</value>
</li>
</animationParts>
</AnimationDef>
<AnimationDef>
<defName>Female_Cowgirl_Stage1_5</defName>
<durationTicks>55</durationTicks>
<animationParts>
<li>
<key>Root</key>
<value>
<workerClass>Rimworld_Animations.AnimationWorker_KeyframesExtended</workerClass>
<keyframes>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>0</tick>
<angle>0</angle>
<visible>true</visible>
<offset>(0, 2, 0.23)</offset>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>25</tick>
<angle>0</angle>
<visible>true</visible>
<offset>(0, 2, 0.43)</offset>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>55</tick>
<angle>0</angle>
<visible>true</visible>
<offset>(0, 2, 0.23)</offset>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
</keyframes>
</value>
</li>
<li>
<key>Head</key>
<value>
<workerClass>Rimworld_Animations.AnimationWorker_KeyframesExtended</workerClass>
<keyframes>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>0</tick>
<angle>0</angle>
<visible>true</visible>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>30</tick>
<angle>0</angle>
<visible>true</visible>
<offset>(0, 0, -0.04)</offset>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>55</tick>
<angle>0</angle>
<visible>true</visible>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
</keyframes>
</value>
</li>
</animationParts>
</AnimationDef>
</Defs>

View file

@ -0,0 +1,185 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<Rimworld_Animations.GroupAnimationDef>
<defName>GroupAnimation_Cowgirl</defName>
<numActors>2</numActors>
<animationStages>
<li Class="Rimworld_Animations.AnimationStage_LoopRandomSelectChance">
<loops>1</loops>
<loopOptions>
<li>
<probability>1</probability>
<animationDefs>
<li>Male_Cowgirl_Stage1</li>
<li>Female_Cowgirl_Stage1</li>
</animationDefs>
</li>
</loopOptions>
</li>
<li Class="Rimworld_Animations.AnimationStage_LoopRandomSelectChance">
<loops>10</loops>
<loopOptions>
<li>
<probability>1</probability>
<animationDefs>
<li>Male_Cowgirl_Stage1_5</li>
<li>Female_Cowgirl_Stage1_5</li>
</animationDefs>
</li>
</loopOptions>
</li>
<li Class="Rimworld_Animations.AnimationStage_Branch">
<loops>10</loops>
<paths>
<li>GroupAnimation_Cowgirl_Stage2_Branch1</li>
<li>GroupAnimation_Cowgirl_Stage2_Branch2</li>
<li>GroupAnimation_Cowgirl_Stage2_Branch3</li>
</paths>
</li>
<li Class="Rimworld_Animations.AnimationStage_LoopRandomSelectChance">
<loops>20</loops>
<loopOptions>
<li>
<probability>1</probability>
<animationDefs>
<li>Male_Cowgirl_Stage3</li>
<li>Female_Cowgirl_Stage3</li>
</animationDefs>
</li>
</loopOptions>
</li>
<li Class="Rimworld_Animations.AnimationStage_LoopRandomSelectChance">
<loops>1</loops>
<loopOptions>
<li>
<probability>1</probability>
<animationDefs>
<li>Male_Cowgirl_Stage4</li>
<li>Female_Cowgirl_Stage4</li>
</animationDefs>
</li>
</loopOptions>
</li>
</animationStages>
<contexts>
<li Class="Rimworld_Animations.GroupAnimationContext_RJWSex">
<priority>1</priority>
<interactionDefs>
<li>Sex_Anal</li>
<li>Sex_Vaginal</li>
</interactionDefs>
</li>
<li Class="Rimworld_Animations.GroupAnimationContext_RJWSex">
<priority>1</priority>
<actorShift>1</actorShift>
<interactionDefs>
<li>Sex_Reverse_Anal</li>
<li>Sex_Reverse_Vaginal</li>
</interactionDefs>
</li>
<!-- all other contexts go here -->
<!-- the ones that don't make sense but play an animation anyway -->
<!--
<li Class="Rimworld_Animations.GroupAnimationContext_RJWSex">
<priority>0</priority>
<interactionDefs>
</interactionDefs>
</li>
-->
</contexts>
<offsetDefs>
<li>Offset_Placeholder</li> <!-- first pawn in animation -->
<li>Offset_Cowgirl_Top</li> <!-- second pawn in animation -->
</offsetDefs>
</Rimworld_Animations.GroupAnimationDef>
<Rimworld_Animations.GroupAnimationDef>
<defName>GroupAnimation_Cowgirl_Stage2_Branch1</defName>
<numActors>2</numActors>
<animationStages>
<li Class="Rimworld_Animations.AnimationStage_LoopRandomSelectChance">
<loops>3</loops>
<loopOptions>
<li>
<probability>1</probability>
<animationDefs>
<li>Male_Cowgirl_Stage2_1</li>
<li>Female_Cowgirl_Stage2_1</li>
</animationDefs>
</li>
</loopOptions>
</li>
</animationStages>
<offsetDefs>
<li>Offset_Placeholder</li> <!-- first pawn in animation -->
<li>Offset_Cowgirl_Top</li> <!-- second pawn in animation -->
</offsetDefs>
</Rimworld_Animations.GroupAnimationDef>
<Rimworld_Animations.GroupAnimationDef>
<defName>GroupAnimation_Cowgirl_Stage2_Branch2</defName>
<numActors>2</numActors>
<animationStages>
<li Class="Rimworld_Animations.AnimationStage_LoopRandomSelectChance">
<loops>3</loops>
<loopOptions>
<li>
<probability>1</probability>
<animationDefs>
<li>Male_Cowgirl_Stage2_2</li>
<li>Female_Cowgirl_Stage2_2</li>
</animationDefs>
</li>
</loopOptions>
</li>
</animationStages>
<offsetDefs>
<li>Offset_Placeholder</li> <!-- first pawn in animation -->
<li>Offset_Cowgirl_Top</li> <!-- second pawn in animation -->
</offsetDefs>
</Rimworld_Animations.GroupAnimationDef>
<Rimworld_Animations.GroupAnimationDef>
<defName>GroupAnimation_Cowgirl_Stage2_Branch3</defName>
<numActors>2</numActors>
<animationStages>
<li Class="Rimworld_Animations.AnimationStage_LoopRandomSelectChance">
<loops>3</loops>
<loopOptions>
<li>
<probability>1</probability>
<animationDefs>
<li>Male_Cowgirl_Stage2_3</li>
<li>Female_Cowgirl_Stage2_3</li>
</animationDefs>
</li>
</loopOptions>
</li>
</animationStages>
<offsetDefs>
<li>Offset_Placeholder</li> <!-- first pawn in animation -->
<li>Offset_Cowgirl_Top</li> <!-- second pawn in animation -->
</offsetDefs>
</Rimworld_Animations.GroupAnimationDef>
</Defs>

View file

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<Rimworld_Animations.AnimationOffsetDef>
<defName>Offset_Cowgirl_Top</defName>
<offsets>
<li Class="Rimworld_Animations.AnimationOffset_BodyType">
<races>
<li>Human</li>
</races>
<offsets>
<li><bodyType>Thin</bodyType><offset>(0, 0, -0.05)</offset></li>
<li><bodyType>Female</bodyType><offset>(0, 0, 0)</offset></li>
<li><bodyType>Hulk</bodyType><offset>(0, 0, 0.15)</offset></li>
</offsets>
</li>
</offsets>
</Rimworld_Animations.AnimationOffsetDef>
</Defs>

View file

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<Rimworld_Animations.TexPathVariantsDef>
<defName>TexPathVariants_Cowgirl_Xray</defName>
<variants>
<li>AnimationProps/CowgirlXray/XRay2-2</li>
<li>AnimationProps/CowgirlXray/XRay2-3</li>
<li>AnimationProps/CowgirlXray/XRay2-4</li>
<li>AnimationProps/CowgirlXray/XRay2-5</li>
<li>AnimationProps/CowgirlXray/XRay2-6</li>
</variants>
</Rimworld_Animations.TexPathVariantsDef>
</Defs>

View file

@ -0,0 +1,200 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<Rimworld_Animations.GroupAnimationDef>
<defName>GroupAnimation_Missionary</defName>
<numActors>2</numActors>
<animationStages>
<li Class="Rimworld_Animations.AnimationStage_LoopRandomSelectChance">
<loops>1</loops>
<loopOptions>
<li>
<probability>1</probability>
<animationDefs>
<li>MalePawn_Missionary_Stage1</li>
<li>FemalePawn_Missionary_Stage1</li>
</animationDefs>
</li>
</loopOptions>
</li>
<li Class="Rimworld_Animations.AnimationStage_Branch">
<loops>5</loops>
<paths>
<li>Missionary_Stage2_Branch1</li>
<li>Missionary_Stage2_Branch2</li>
<li>Missionary_Stage2_Branch3</li>
</paths>
</li>
<!-- don't loop -->
<li Class="Rimworld_Animations.AnimationStage_LoopRandomSelectChance">
<loops>1</loops>
<loopOptions>
<li>
<probability>1</probability>
<animationDefs>
<li>MalePawn_Missionary_Stage3</li>
<li>FemalePawn_Missionary_Stage3</li>
</animationDefs>
</li>
</loopOptions>
</li>
<li Class="Rimworld_Animations.AnimationStage_LoopRandomSelectChance">
<loops>20</loops>
<loopOptions>
<li>
<probability>1</probability>
<animationDefs>
<li>MalePawn_Missionary_Stage4</li>
<li>FemalePawn_Missionary_Stage4</li>
</animationDefs>
</li>
</loopOptions>
</li>
<li Class="Rimworld_Animations.AnimationStage_LoopRandomSelectChance">
<loops>35</loops>
<loopOptions>
<li>
<probability>1</probability>
<animationDefs>
<li>MalePawn_Missionary_Stage5</li>
<li>FemalePawn_Missionary_Stage5</li>
</animationDefs>
</li>
</loopOptions>
</li>
<li Class="Rimworld_Animations.AnimationStage_LoopRandomSelectChance">
<loops>1</loops>
<loopOptions>
<li>
<probability>1</probability>
<animationDefs>
<li>MalePawn_Missionary_Stage6</li>
<li>FemalePawn_Missionary_Stage6</li>
</animationDefs>
</li>
</loopOptions>
</li>
</animationStages>
<contexts>
<li Class="Rimworld_Animations.GroupAnimationContext_RJWSex">
<priority>1</priority>
<interactionDefs>
<li>Sex_Anal</li>
<li>Sex_Vaginal</li>
</interactionDefs>
</li>
<li Class="Rimworld_Animations.GroupAnimationContext_RJWSex">
<priority>1</priority>
<actorShift>1</actorShift>
<interactionDefs>
<li>Sex_Reverse_Anal</li>
<li>Sex_Reverse_Vaginal</li>
</interactionDefs>
</li>
<!-- all other contexts go here -->
<!-- the ones that don't make sense but play an animation anyway -->
<!--
<li Class="Rimworld_Animations.GroupAnimationContext_RJWSex">
<priority>0</priority>
<interactionDefs>
</interactionDefs>
</li>
-->
</contexts>
<offsetDefs>
<li>Offset_Placeholder</li> <!-- first pawn in animation -->
<li>Offset_Missionary_Female</li> <!-- second pawn in animation -->
</offsetDefs>
</Rimworld_Animations.GroupAnimationDef>
<Rimworld_Animations.GroupAnimationDef>
<defName>Missionary_Stage2_Branch1</defName>
<numActors>2</numActors>
<animationStages>
<li Class="Rimworld_Animations.AnimationStage_LoopRandomSelectChance">
<loops>3</loops>
<loopOptions>
<li>
<probability>1</probability>
<animationDefs>
<li>MalePawn_Missionary_Stage2a</li>
<li>FemalePawn_Missionary_Stage2a</li>
</animationDefs>
</li>
</loopOptions>
</li>
</animationStages>
<offsetDefs>
<li>Offset_Placeholder</li> <!-- first pawn in animation -->
<li>Offset_Missionary_Female</li> <!-- second pawn in animation -->
</offsetDefs>
</Rimworld_Animations.GroupAnimationDef>
<Rimworld_Animations.GroupAnimationDef>
<defName>Missionary_Stage2_Branch2</defName>
<numActors>2</numActors>
<animationStages>
<li Class="Rimworld_Animations.AnimationStage_LoopRandomSelectChance">
<loops>3</loops>
<loopOptions>
<li>
<probability>1</probability>
<animationDefs>
<li>MalePawn_Missionary_Stage2b</li>
<li>FemalePawn_Missionary_Stage2b</li>
</animationDefs>
</li>
</loopOptions>
</li>
</animationStages>
<offsetDefs>
<li>Offset_Placeholder</li> <!-- first pawn in animation -->
<li>Offset_Missionary_Female</li> <!-- second pawn in animation -->
</offsetDefs>
</Rimworld_Animations.GroupAnimationDef>
<Rimworld_Animations.GroupAnimationDef>
<defName>Missionary_Stage2_Branch3</defName>
<numActors>2</numActors>
<animationStages>
<li Class="Rimworld_Animations.AnimationStage_LoopRandomSelectChance">
<loops>3</loops>
<loopOptions>
<li>
<probability>1</probability>
<animationDefs>
<li>MalePawn_Missionary_Stage2c</li>
<li>FemalePawn_Missionary_Stage2c</li>
</animationDefs>
</li>
</loopOptions>
</li>
</animationStages>
<offsetDefs>
<li>Offset_Placeholder</li> <!-- first pawn in animation -->
<li>Offset_Missionary_Female</li> <!-- second pawn in animation -->
</offsetDefs>
</Rimworld_Animations.GroupAnimationDef>
</Defs>

View file

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<Rimworld_Animations.AnimationOffsetDef>
<defName>Offset_Missionary_Female</defName>
<offsets>
<li Class="Rimworld_Animations.AnimationOffset_BodyType">
<races>
<li>Human</li>
</races>
<offsets>
<li><bodyType>Thin</bodyType><offset>(-0.1, 0, 0.05)</offset></li>
<li><bodyType>Female</bodyType><offset>(0, 0, 0)</offset></li>
<li><bodyType>Hulk</bodyType><offset>(0.1, 0, 0.1)</offset></li>
</offsets>
</li>
</offsets>
</Rimworld_Animations.AnimationOffsetDef>
</Defs>

View file

@ -0,0 +1,200 @@
<?xml version="1.0" encoding="utf-8"?>
<Defs>
<AnimationDef>
<defName>MalePawn_Missionary_Stage1</defName>
<durationTicks>100</durationTicks>
<animationParts>
<li>
<key>Root</key>
<value>
<workerClass>Rimworld_Animations.AnimationWorker_KeyframesExtended</workerClass>
<keyframes>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>0</tick>
<angle>0</angle>
<visible>true</visible>
<offset>(-0.85, 0, 0.5)</offset>
<scale>(1, 1, 1)</scale>
<rotation>East</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>30</tick>
<angle>0</angle>
<visible>true</visible>
<offset>(-0.79, 0, 0.44)</offset>
<scale>(1, 1, 1)</scale>
<rotation>East</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>60</tick>
<angle>20</angle>
<visible>true</visible>
<offset>(-0.75, 0, 0.38)</offset>
<scale>(1, 1, 1)</scale>
<rotation>East</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>66</tick>
<angle>-10</angle>
<visible>true</visible>
<offset>(-0.6, 0, 0.38)</offset>
<scale>(1, 1, 1)</scale>
<rotation>East</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>100</tick>
<angle>10</angle>
<visible>true</visible>
<offset>(-0.75, 0, 0.38)</offset>
<scale>(1, 1, 1)</scale>
<rotation>East</rotation>
</li>
</keyframes>
</value>
</li>
<li>
<key>Head</key>
<value>
<workerClass>Rimworld_Animations.AnimationWorker_KeyframesExtended</workerClass>
<keyframes>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>0</tick>
<angle>0</angle>
<visible>true</visible>
<scale>(1, 1, 1)</scale>
<rotation>East</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>40</tick>
<angle>13</angle>
<visible>true</visible>
<scale>(1, 1, 1)</scale>
<rotation>East</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>100</tick>
<angle>3</angle>
<visible>true</visible>
<scale>(1, 1, 1)</scale>
<rotation>East</rotation>
</li>
</keyframes>
</value>
</li>
<li MayRequire="shauaputa.rimnudeworld">
<key>RimNude_Penis</key>
<value>
<workerClass>Rimworld_Animations.AnimationWorker_KeyframesExtended</workerClass>
<keyframes>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>0</tick>
<angle>0</angle>
<visible>true</visible>
<offset>(0, -3, 0)</offset>
<scale>(1, 1, 1)</scale>
<rotation>East</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>20</tick>
<angle>0</angle>
<visible>true</visible>
<offset>(0, -3, 0)</offset>
<scale>(1, 1, 1)</scale>
<rotation>East</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>60</tick>
<angle>30</angle>
<visible>true</visible>
<offset>(0, -3, 0)</offset>
<scale>(1, 1, 1)</scale>
<rotation>East</rotation>
</li>
</keyframes>
</value>
</li>
</animationParts>
</AnimationDef>
<AnimationDef>
<defName>FemalePawn_Missionary_Stage1</defName>
<durationTicks>100</durationTicks>
<animationParts>
<li>
<key>Root</key>
<value>
<workerClass>Rimworld_Animations.AnimationWorker_KeyframesExtended</workerClass>
<keyframes>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>0</tick>
<angle>90</angle>
<visible>true</visible>
<offset>(0, -1, 0)</offset>
<scale>(1, 1, 1)</scale>
<rotation>West</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>60</tick>
<angle>90</angle>
<visible>true</visible>
<offset>(0.03, -1, 0)</offset>
<scale>(1, 1, 1)</scale>
<rotation>West</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>66</tick>
<angle>90</angle>
<visible>true</visible>
<offset>(0.1, -1, 0)</offset>
<scale>(1, 1, 1)</scale>
<rotation>West</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>100</tick>
<angle>90</angle>
<visible>true</visible>
<offset>(0.03, -1, 0)</offset>
<scale>(1, 1, 1)</scale>
<rotation>West</rotation>
</li>
</keyframes>
</value>
</li>
<li>
<key>Head</key>
<value>
<workerClass>Rimworld_Animations.AnimationWorker_KeyframesExtended</workerClass>
<keyframes>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>0</tick>
<angle>-15</angle>
<visible>true</visible>
<scale>(1, 1, 1)</scale>
<rotation>West</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>60</tick>
<angle>-20</angle>
<visible>true</visible>
<scale>(1, 1, 1)</scale>
<rotation>West</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>66</tick>
<angle>0</angle>
<visible>true</visible>
<scale>(1, 1, 1)</scale>
<rotation>West</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>100</tick>
<angle>-20</angle>
<visible>true</visible>
<scale>(1, 1, 1)</scale>
<rotation>West</rotation>
</li>
</keyframes>
</value>
</li>
</animationParts>
</AnimationDef>
</Defs>

View file

@ -0,0 +1,177 @@
<?xml version="1.0" encoding="utf-8"?>
<Defs>
<AnimationDef>
<defName>MalePawn_Missionary_Stage2a</defName>
<durationTicks>35</durationTicks>
<animationParts>
<li>
<key>Root</key>
<value>
<workerClass>Rimworld_Animations.AnimationWorker_KeyframesExtended</workerClass>
<keyframes>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>0</tick>
<angle>10</angle>
<visible>true</visible>
<offset>(-0.75, 0, 0.38)</offset>
<scale>(1, 1, 1)</scale>
<rotation>East</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>5</tick>
<angle>-25</angle>
<visible>true</visible>
<offset>(-0.6, 0, 0.38)</offset>
<scale>(1, 1, 1)</scale>
<rotation>East</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>35</tick>
<angle>10</angle>
<visible>true</visible>
<offset>(-0.75, 0, 0.38)</offset>
<scale>(1, 1, 1)</scale>
<rotation>East</rotation>
</li>
</keyframes>
</value>
</li>
<li>
<key>Head</key>
<value>
<workerClass>Rimworld_Animations.AnimationWorker_KeyframesExtended</workerClass>
<keyframes>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>0</tick>
<angle>3</angle>
<visible>true</visible>
<scale>(1, 1, 1)</scale>
<rotation>East</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>5</tick>
<angle>20</angle>
<visible>true</visible>
<scale>(1, 1, 1)</scale>
<rotation>East</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>35</tick>
<angle>3</angle>
<visible>true</visible>
<scale>(1, 1, 1)</scale>
<rotation>East</rotation>
</li>
</keyframes>
</value>
</li>
<li MayRequire="shauaputa.rimnudeworld">
<key>RimNude_Penis</key>
<value>
<workerClass>Rimworld_Animations.AnimationWorker_KeyframesExtended</workerClass>
<keyframes>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>0</tick>
<angle>30</angle>
<visible>true</visible>
<offset>(0, -3, 0)</offset>
<scale>(1, 1, 1)</scale>
<rotation>East</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>5</tick>
<angle>60</angle>
<visible>true</visible>
<offset>(0, -3, 0)</offset>
<scale>(1, 1, 1)</scale>
<rotation>East</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>35</tick>
<angle>30</angle>
<visible>true</visible>
<offset>(0, -3, 0)</offset>
<scale>(1, 1, 1)</scale>
<rotation>East</rotation>
</li>
</keyframes>
</value>
</li>
</animationParts>
</AnimationDef>
<AnimationDef>
<defName>FemalePawn_Missionary_Stage2a</defName>
<durationTicks>35</durationTicks>
<animationParts>
<li>
<key>Root</key>
<value>
<workerClass>Rimworld_Animations.AnimationWorker_KeyframesExtended</workerClass>
<keyframes>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>0</tick>
<angle>90</angle>
<visible>true</visible>
<offset>(0.03, -1, 0)</offset>
<scale>(1, 1, 1)</scale>
<rotation>West</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>3</tick>
<angle>90</angle>
<visible>true</visible>
<offset>(0.03, -1, 0)</offset>
<scale>(1, 1, 1)</scale>
<rotation>West</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>10</tick>
<angle>88</angle>
<visible>true</visible>
<offset>(0.12, -1, 0.03)</offset>
<scale>(1, 1, 1)</scale>
<rotation>West</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>35</tick>
<angle>90</angle>
<visible>true</visible>
<offset>(0.03, -1, 0)</offset>
<scale>(1, 1, 1)</scale>
<rotation>West</rotation>
</li>
</keyframes>
</value>
</li>
<li>
<key>Head</key>
<value>
<workerClass>Rimworld_Animations.AnimationWorker_KeyframesExtended</workerClass>
<keyframes>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>0</tick>
<angle>-20</angle>
<visible>true</visible>
<scale>(1, 1, 1)</scale>
<rotation>West</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>10</tick>
<angle>-10</angle>
<visible>true</visible>
<scale>(1, 1, 1)</scale>
<rotation>West</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>35</tick>
<angle>-20</angle>
<visible>true</visible>
<scale>(1, 1, 1)</scale>
<rotation>West</rotation>
</li>
</keyframes>
</value>
</li>
</animationParts>
</AnimationDef>
</Defs>

View file

@ -0,0 +1,177 @@
<?xml version="1.0" encoding="utf-8"?>
<Defs>
<AnimationDef>
<defName>MalePawn_Missionary_Stage2b</defName>
<durationTicks>35</durationTicks>
<animationParts>
<li>
<key>Root</key>
<value>
<workerClass>Rimworld_Animations.AnimationWorker_KeyframesExtended</workerClass>
<keyframes>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>0</tick>
<angle>10</angle>
<visible>true</visible>
<offset>(-0.75, 0, 0.38)</offset>
<scale>(1, 1, 1)</scale>
<rotation>East</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>5</tick>
<angle>-25</angle>
<visible>true</visible>
<offset>(-0.6, 0, 0.38)</offset>
<scale>(1, 1, 1)</scale>
<rotation>East</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>35</tick>
<angle>10</angle>
<visible>true</visible>
<offset>(-0.75, 0, 0.38)</offset>
<scale>(1, 1, 1)</scale>
<rotation>East</rotation>
</li>
</keyframes>
</value>
</li>
<li>
<key>Head</key>
<value>
<workerClass>Rimworld_Animations.AnimationWorker_KeyframesExtended</workerClass>
<keyframes>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>0</tick>
<angle>3</angle>
<visible>true</visible>
<scale>(1, 1, 1)</scale>
<rotation>East</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>5</tick>
<angle>20</angle>
<visible>true</visible>
<scale>(1, 1, 1)</scale>
<rotation>East</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>35</tick>
<angle>3</angle>
<visible>true</visible>
<scale>(1, 1, 1)</scale>
<rotation>East</rotation>
</li>
</keyframes>
</value>
</li>
<li MayRequire="shauaputa.rimnudeworld">
<key>RimNude_Penis</key>
<value>
<workerClass>Rimworld_Animations.AnimationWorker_KeyframesExtended</workerClass>
<keyframes>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>0</tick>
<angle>30</angle>
<visible>true</visible>
<scale>(1, 1, 1)</scale>
<offset>(0, -3, 0)</offset>
<rotation>East</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>5</tick>
<angle>60</angle>
<visible>true</visible>
<scale>(1, 1, 1)</scale>
<offset>(0, -3, 0)</offset>
<rotation>East</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>35</tick>
<angle>30</angle>
<visible>true</visible>
<scale>(1, 1, 1)</scale>
<offset>(0, -3, 0)</offset>
<rotation>East</rotation>
</li>
</keyframes>
</value>
</li>
</animationParts>
</AnimationDef>
<AnimationDef>
<defName>FemalePawn_Missionary_Stage2b</defName>
<durationTicks>35</durationTicks>
<animationParts>
<li>
<key>Root</key>
<value>
<workerClass>Rimworld_Animations.AnimationWorker_KeyframesExtended</workerClass>
<keyframes>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>0</tick>
<angle>90</angle>
<visible>true</visible>
<offset>(0.03, -1, 0)</offset>
<scale>(1, 1, 1)</scale>
<rotation>West</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>3</tick>
<angle>90</angle>
<visible>true</visible>
<offset>(0.03, -1, 0)</offset>
<scale>(1, 1, 1)</scale>
<rotation>West</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>10</tick>
<angle>88</angle>
<visible>true</visible>
<offset>(0.12, -1, 0.03)</offset>
<scale>(1, 1, 1)</scale>
<rotation>West</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>35</tick>
<angle>90</angle>
<visible>true</visible>
<offset>(0.03, -1, 0)</offset>
<scale>(1, 1, 1)</scale>
<rotation>West</rotation>
</li>
</keyframes>
</value>
</li>
<li>
<key>Head</key>
<value>
<workerClass>Rimworld_Animations.AnimationWorker_KeyframesExtended</workerClass>
<keyframes>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>0</tick>
<angle>-20</angle>
<visible>true</visible>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>10</tick>
<angle>-17</angle>
<visible>true</visible>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>35</tick>
<angle>-20</angle>
<visible>true</visible>
<scale>(1, 1, 1)</scale>
<rotation>South</rotation>
</li>
</keyframes>
</value>
</li>
</animationParts>
</AnimationDef>
</Defs>

View file

@ -0,0 +1,177 @@
<?xml version="1.0" encoding="utf-8"?>
<Defs>
<AnimationDef>
<defName>MalePawn_Missionary_Stage2c</defName>
<durationTicks>35</durationTicks>
<animationParts>
<li>
<key>Root</key>
<value>
<workerClass>Rimworld_Animations.AnimationWorker_KeyframesExtended</workerClass>
<keyframes>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>0</tick>
<angle>10</angle>
<visible>true</visible>
<offset>(-0.75, 0, 0.38)</offset>
<scale>(1, 1, 1)</scale>
<rotation>East</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>5</tick>
<angle>-25</angle>
<visible>true</visible>
<offset>(-0.6, 0, 0.38)</offset>
<scale>(1, 1, 1)</scale>
<rotation>East</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>35</tick>
<angle>10</angle>
<visible>true</visible>
<offset>(-0.75, 0, 0.38)</offset>
<scale>(1, 1, 1)</scale>
<rotation>East</rotation>
</li>
</keyframes>
</value>
</li>
<li>
<key>Head</key>
<value>
<workerClass>Rimworld_Animations.AnimationWorker_KeyframesExtended</workerClass>
<keyframes>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>0</tick>
<angle>3</angle>
<visible>true</visible>
<scale>(1, 1, 1)</scale>
<rotation>East</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>5</tick>
<angle>20</angle>
<visible>true</visible>
<scale>(1, 1, 1)</scale>
<rotation>East</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>35</tick>
<angle>3</angle>
<visible>true</visible>
<scale>(1, 1, 1)</scale>
<rotation>East</rotation>
</li>
</keyframes>
</value>
</li>
<li MayRequire="shauaputa.rimnudeworld">
<key>RimNude_Penis</key>
<value>
<workerClass>Rimworld_Animations.AnimationWorker_KeyframesExtended</workerClass>
<keyframes>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>0</tick>
<angle>30</angle>
<visible>true</visible>
<scale>(1, 1, 1)</scale>
<offset>(0, -3, 0)</offset>
<rotation>East</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>5</tick>
<angle>60</angle>
<visible>true</visible>
<scale>(1, 1, 1)</scale>
<offset>(0, -3, 0)</offset>
<rotation>East</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>35</tick>
<angle>30</angle>
<visible>true</visible>
<scale>(1, 1, 1)</scale>
<offset>(0, -3, 0)</offset>
<rotation>East</rotation>
</li>
</keyframes>
</value>
</li>
</animationParts>
</AnimationDef>
<AnimationDef>
<defName>FemalePawn_Missionary_Stage2c</defName>
<durationTicks>35</durationTicks>
<animationParts>
<li>
<key>Root</key>
<value>
<workerClass>Rimworld_Animations.AnimationWorker_KeyframesExtended</workerClass>
<keyframes>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>0</tick>
<angle>90</angle>
<visible>true</visible>
<offset>(0.03, -1, 0)</offset>
<scale>(1, 1, 1)</scale>
<rotation>West</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>3</tick>
<angle>90</angle>
<visible>true</visible>
<offset>(0.03, -1, 0)</offset>
<scale>(1, 1, 1)</scale>
<rotation>West</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>10</tick>
<angle>88</angle>
<visible>true</visible>
<offset>(0.12, -1, 0.03)</offset>
<scale>(1, 1, 1)</scale>
<rotation>West</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>35</tick>
<angle>90</angle>
<visible>true</visible>
<offset>(0.03, -1, 0)</offset>
<scale>(1, 1, 1)</scale>
<rotation>West</rotation>
</li>
</keyframes>
</value>
</li>
<li>
<key>Head</key>
<value>
<workerClass>Rimworld_Animations.AnimationWorker_KeyframesExtended</workerClass>
<keyframes>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>0</tick>
<angle>-20</angle>
<visible>true</visible>
<scale>(1, 1, 1)</scale>
<rotation>North</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>10</tick>
<angle>-17</angle>
<visible>true</visible>
<scale>(1, 1, 1)</scale>
<rotation>North</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>35</tick>
<angle>-20</angle>
<visible>true</visible>
<scale>(1, 1, 1)</scale>
<rotation>North</rotation>
</li>
</keyframes>
</value>
</li>
</animationParts>
</AnimationDef>
</Defs>

View file

@ -0,0 +1,131 @@
<?xml version="1.0" encoding="utf-8"?>
<Defs>
<AnimationDef>
<defName>MalePawn_Missionary_Stage3</defName>
<durationTicks>35</durationTicks>
<animationParts>
<li>
<key>Root</key>
<value>
<workerClass>Rimworld_Animations.AnimationWorker_KeyframesExtended</workerClass>
<keyframes>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>0</tick>
<angle>10</angle>
<visible>true</visible>
<offset>(-0.75, 0, 0.38)</offset>
<scale>(1, 1, 1)</scale>
<rotation>East</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>35</tick>
<angle>15</angle>
<visible>true</visible>
<offset>(-0.65, 0, 0.42)</offset>
<scale>(1, 1, 1)</scale>
<rotation>East</rotation>
</li>
</keyframes>
</value>
</li>
<li>
<key>Head</key>
<value>
<workerClass>Rimworld_Animations.AnimationWorker_KeyframesExtended</workerClass>
<keyframes>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>0</tick>
<angle>3</angle>
<visible>true</visible>
<scale>(1, 1, 1)</scale>
<rotation>East</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>35</tick>
<angle>20</angle>
<visible>true</visible>
<scale>(1, 1, 1)</scale>
<rotation>East</rotation>
</li>
</keyframes>
</value>
</li>
<li MayRequire="shauaputa.rimnudeworld">
<key>RimNude_Penis</key>
<value>
<workerClass>Rimworld_Animations.AnimationWorker_KeyframesExtended</workerClass>
<keyframes>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>0</tick>
<angle>30</angle>
<visible>true</visible>
<scale>(1, 1, 1)</scale>
<offset>(0, -3, 0)</offset>
<rotation>East</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>35</tick>
<angle>30</angle>
<visible>true</visible>
<scale>(1, 1, 1)</scale>
<offset>(0, -3, 0)</offset>
<rotation>East</rotation>
</li>
</keyframes>
</value>
</li>
</animationParts>
</AnimationDef>
<AnimationDef>
<defName>FemalePawn_Missionary_Stage3</defName>
<durationTicks>35</durationTicks>
<animationParts>
<li>
<key>Root</key>
<value>
<workerClass>Rimworld_Animations.AnimationWorker_KeyframesExtended</workerClass>
<keyframes>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>0</tick>
<angle>90</angle>
<visible>true</visible>
<offset>(0.03, -1, 0)</offset>
<scale>(1, 1, 1)</scale>
<rotation>West</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>35</tick>
<angle>95</angle>
<visible>true</visible>
<offset>(0.07, -1, 0)</offset>
<scale>(1, 1, 1)</scale>
<rotation>West</rotation>
</li>
</keyframes>
</value>
</li>
<li>
<key>Head</key>
<value>
<workerClass>Rimworld_Animations.AnimationWorker_KeyframesExtended</workerClass>
<keyframes>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>0</tick>
<angle>-20</angle>
<visible>true</visible>
<scale>(1, 1, 1)</scale>
<rotation>West</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>35</tick>
<angle>-20</angle>
<visible>true</visible>
<scale>(1, 1, 1)</scale>
<rotation>West</rotation>
</li>
</keyframes>
</value>
</li>
</animationParts>
</AnimationDef>
</Defs>

View file

@ -0,0 +1,153 @@
<?xml version="1.0" encoding="utf-8"?>
<Defs>
<AnimationDef>
<defName>MalePawn_Missionary_Stage4</defName>
<durationTicks>20</durationTicks>
<animationParts>
<li>
<key>Root</key>
<value>
<workerClass>Rimworld_Animations.AnimationWorker_KeyframesExtended</workerClass>
<keyframes>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>0</tick>
<angle>15</angle>
<visible>true</visible>
<offset>(-0.65, 0, 0.42)</offset>
<scale>(1, 1, 1)</scale>
<rotation>East</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>5</tick>
<angle>0</angle>
<visible>true</visible>
<offset>(-0.42, 0, 0.42)</offset>
<scale>(1, 1, 1)</scale>
<rotation>East</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>20</tick>
<angle>15</angle>
<visible>true</visible>
<offset>(-0.65, 0, 0.42)</offset>
<scale>(1, 1, 1)</scale>
<rotation>East</rotation>
</li>
</keyframes>
</value>
</li>
<li>
<key>Head</key>
<value>
<workerClass>Rimworld_Animations.AnimationWorker_KeyframesExtended</workerClass>
<keyframes>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>0</tick>
<angle>20</angle>
<visible>true</visible>
<scale>(1, 1, 1)</scale>
<rotation>East</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>5</tick>
<angle>30</angle>
<visible>true</visible>
<scale>(1, 1, 1)</scale>
<rotation>East</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>20</tick>
<angle>20</angle>
<visible>true</visible>
<scale>(1, 1, 1)</scale>
<rotation>East</rotation>
</li>
</keyframes>
</value>
</li>
<li MayRequire="shauaputa.rimnudeworld">
<key>RimNude_Penis</key>
<value>
<workerClass>Rimworld_Animations.AnimationWorker_KeyframesExtended</workerClass>
<keyframes>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>35</tick>
<angle>30</angle>
<visible>true</visible>
<scale>(1, 1, 1)</scale>
<offset>(0, -3, 0)</offset>
<rotation>East</rotation>
</li>
</keyframes>
</value>
</li>
</animationParts>
</AnimationDef>
<AnimationDef>
<defName>FemalePawn_Missionary_Stage4</defName>
<durationTicks>20</durationTicks>
<animationParts>
<li>
<key>Root</key>
<value>
<workerClass>Rimworld_Animations.AnimationWorker_KeyframesExtended</workerClass>
<keyframes>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>0</tick>
<angle>95</angle>
<visible>true</visible>
<offset>(0.07, -1, 0)</offset>
<scale>(1, 1, 1)</scale>
<rotation>West</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>5</tick>
<angle>100</angle>
<visible>true</visible>
<offset>(0.2, -1, 0)</offset>
<scale>(1, 1, 1)</scale>
<rotation>West</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>20</tick>
<angle>95</angle>
<visible>true</visible>
<offset>(0.07, -1, 0)</offset>
<scale>(1, 1, 1)</scale>
<rotation>West</rotation>
</li>
</keyframes>
</value>
</li>
<li>
<key>Head</key>
<value>
<workerClass>Rimworld_Animations.AnimationWorker_KeyframesExtended</workerClass>
<keyframes>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>0</tick>
<angle>-20</angle>
<visible>true</visible>
<scale>(1, 1, 1)</scale>
<rotation>West</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>13</tick>
<angle>-26</angle>
<visible>true</visible>
<scale>(1, 1, 1)</scale>
<rotation>West</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>20</tick>
<angle>-20</angle>
<visible>true</visible>
<scale>(1, 1, 1)</scale>
<rotation>West</rotation>
</li>
</keyframes>
</value>
</li>
</animationParts>
</AnimationDef>
</Defs>

View file

@ -0,0 +1,153 @@
<?xml version="1.0" encoding="utf-8"?>
<Defs>
<AnimationDef>
<defName>MalePawn_Missionary_Stage5</defName>
<durationTicks>13</durationTicks>
<animationParts>
<li>
<key>Root</key>
<value>
<workerClass>Rimworld_Animations.AnimationWorker_KeyframesExtended</workerClass>
<keyframes>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>0</tick>
<angle>15</angle>
<visible>true</visible>
<offset>(-0.65, 0, 0.42)</offset>
<scale>(1, 1, 1)</scale>
<rotation>East</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>5</tick>
<angle>0</angle>
<visible>true</visible>
<offset>(-0.45, 0, 0.42)</offset>
<scale>(1, 1, 1)</scale>
<rotation>East</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>13</tick>
<angle>15</angle>
<visible>true</visible>
<offset>(-0.65, 0, 0.42)</offset>
<scale>(1, 1, 1)</scale>
<rotation>East</rotation>
</li>
</keyframes>
</value>
</li>
<li>
<key>Head</key>
<value>
<workerClass>Rimworld_Animations.AnimationWorker_KeyframesExtended</workerClass>
<keyframes>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>0</tick>
<angle>20</angle>
<visible>true</visible>
<scale>(1, 1, 1)</scale>
<rotation>East</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>5</tick>
<angle>40</angle>
<visible>true</visible>
<scale>(1, 1, 1)</scale>
<rotation>East</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>20</tick>
<angle>20</angle>
<visible>true</visible>
<scale>(1, 1, 1)</scale>
<rotation>East</rotation>
</li>
</keyframes>
</value>
</li>
<li MayRequire="shauaputa.rimnudeworld">
<key>RimNude_Penis</key>
<value>
<workerClass>Rimworld_Animations.AnimationWorker_KeyframesExtended</workerClass>
<keyframes>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>35</tick>
<angle>30</angle>
<visible>true</visible>
<scale>(1, 1, 1)</scale>
<offset>(0, -3, 0)</offset>
<rotation>East</rotation>
</li>
</keyframes>
</value>
</li>
</animationParts>
</AnimationDef>
<AnimationDef>
<defName>FemalePawn_Missionary_Stage5</defName>
<durationTicks>13</durationTicks>
<animationParts>
<li>
<key>Root</key>
<value>
<workerClass>Rimworld_Animations.AnimationWorker_KeyframesExtended</workerClass>
<keyframes>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>0</tick>
<angle>95</angle>
<visible>true</visible>
<offset>(0.07, -1, 0)</offset>
<scale>(1, 1, 1)</scale>
<rotation>West</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>3</tick>
<angle>100</angle>
<visible>true</visible>
<offset>(0.16, -1, 0)</offset>
<scale>(1, 1, 1)</scale>
<rotation>West</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>13</tick>
<angle>95</angle>
<visible>true</visible>
<offset>(0.07, -1, 0)</offset>
<scale>(1, 1, 1)</scale>
<rotation>West</rotation>
</li>
</keyframes>
</value>
</li>
<li>
<key>Head</key>
<value>
<workerClass>Rimworld_Animations.AnimationWorker_KeyframesExtended</workerClass>
<keyframes>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>0</tick>
<angle>-20</angle>
<visible>true</visible>
<scale>(1, 1, 1)</scale>
<rotation>West</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>3</tick>
<angle>-34</angle>
<visible>true</visible>
<scale>(1, 1, 1)</scale>
<rotation>West</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>13</tick>
<angle>-20</angle>
<visible>true</visible>
<scale>(1, 1, 1)</scale>
<rotation>West</rotation>
</li>
</keyframes>
</value>
</li>
</animationParts>
</AnimationDef>
</Defs>

View file

@ -0,0 +1,225 @@
<?xml version="1.0" encoding="utf-8"?>
<Defs>
<AnimationDef>
<defName>MalePawn_Missionary_Stage6</defName>
<durationTicks>200</durationTicks>
<animationParts>
<li>
<key>Root</key>
<value>
<workerClass>Rimworld_Animations.AnimationWorker_KeyframesExtended</workerClass>
<keyframes>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>0</tick>
<angle>15</angle>
<visible>true</visible>
<offset>(-0.65, 0, 0.42)</offset>
<scale>(1, 1, 1)</scale>
<rotation>East</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>13</tick>
<angle>-20</angle>
<visible>true</visible>
<offset>(-0.43, 0, 0.42)</offset>
<scale>(1, 1, 1)</scale>
<rotation>East</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>80</tick>
<angle>-15</angle>
<visible>true</visible>
<offset>(-0.49, 0, 0.42)</offset>
<scale>(1, 1, 1)</scale>
<rotation>East</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>85</tick>
<angle>-20</angle>
<visible>true</visible>
<offset>(-0.43, 0, 0.42)</offset>
<scale>(1, 1, 1)</scale>
<rotation>East</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>150</tick>
<angle>-15</angle>
<visible>true</visible>
<offset>(-0.49, 0, 0.42)</offset>
<scale>(1, 1, 1)</scale>
<rotation>East</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>155</tick>
<angle>-20</angle>
<visible>true</visible>
<offset>(-0.43, 0, 0.42)</offset>
<scale>(1, 1, 1)</scale>
<rotation>East</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>200</tick>
<angle>-15</angle>
<visible>true</visible>
<offset>(-0.49, 0, 0.42)</offset>
<scale>(1, 1, 1)</scale>
<rotation>East</rotation>
</li>
</keyframes>
</value>
</li>
<li>
<key>Head</key>
<value>
<workerClass>Rimworld_Animations.AnimationWorker_KeyframesExtended</workerClass>
<keyframes>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>0</tick>
<angle>20</angle>
<visible>true</visible>
<scale>(1, 1, 1)</scale>
<rotation>East</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>40</tick>
<angle>25</angle>
<visible>true</visible>
<scale>(1, 1, 1)</scale>
<rotation>East</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>200</tick>
<angle>30</angle>
<visible>true</visible>
<scale>(1, 1, 1)</scale>
<rotation>East</rotation>
</li>
</keyframes>
</value>
</li>
<li MayRequire="shauaputa.rimnudeworld">
<key>RimNude_Penis</key>
<value>
<workerClass>Rimworld_Animations.AnimationWorker_KeyframesExtended</workerClass>
<keyframes>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>0</tick>
<angle>30</angle>
<visible>true</visible>
<scale>(1, 1, 1)</scale>
<offset>(0, -3, 0)</offset>
<rotation>East</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>13</tick>
<angle>60</angle>
<visible>true</visible>
<scale>(1, 1, 1)</scale>
<offset>(0, -3, 0)</offset>
<rotation>East</rotation>
</li>
</keyframes>
</value>
</li>
</animationParts>
</AnimationDef>
<AnimationDef>
<defName>FemalePawn_Missionary_Stage6</defName>
<durationTicks>200</durationTicks>
<animationParts>
<li>
<key>Root</key>
<value>
<workerClass>Rimworld_Animations.AnimationWorker_KeyframesExtended</workerClass>
<keyframes>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>0</tick>
<angle>95</angle>
<visible>true</visible>
<offset>(0.07, -1, 0)</offset>
<scale>(1, 1, 1)</scale>
<rotation>West</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>13</tick>
<angle>100</angle>
<visible>true</visible>
<offset>(0.23, -1, 0)</offset>
<scale>(1, 1, 1)</scale>
<rotation>West</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>80</tick>
<angle>100</angle>
<visible>true</visible>
<offset>(0.2, -1, 0)</offset>
<scale>(1, 1, 1)</scale>
<rotation>West</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>85</tick>
<angle>100</angle>
<visible>true</visible>
<offset>(0.23, -1, 0)</offset>
<scale>(1, 1, 1)</scale>
<rotation>West</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>150</tick>
<angle>100</angle>
<visible>true</visible>
<offset>(0.2, -1, 0)</offset>
<scale>(1, 1, 1)</scale>
<rotation>West</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>155</tick>
<angle>100</angle>
<visible>true</visible>
<offset>(0.23, -1, 0)</offset>
<scale>(1, 1, 1)</scale>
<rotation>West</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>200</tick>
<angle>100</angle>
<visible>true</visible>
<offset>(0.2, -1, 0)</offset>
<scale>(1, 1, 1)</scale>
<rotation>West</rotation>
</li>
</keyframes>
</value>
</li>
<li>
<key>Head</key>
<value>
<workerClass>Rimworld_Animations.AnimationWorker_KeyframesExtended</workerClass>
<keyframes>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>0</tick>
<angle>-20</angle>
<visible>true</visible>
<scale>(1, 1, 1)</scale>
<rotation>West</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>100</tick>
<angle>-10</angle>
<visible>true</visible>
<scale>(1, 1, 1)</scale>
<rotation>West</rotation>
</li>
<li Class="Rimworld_Animations.ExtendedKeyframe">
<tick>200</tick>
<angle>-23</angle>
<visible>true</visible>
<scale>(1, 1, 1)</scale>
<rotation>West</rotation>
</li>
</keyframes>
</value>
</li>
</animationParts>
</AnimationDef>
</Defs>

View file

@ -35,7 +35,7 @@
--> -->
</animationStages> </animationStages>
<!--
<contexts> <contexts>
<li Class="Rimworld_Animations.GroupAnimationContext_RJWSex"> <li Class="Rimworld_Animations.GroupAnimationContext_RJWSex">
<priority>1</priority> <priority>1</priority>
@ -56,11 +56,11 @@
<li Class="Rimworld_Animations.GroupAnimationContext_RJWSex"> <li Class="Rimworld_Animations.GroupAnimationContext_RJWSex">
<priority>0</priority> <priority>0</priority>
<interactionDefs> <interactionDefs>
<!-- all other contexts go here -->
<!-- the ones that don't make sense but play an animation anyway -->
</interactionDefs> </interactionDefs>
</li> </li>
</contexts> </contexts>
-->
<offsetDefs> <offsetDefs>
<li>GroinToAppropriateHeight</li> <!-- first pawn in animation --> <li>GroinToAppropriateHeight</li> <!-- first pawn in animation -->

View file

@ -3,6 +3,7 @@
<Rimworld_Animations.AnimationOffsetDef> <Rimworld_Animations.AnimationOffsetDef>
<defName>GroinToAppropriateHeight</defName> <defName>GroinToAppropriateHeight</defName>
<offsets> <offsets>
<!--
<li Class="Rimworld_Animations.AnimationOffset_Single" MayRequire="erdelf.HumanoidAlienRaces,dianawinters.Orassans"> <li Class="Rimworld_Animations.AnimationOffset_Single" MayRequire="erdelf.HumanoidAlienRaces,dianawinters.Orassans">
<races> <races>
<li>Alien_Orassan</li> <li>Alien_Orassan</li>
@ -39,6 +40,7 @@
<li><bodyType>Thin</bodyType><offset>(0, 0, 0.3)</offset></li> <li><bodyType>Thin</bodyType><offset>(0, 0, 0.3)</offset></li>
</offsetsFemale> </offsetsFemale>
</li> </li>
-->
</offsets> </offsets>
</Rimworld_Animations.AnimationOffsetDef> </Rimworld_Animations.AnimationOffsetDef>
</Defs> </Defs>

View file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<Rimworld_Animations.AnimationOffsetDef>
<!-- Empty offsets -->
<!-- Placeholder for when you haven't created offsets yet for specific pawn -->
<defName>Offset_Placeholder</defName>
<offsets>
</offsets>
</Rimworld_Animations.AnimationOffsetDef>
</Defs>

View file

@ -24,7 +24,8 @@ namespace Rimworld_Animations
Log.Message("[anims] Checking if " + defName + " is valid animation"); Log.Message("[anims] Checking if " + defName + " is valid animation");
} }
if (!contexts.NullOrEmpty())
{
foreach (BaseGroupAnimationContext context in contexts) foreach (BaseGroupAnimationContext context in contexts)
{ {
if (context.CanAnimationBeUsed(actors)) if (context.CanAnimationBeUsed(actors))
@ -34,6 +35,8 @@ namespace Rimworld_Animations
} }
} }
}
return false; return false;
} }

View file

@ -11,6 +11,7 @@ namespace Rimworld_Animations
{ {
//Return a list containing a tuple; int for how long the animation should play for //Return a list containing a tuple; int for how long the animation should play for
public int loops;
public abstract List<AnimationDef> GetAnimations(int actorNumber, int seed); public abstract List<AnimationDef> GetAnimations(int actorNumber, int seed);
} }

View file

@ -14,12 +14,16 @@ namespace Rimworld_Animations
{ {
List<AnimationDef> animationDefs = new List<AnimationDef>(); List<AnimationDef> animationDefs = new List<AnimationDef>();
for (int i = 0; i < loops; i++)
{
//loop thru the selected groupanimationdef path //loop thru the selected groupanimationdef path
foreach (AnimationStage stage in paths[(seed * 59) % paths.Count].animationStages) foreach (AnimationStage stage in paths[((seed * 30 + 12 * i) % 59) % paths.Count].animationStages)
{ {
animationDefs.AddRange(stage.GetAnimations(actorNumber, seed)); animationDefs.AddRange(stage.GetAnimations(actorNumber, seed));
} }
}
return animationDefs; return animationDefs;
} }
} }

View file

@ -9,7 +9,6 @@ namespace Rimworld_Animations
{ {
public class AnimationStage_LoopRandomSelectChance : AnimationStage public class AnimationStage_LoopRandomSelectChance : AnimationStage
{ {
public int loops;
public List<AnimationLoopOption> loopOptions; public List<AnimationLoopOption> loopOptions;
public override List<AnimationDef> GetAnimations(int actorNumber, int seed) public override List<AnimationDef> GetAnimations(int actorNumber, int seed)

View file

@ -186,11 +186,13 @@ namespace Rimworld_Animations {
//only if pawn is animating for performance //only if pawn is animating for performance
if (IsAnimating) if (IsAnimating)
{ {
List<PawnRenderNode> animRenderNodes = new List<PawnRenderNode>(); List<PawnRenderNode> animRenderNodes = new List<PawnRenderNode>();
// for all animationpropdefs, // for all animationpropdefs,
foreach (AnimationPropDef animationProp in DefDatabase<AnimationPropDef>.AllDefsListForReading) foreach (AnimationPropDef animationProp in DefDatabase<AnimationPropDef>.AllDefsListForReading)
{ {
//if animation makes use of prop, //if animation makes use of prop,
if (AnimationMakesUseOfProp(animationProp)) if (AnimationMakesUseOfProp(animationProp))
{ {
@ -267,8 +269,10 @@ namespace Rimworld_Animations {
// never true if not animating; anim props shouldn't be attached // never true if not animating; anim props shouldn't be attached
if (!IsAnimating) return false; if (!IsAnimating) return false;
//for ONLY THE CURRENT animation, //for all anims in queue (because it's only recached at start)
foreach (PawnRenderNodeTagDef propTag in animationQueue[0].animationParts.Keys) foreach (AnimationDef animation in animationQueue)
{
foreach (PawnRenderNodeTagDef propTag in animation.animationParts.Keys)
{ {
// if that proptag is the same as the one for animationProp, // if that proptag is the same as the one for animationProp,
if (propTag == animationProp.animPropProperties.tagDef) if (propTag == animationProp.animPropProperties.tagDef)
@ -278,6 +282,10 @@ namespace Rimworld_Animations {
} }
} }
}
//for ALL animations (only recaches at start of rjw job),
return false; return false;
} }

View file

@ -26,6 +26,16 @@ namespace Rimworld_Animations
__result = false; __result = false;
return false; return false;
} }
//visible when animating
return true;
}
//set graphic variant nodes to invisible when not animating
if (node is PawnRenderNode_GraphicVariants)
{
__result = false;
return false;
} }
return true; return true;

View file

@ -14,8 +14,7 @@ namespace Rimworld_Animations
public override void TransformOffset(PawnRenderNode node, PawnDrawParms parms, ref Vector3 offset, ref Vector3 pivot) public override void TransformOffset(PawnRenderNode node, PawnDrawParms parms, ref Vector3 offset, ref Vector3 pivot)
{ {
if (node.AnimationWorker is AnimationWorker_KeyframesExtended if (node.AnimationWorker is AnimationWorker_KeyframesExtended
&& node.tree.pawn.TryGetComp<CompExtendedAnimator>(out CompExtendedAnimator extendedAnimator) && node.tree.pawn.TryGetComp<CompExtendedAnimator>(out CompExtendedAnimator extendedAnimator))
&& extendedAnimator.IsAnimating)
{ {
Vector3? pawnOffset = extendedAnimator.Offset; Vector3? pawnOffset = extendedAnimator.Offset;
if (pawnOffset != null) if (pawnOffset != null)
@ -30,8 +29,7 @@ namespace Rimworld_Animations
public override void TransformRotation(PawnRenderNode node, PawnDrawParms parms, ref Quaternion rotation) public override void TransformRotation(PawnRenderNode node, PawnDrawParms parms, ref Quaternion rotation)
{ {
if (node.AnimationWorker is AnimationWorker_KeyframesExtended if (node.AnimationWorker is AnimationWorker_KeyframesExtended
&& node.tree.pawn.TryGetComp<CompExtendedAnimator>(out CompExtendedAnimator extendedAnimator) && node.tree.pawn.TryGetComp<CompExtendedAnimator>(out CompExtendedAnimator extendedAnimator))
&& extendedAnimator.IsAnimating)
{ {
int? pawnRotation = extendedAnimator.Rotation; int? pawnRotation = extendedAnimator.Rotation;
if (pawnRotation != null) if (pawnRotation != null)

View file

@ -85,10 +85,10 @@ namespace Rimworld_Animations {
int reorder2 = 0; int reorder2 = 0;
//find all, reorder randomly, then find max priority context //find all, reorder randomly, then find max priority context
GroupAnimationDef result = DefDatabase<GroupAnimationDef>.AllDefsListForReading DefDatabase<GroupAnimationDef>.AllDefsListForReading
.FindAll((GroupAnimationDef x) => x.canAnimationBeUsed(participants)) .FindAll((GroupAnimationDef x) => x.canAnimationBeUsed(participants))
.OrderBy(_ => Rand.Int) .OrderBy(_ => Rand.Int)
.MaxBy((GroupAnimationDef x) => x.Priority(participants, out reorder2)); .TryMaxBy((GroupAnimationDef x) => x.Priority(participants, out reorder2), out GroupAnimationDef result);
reorder = reorder2; reorder = reorder2;

Binary file not shown.

After

Width:  |  Height:  |  Size: 149 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 149 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 148 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 148 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 158 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 159 KiB

View file

@ -140,6 +140,28 @@
<Content Include="1.5\Assemblies\0MultiplayerAPI.dll" /> <Content Include="1.5\Assemblies\0MultiplayerAPI.dll" />
<Content Include="1.5\Assemblies\Rimworld-Animations.dll" /> <Content Include="1.5\Assemblies\Rimworld-Animations.dll" />
<Content Include="1.5\Assemblies\RJW.dll" /> <Content Include="1.5\Assemblies\RJW.dll" />
<Content Include="1.5\Defs\AnimationDefs\Cowgirl\AnimationPropDef_Cowgirl_Xray.xml" />
<Content Include="1.5\Defs\AnimationDefs\Cowgirl\Cowgirl_Stage1.xml" />
<Content Include="1.5\Defs\AnimationDefs\Cowgirl\Cowgirl_Stage2_1.xml" />
<Content Include="1.5\Defs\AnimationDefs\Cowgirl\Cowgirl_Stage2_2.xml" />
<Content Include="1.5\Defs\AnimationDefs\Cowgirl\Cowgirl_Stage2_3.xml" />
<Content Include="1.5\Defs\AnimationDefs\Cowgirl\Cowgirl_Stage3_XRay.xml" />
<Content Include="1.5\Defs\AnimationDefs\Cowgirl\Cowgirl_Stage4.xml" />
<Content Include="1.5\Defs\AnimationDefs\Cowgirl\Cowgirl_Stage_1_5.xml" />
<Content Include="1.5\Defs\AnimationDefs\Cowgirl\GroupAnimation_Cowgirl.xml" />
<Content Include="1.5\Defs\AnimationDefs\Cowgirl\OffsetDef_Cowgirl.xml" />
<Content Include="1.5\Defs\AnimationDefs\Missionary\GroupAnimation_Missionary.xml" />
<Content Include="1.5\Defs\AnimationDefs\Missionary\OffsetDef_Missionary.xml" />
<Content Include="1.5\Defs\AnimationDefs\Missionary\Stage1.xml" />
<Content Include="1.5\Defs\AnimationDefs\Missionary\Stage2.xml" />
<Content Include="1.5\Defs\AnimationDefs\Missionary\Stage2b.xml" />
<Content Include="1.5\Defs\AnimationDefs\Missionary\Stage2c.xml" />
<Content Include="1.5\Defs\AnimationDefs\Missionary\Stage3_DontLoop.xml" />
<Content Include="1.5\Defs\AnimationDefs\Missionary\Stage4.xml" />
<Content Include="1.5\Defs\AnimationDefs\Missionary\Stage5.xml" />
<Content Include="1.5\Defs\AnimationDefs\Missionary\Stage6.xml" />
<Content Include="1.5\Defs\OffsetDefs\OffsetDef_Placeholder.xml" />
<Content Include="1.5\Defs\TexPathVariantsDefs\TexPathVariants_XrayPenis_Human.xml" />
<Content Include="1.5\Defs\AnimationDefs\TestAnimation1.xml" /> <Content Include="1.5\Defs\AnimationDefs\TestAnimation1.xml" />
<Content Include="1.5\Defs\AnimationDefs\TestAnimation2.xml" /> <Content Include="1.5\Defs\AnimationDefs\TestAnimation2.xml" />
<Content Include="1.5\Defs\AnimationDefs\TestAnimation3.xml" /> <Content Include="1.5\Defs\AnimationDefs\TestAnimation3.xml" />
@ -156,7 +178,7 @@
<Content Include="1.5\Defs\TexPathVariantsDefs\TexPathVariants_Knees.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_Xray_Inside.xml" />
<Content Include="1.5\Defs\TexPathVariantsDefs\TexPathVariants_XrayPenis_Horse.xml" /> <Content Include="1.5\Defs\TexPathVariantsDefs\TexPathVariants_XrayPenis_Horse.xml" />
<Content Include="1.5\Defs\TexPathVariantsDefs\TexPathVariants_XrayPenis_Human.xml" /> <Content Include="1.5\Defs\AnimationDefs\Cowgirl\TexPathVariants_Cowgirl.xml" />
<Content Include="1.5\Patches\AnimationPatchHSK.xml" /> <Content Include="1.5\Patches\AnimationPatchHSK.xml" />
<Content Include="1.5\Patches\AnimationPatch_CompExtendedAnimator.xml" /> <Content Include="1.5\Patches\AnimationPatch_CompExtendedAnimator.xml" />
<Content Include="1.5\Patches\AnimationPatch_PawnRenderTree_OffsetSubWorker.xml" /> <Content Include="1.5\Patches\AnimationPatch_PawnRenderTree_OffsetSubWorker.xml" />
@ -204,6 +226,12 @@
<Content Include="1.5\Textures\AnimationProps\MissingTexture\MissingTexture_north.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_south.png" />
<Content Include="1.5\Textures\AnimationProps\MissingTexture\MissingTexture_west.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\UI\MainTab.png" /> <Content Include="1.5\Textures\UI\MainTab.png" />
<Content Include="About\About.xml" /> <Content Include="About\About.xml" />
<Content Include="About\Manifest.xml" /> <Content Include="About\Manifest.xml" />