tweaks to handling of animation context

This commit is contained in:
Platinum 2020-06-02 13:20:38 -07:00
parent 6ebd521519
commit 4adc4a6906
6 changed files with 301 additions and 287 deletions

Binary file not shown.

View file

@ -463,15 +463,6 @@
<li>Oral</li> <li>Oral</li>
</sexTypes> </sexTypes>
<actors> <actors>
<li>
<!--each type cooresponds to an animation clip in each animationStage-->
<defNames>
<li>Human</li>
</defNames>
<bodyTypeOffset>
<Hulk>(0, -0.2)</Hulk>
</bodyTypeOffset>
</li>
<li> <li>
<defNames> <defNames>
<li>Human</li> <li>Human</li>
@ -483,6 +474,15 @@
<Hulk>(0, 0.2)</Hulk> <Hulk>(0, 0.2)</Hulk>
</bodyTypeOffset> </bodyTypeOffset>
</li> </li>
<li>
<!--each type cooresponds to an animation clip in each animationStage-->
<defNames>
<li>Human</li>
</defNames>
<bodyTypeOffset>
<Hulk>(0, -0.2)</Hulk>
</bodyTypeOffset>
</li>
</actors> </actors>
<animationStages> <animationStages>
<li> <li>
@ -491,6 +491,42 @@
<playTimeTicks>1140</playTimeTicks> <playTimeTicks>1140</playTimeTicks>
<stageIndex>0</stageIndex> <stageIndex>0</stageIndex>
<animationClips> <animationClips>
<li Class="Rimworld_Animations.PawnAnimationClip">
<layer>LayingPawn</layer>
<keyframes>
<li>
<tickDuration>35</tickDuration>
<bodyAngle>0</bodyAngle>
<headAngle>0</headAngle>
<bodyOffsetX>0</bodyOffsetX>
<bodyOffsetZ>0.473</bodyOffsetZ>
<bodyFacing>2</bodyFacing>
<headFacing>2</headFacing>
<headBob>0</headBob>
<genitalAngle>180</genitalAngle>
</li>
<li>
<tickDuration>59</tickDuration>
<bodyAngle>0</bodyAngle>
<bodyOffsetX>0</bodyOffsetX>
<bodyOffsetZ>0.490</bodyOffsetZ>
<bodyFacing>2</bodyFacing>
<headFacing>2</headFacing>
<headBob>-0.003</headBob>
</li>
<li>
<tickDuration>1</tickDuration>
<bodyAngle>0</bodyAngle>
<headAngle>0</headAngle>
<bodyOffsetX>0</bodyOffsetX>
<bodyOffsetZ>0.473</bodyOffsetZ>
<bodyFacing>2</bodyFacing>
<headFacing>2</headFacing>
<headBob>0</headBob>
<genitalAngle>180</genitalAngle>
</li>
</keyframes>
</li>
<li Class="Rimworld_Animations.PawnAnimationClip"> <li Class="Rimworld_Animations.PawnAnimationClip">
<keyframes> <keyframes>
<li> <li>
@ -620,120 +656,7 @@
</li> </li>
</keyframes> </keyframes>
</li> </li>
<li Class="Rimworld_Animations.PawnAnimationClip">
<layer>LayingPawn</layer>
<keyframes>
<li>
<tickDuration>35</tickDuration>
<bodyAngle>0</bodyAngle>
<headAngle>0</headAngle>
<bodyOffsetX>0</bodyOffsetX>
<bodyOffsetZ>0.473</bodyOffsetZ>
<bodyFacing>2</bodyFacing>
<headFacing>2</headFacing>
<headBob>0</headBob>
<genitalAngle>180</genitalAngle>
</li>
<li>
<tickDuration>59</tickDuration>
<bodyAngle>0</bodyAngle>
<bodyOffsetX>0</bodyOffsetX>
<bodyOffsetZ>0.490</bodyOffsetZ>
<bodyFacing>2</bodyFacing>
<headFacing>2</headFacing>
<headBob>-0.003</headBob>
</li>
<li>
<tickDuration>1</tickDuration>
<bodyAngle>0</bodyAngle>
<headAngle>0</headAngle>
<bodyOffsetX>0</bodyOffsetX>
<bodyOffsetZ>0.473</bodyOffsetZ>
<bodyFacing>2</bodyFacing>
<headFacing>2</headFacing>
<headBob>0</headBob>
<genitalAngle>180</genitalAngle>
</li>
</keyframes>
</li>
</animationClips>
</li>
<li>
<stageName>Face_Fuck</stageName>
<isLooping>true</isLooping>
<playTimeTicks>300</playTimeTicks>
<stageIndex>0</stageIndex>
<animationClips>
<li Class="Rimworld_Animations.PawnAnimationClip">
<keyframes>
<li>
<tickDuration>15</tickDuration>
<bodyAngle>0</bodyAngle>
<headAngle>0</headAngle>
<bodyOffsetX>0</bodyOffsetX>
<bodyOffsetZ>-0.255</bodyOffsetZ>
<bodyFacing>0</bodyFacing>
<headFacing>0</headFacing>
<headBob>0</headBob>
</li>
<li>
<soundEffect>Suck</soundEffect>
<tickDuration>14</tickDuration>
<bodyAngle>0</bodyAngle>
<bodyOffsetX>0</bodyOffsetX>
<bodyOffsetZ>-0.270</bodyOffsetZ>
<bodyFacing>0</bodyFacing>
<headFacing>0</headFacing>
<headBob>-0.06</headBob>
</li>
<li>
<tickDuration>1</tickDuration>
<bodyAngle>0</bodyAngle>
<headAngle>0</headAngle>
<bodyOffsetX>0</bodyOffsetX>
<bodyOffsetZ>-0.255</bodyOffsetZ>
<bodyFacing>0</bodyFacing>
<headFacing>0</headFacing>
<headBob>0</headBob>
</li>
</keyframes>
</li>
<li Class="Rimworld_Animations.PawnAnimationClip">
<layer>LayingPawn</layer>
<keyframes>
<li>
<tickDuration>15</tickDuration>
<bodyAngle>0</bodyAngle>
<headAngle>0</headAngle>
<bodyOffsetX>0</bodyOffsetX>
<bodyOffsetZ>0.473</bodyOffsetZ>
<bodyFacing>2</bodyFacing>
<headFacing>2</headFacing>
<headBob>0</headBob>
<genitalAngle>180</genitalAngle>
</li>
<li>
<tickDuration>14</tickDuration>
<bodyAngle>0</bodyAngle>
<bodyOffsetX>0</bodyOffsetX>
<bodyOffsetZ>0.575</bodyOffsetZ>
<bodyFacing>2</bodyFacing>
<headFacing>2</headFacing>
<headBob>-0.051</headBob>
</li>
<li>
<tickDuration>1</tickDuration>
<bodyAngle>0</bodyAngle>
<headAngle>0</headAngle>
<bodyOffsetX>0</bodyOffsetX>
<bodyOffsetZ>0.473</bodyOffsetZ>
<bodyFacing>2</bodyFacing>
<headFacing>2</headFacing>
<headBob>0</headBob>
<genitalAngle>180</genitalAngle>
</li>
</keyframes>
</li>
</animationClips> </animationClips>
</li> </li>
<li> <li>
@ -870,6 +793,85 @@
</li> </li>
</animationClips> </animationClips>
</li> </li>
<li>
<stageName>Face_Fuck</stageName>
<isLooping>true</isLooping>
<playTimeTicks>300</playTimeTicks>
<stageIndex>0</stageIndex>
<animationClips>
<li Class="Rimworld_Animations.PawnAnimationClip">
<keyframes>
<li>
<tickDuration>15</tickDuration>
<bodyAngle>0</bodyAngle>
<headAngle>0</headAngle>
<bodyOffsetX>0</bodyOffsetX>
<bodyOffsetZ>-0.255</bodyOffsetZ>
<bodyFacing>0</bodyFacing>
<headFacing>0</headFacing>
<headBob>0</headBob>
</li>
<li>
<soundEffect>Suck</soundEffect>
<tickDuration>14</tickDuration>
<bodyAngle>0</bodyAngle>
<bodyOffsetX>0</bodyOffsetX>
<bodyOffsetZ>-0.270</bodyOffsetZ>
<bodyFacing>0</bodyFacing>
<headFacing>0</headFacing>
<headBob>-0.06</headBob>
</li>
<li>
<tickDuration>1</tickDuration>
<bodyAngle>0</bodyAngle>
<headAngle>0</headAngle>
<bodyOffsetX>0</bodyOffsetX>
<bodyOffsetZ>-0.255</bodyOffsetZ>
<bodyFacing>0</bodyFacing>
<headFacing>0</headFacing>
<headBob>0</headBob>
</li>
</keyframes>
</li>
<li Class="Rimworld_Animations.PawnAnimationClip">
<layer>LayingPawn</layer>
<keyframes>
<li>
<tickDuration>15</tickDuration>
<bodyAngle>0</bodyAngle>
<headAngle>0</headAngle>
<bodyOffsetX>0</bodyOffsetX>
<bodyOffsetZ>0.473</bodyOffsetZ>
<bodyFacing>2</bodyFacing>
<headFacing>2</headFacing>
<headBob>0</headBob>
<genitalAngle>180</genitalAngle>
</li>
<li>
<tickDuration>14</tickDuration>
<bodyAngle>0</bodyAngle>
<bodyOffsetX>0</bodyOffsetX>
<bodyOffsetZ>0.575</bodyOffsetZ>
<bodyFacing>2</bodyFacing>
<headFacing>2</headFacing>
<headBob>-0.051</headBob>
</li>
<li>
<tickDuration>1</tickDuration>
<bodyAngle>0</bodyAngle>
<headAngle>0</headAngle>
<bodyOffsetX>0</bodyOffsetX>
<bodyOffsetZ>0.473</bodyOffsetZ>
<bodyFacing>2</bodyFacing>
<headFacing>2</headFacing>
<headBob>0</headBob>
<genitalAngle>180</genitalAngle>
</li>
</keyframes>
</li>
</animationClips>
</li>
</animationStages> </animationStages>
</Rimworld_Animations.AnimationDef> </Rimworld_Animations.AnimationDef>
@ -1991,6 +1993,16 @@
</sexTypes> </sexTypes>
<actors> <actors>
<li>
<defNames>
<li>Human</li>
</defNames>
<isFucking>true</isFucking>
<controlGenitalAngle>true</controlGenitalAngle>
<bodyTypeOffset>
<Hulk>(0, -0.2)</Hulk>
</bodyTypeOffset>
</li>
<li> <li>
<!--each type cooresponds to an animation clip in each animationStage--> <!--each type cooresponds to an animation clip in each animationStage-->
@ -2004,17 +2016,6 @@
</bodyTypeOffset> </bodyTypeOffset>
</li> </li>
<li>
<defNames>
<li>Human</li>
</defNames>
<isFucking>true</isFucking>
<controlGenitalAngle>true</controlGenitalAngle>
<bodyTypeOffset>
<Hulk>(0, -0.2)</Hulk>
</bodyTypeOffset>
</li>
</actors> </actors>
<animationStages> <animationStages>
@ -2024,6 +2025,45 @@
<playTimeTicks>1340</playTimeTicks> <playTimeTicks>1340</playTimeTicks>
<stageIndex>0</stageIndex> <stageIndex>0</stageIndex>
<animationClips> <animationClips>
<li Class="Rimworld_Animations.PawnAnimationClip">
<layer>LayingPawn</layer>
<keyframes>
<li>
<tickDuration>33</tickDuration>
<bodyAngle>180</bodyAngle>
<headAngle>180</headAngle>
<bodyOffsetX>0</bodyOffsetX>
<bodyOffsetZ>-0.363</bodyOffsetZ>
<bodyFacing>2</bodyFacing>
<headFacing>2</headFacing>
<headBob>0</headBob>
<genitalAngle>0</genitalAngle>
</li>
<li>
<tickDuration>33</tickDuration>
<bodyAngle>180</bodyAngle>
<headAngle>180</headAngle>
<bodyOffsetX>0</bodyOffsetX>
<bodyOffsetZ>-0.313</bodyOffsetZ>
<bodyFacing>2</bodyFacing>
<headFacing>2</headFacing>
<headBob>0.045</headBob>
<genitalAngle>0</genitalAngle>
</li>
<li>
<tickDuration>1</tickDuration>
<bodyAngle>180</bodyAngle>
<headAngle>180</headAngle>
<bodyOffsetX>0</bodyOffsetX>
<bodyOffsetZ>-0.363</bodyOffsetZ>
<bodyFacing>2</bodyFacing>
<headFacing>2</headFacing>
<headBob>0</headBob>
<genitalAngle>0</genitalAngle>
</li>
</keyframes>
</li>
<li Class="Rimworld_Animations.PawnAnimationClip"> <li Class="Rimworld_Animations.PawnAnimationClip">
<keyframes> <keyframes>
<!--Turning hips--> <!--Turning hips-->
@ -2196,12 +2236,21 @@
<headBob>0</headBob> <headBob>0</headBob>
</li> </li>
</keyframes> </keyframes>
</li> </li>
</animationClips>
</li>
<li>
<stageName>Fast_Fuck</stageName>
<isLooping>true</isLooping>
<playTimeTicks>780</playTimeTicks>
<stageIndex>0</stageIndex>
<animationClips>
<li Class="Rimworld_Animations.PawnAnimationClip"> <li Class="Rimworld_Animations.PawnAnimationClip">
<layer>LayingPawn</layer> <layer>LayingPawn</layer>
<keyframes> <keyframes>
<li> <li>
<tickDuration>33</tickDuration> <tickDuration>13</tickDuration>
<bodyAngle>180</bodyAngle> <bodyAngle>180</bodyAngle>
<headAngle>180</headAngle> <headAngle>180</headAngle>
<bodyOffsetX>0</bodyOffsetX> <bodyOffsetX>0</bodyOffsetX>
@ -2212,7 +2261,7 @@
<genitalAngle>0</genitalAngle> <genitalAngle>0</genitalAngle>
</li> </li>
<li> <li>
<tickDuration>33</tickDuration> <tickDuration>13</tickDuration>
<bodyAngle>180</bodyAngle> <bodyAngle>180</bodyAngle>
<headAngle>180</headAngle> <headAngle>180</headAngle>
<bodyOffsetX>0</bodyOffsetX> <bodyOffsetX>0</bodyOffsetX>
@ -2235,14 +2284,6 @@
</li> </li>
</keyframes> </keyframes>
</li> </li>
</animationClips>
</li>
<li>
<stageName>Fast_Fuck</stageName>
<isLooping>true</isLooping>
<playTimeTicks>780</playTimeTicks>
<stageIndex>0</stageIndex>
<animationClips>
<li Class="Rimworld_Animations.PawnAnimationClip"> <li Class="Rimworld_Animations.PawnAnimationClip">
<keyframes> <keyframes>
<li> <li>
@ -2278,11 +2319,21 @@
</li> </li>
</keyframes> </keyframes>
</li> </li>
</animationClips>
</li>
<li>
<stageName>Cum</stageName>
<isLooping>true</isLooping>
<playTimeTicks>594</playTimeTicks>
<stageIndex>0</stageIndex>
<animationClips>
<li Class="Rimworld_Animations.PawnAnimationClip"> <li Class="Rimworld_Animations.PawnAnimationClip">
<layer>LayingPawn</layer> <layer>LayingPawn</layer>
<keyframes> <keyframes>
<li> <li>
<tickDuration>13</tickDuration> <tickDuration>10</tickDuration>
<bodyAngle>180</bodyAngle> <bodyAngle>180</bodyAngle>
<headAngle>180</headAngle> <headAngle>180</headAngle>
<bodyOffsetX>0</bodyOffsetX> <bodyOffsetX>0</bodyOffsetX>
@ -2293,7 +2344,7 @@
<genitalAngle>0</genitalAngle> <genitalAngle>0</genitalAngle>
</li> </li>
<li> <li>
<tickDuration>13</tickDuration> <tickDuration>10</tickDuration>
<bodyAngle>180</bodyAngle> <bodyAngle>180</bodyAngle>
<headAngle>180</headAngle> <headAngle>180</headAngle>
<bodyOffsetX>0</bodyOffsetX> <bodyOffsetX>0</bodyOffsetX>
@ -2301,7 +2352,88 @@
<bodyFacing>2</bodyFacing> <bodyFacing>2</bodyFacing>
<headFacing>2</headFacing> <headFacing>2</headFacing>
<headBob>0.045</headBob> <headBob>0.045</headBob>
<genitalAngle>0</genitalAngle> </li>
<li>
<tickDuration>1</tickDuration>
<bodyAngle>180</bodyAngle>
<headAngle>180</headAngle>
<bodyOffsetX>0</bodyOffsetX>
<bodyOffsetZ>-0.363</bodyOffsetZ>
<bodyFacing>2</bodyFacing>
<headFacing>2</headFacing>
<headBob>0</headBob>
</li>
<li>
<tickDuration>10</tickDuration>
<bodyAngle>180</bodyAngle>
<headAngle>180</headAngle>
<bodyOffsetX>0</bodyOffsetX>
<bodyOffsetZ>-0.363</bodyOffsetZ>
<bodyFacing>2</bodyFacing>
<headFacing>2</headFacing>
<headBob>0</headBob>
</li>
<li>
<tickDuration>10</tickDuration>
<bodyAngle>180</bodyAngle>
<headAngle>180</headAngle>
<bodyOffsetX>0</bodyOffsetX>
<bodyOffsetZ>-0.313</bodyOffsetZ>
<bodyFacing>2</bodyFacing>
<headFacing>2</headFacing>
<headBob>0.045</headBob>
</li>
<li>
<tickDuration>1</tickDuration>
<bodyAngle>180</bodyAngle>
<headAngle>180</headAngle>
<bodyOffsetX>0</bodyOffsetX>
<bodyOffsetZ>-0.363</bodyOffsetZ>
<bodyFacing>2</bodyFacing>
<headFacing>2</headFacing>
<headBob>0</headBob>
</li>
<li>
<tickDuration>10</tickDuration>
<bodyAngle>180</bodyAngle>
<headAngle>180</headAngle>
<bodyOffsetX>0</bodyOffsetX>
<bodyOffsetZ>-0.363</bodyOffsetZ>
<bodyFacing>2</bodyFacing>
<headFacing>2</headFacing>
<headBob>0</headBob>
</li>
<li>
<tickDuration>10</tickDuration>
<bodyAngle>180</bodyAngle>
<headAngle>180</headAngle>
<bodyOffsetX>0</bodyOffsetX>
<bodyOffsetZ>-0.313</bodyOffsetZ>
<bodyFacing>2</bodyFacing>
<headFacing>2</headFacing>
<headBob>0.045</headBob>
</li>
<li>
<tickDuration>45</tickDuration>
<bodyAngle>180</bodyAngle>
<headAngle>180</headAngle>
<bodyOffsetX>0</bodyOffsetX>
<bodyOffsetZ>-0.363</bodyOffsetZ>
<bodyFacing>2</bodyFacing>
<headFacing>2</headFacing>
<headBob>0</headBob>
</li>
<li>
<tickDuration>40</tickDuration>
<bodyAngle>180</bodyAngle>
<headAngle>180</headAngle>
<bodyOffsetX>0</bodyOffsetX>
<bodyOffsetZ>-0.363</bodyOffsetZ>
<bodyFacing>2</bodyFacing>
<headFacing>2</headFacing>
<headBob>0</headBob>
</li> </li>
<li> <li>
<tickDuration>1</tickDuration> <tickDuration>1</tickDuration>
@ -2316,14 +2448,6 @@
</li> </li>
</keyframes> </keyframes>
</li> </li>
</animationClips>
</li>
<li>
<stageName>Cum</stageName>
<isLooping>true</isLooping>
<playTimeTicks>594</playTimeTicks>
<stageIndex>0</stageIndex>
<animationClips>
<li Class="Rimworld_Animations.PawnAnimationClip"> <li Class="Rimworld_Animations.PawnAnimationClip">
<keyframes> <keyframes>
<li> <li>
@ -2445,125 +2569,6 @@
</li> </li>
</keyframes> </keyframes>
</li> </li>
<li Class="Rimworld_Animations.PawnAnimationClip">
<layer>LayingPawn</layer>
<keyframes>
<li>
<tickDuration>10</tickDuration>
<bodyAngle>180</bodyAngle>
<headAngle>180</headAngle>
<bodyOffsetX>0</bodyOffsetX>
<bodyOffsetZ>-0.363</bodyOffsetZ>
<bodyFacing>2</bodyFacing>
<headFacing>2</headFacing>
<headBob>0</headBob>
<genitalAngle>0</genitalAngle>
</li>
<li>
<tickDuration>10</tickDuration>
<bodyAngle>180</bodyAngle>
<headAngle>180</headAngle>
<bodyOffsetX>0</bodyOffsetX>
<bodyOffsetZ>-0.313</bodyOffsetZ>
<bodyFacing>2</bodyFacing>
<headFacing>2</headFacing>
<headBob>0.045</headBob>
</li>
<li>
<tickDuration>1</tickDuration>
<bodyAngle>180</bodyAngle>
<headAngle>180</headAngle>
<bodyOffsetX>0</bodyOffsetX>
<bodyOffsetZ>-0.363</bodyOffsetZ>
<bodyFacing>2</bodyFacing>
<headFacing>2</headFacing>
<headBob>0</headBob>
</li>
<li>
<tickDuration>10</tickDuration>
<bodyAngle>180</bodyAngle>
<headAngle>180</headAngle>
<bodyOffsetX>0</bodyOffsetX>
<bodyOffsetZ>-0.363</bodyOffsetZ>
<bodyFacing>2</bodyFacing>
<headFacing>2</headFacing>
<headBob>0</headBob>
</li>
<li>
<tickDuration>10</tickDuration>
<bodyAngle>180</bodyAngle>
<headAngle>180</headAngle>
<bodyOffsetX>0</bodyOffsetX>
<bodyOffsetZ>-0.313</bodyOffsetZ>
<bodyFacing>2</bodyFacing>
<headFacing>2</headFacing>
<headBob>0.045</headBob>
</li>
<li>
<tickDuration>1</tickDuration>
<bodyAngle>180</bodyAngle>
<headAngle>180</headAngle>
<bodyOffsetX>0</bodyOffsetX>
<bodyOffsetZ>-0.363</bodyOffsetZ>
<bodyFacing>2</bodyFacing>
<headFacing>2</headFacing>
<headBob>0</headBob>
</li>
<li>
<tickDuration>10</tickDuration>
<bodyAngle>180</bodyAngle>
<headAngle>180</headAngle>
<bodyOffsetX>0</bodyOffsetX>
<bodyOffsetZ>-0.363</bodyOffsetZ>
<bodyFacing>2</bodyFacing>
<headFacing>2</headFacing>
<headBob>0</headBob>
</li>
<li>
<tickDuration>10</tickDuration>
<bodyAngle>180</bodyAngle>
<headAngle>180</headAngle>
<bodyOffsetX>0</bodyOffsetX>
<bodyOffsetZ>-0.313</bodyOffsetZ>
<bodyFacing>2</bodyFacing>
<headFacing>2</headFacing>
<headBob>0.045</headBob>
</li>
<li>
<tickDuration>45</tickDuration>
<bodyAngle>180</bodyAngle>
<headAngle>180</headAngle>
<bodyOffsetX>0</bodyOffsetX>
<bodyOffsetZ>-0.363</bodyOffsetZ>
<bodyFacing>2</bodyFacing>
<headFacing>2</headFacing>
<headBob>0</headBob>
</li>
<li>
<tickDuration>40</tickDuration>
<bodyAngle>180</bodyAngle>
<headAngle>180</headAngle>
<bodyOffsetX>0</bodyOffsetX>
<bodyOffsetZ>-0.363</bodyOffsetZ>
<bodyFacing>2</bodyFacing>
<headFacing>2</headFacing>
<headBob>0</headBob>
</li>
<li>
<tickDuration>1</tickDuration>
<bodyAngle>180</bodyAngle>
<headAngle>180</headAngle>
<bodyOffsetX>0</bodyOffsetX>
<bodyOffsetZ>-0.363</bodyOffsetZ>
<bodyFacing>2</bodyFacing>
<headFacing>2</headFacing>
<headBob>0</headBob>
<genitalAngle>0</genitalAngle>
</li>
</keyframes>
</li>
</animationClips> </animationClips>
</li> </li>
</animationStages> </animationStages>

View file

@ -19,23 +19,26 @@ namespace Rimworld_Animations {
//aggressors last //aggressors last
participants = participants.OrderBy(p => p.jobs.curDriver is rjw.JobDriver_SexBaseInitiator).ToList(); participants = participants.OrderBy(p => p.jobs.curDriver is rjw.JobDriver_SexBaseInitiator).ToList();
//fucked first, fucking second //animal anims don't matter who is initiator
participants = participants.OrderBy(p => rjw.xxx.can_fuck(p)).ToList(); participants = participants.OrderBy(p => rjw.xxx.is_animal(p)).ToList();
if(rjw.RJWPreferenceSettings.Malesex == rjw.RJWPreferenceSettings.AllowedSex.Nohomo) {
participants = participants.OrderBy(x => rjw.xxx.is_male(x)).ToList();
}
List<Pawn> localParticipants = new List<Pawn>(participants); List<Pawn> localParticipants = new List<Pawn>(participants);
IEnumerable<AnimationDef> options = DefDatabase<AnimationDef>.AllDefs.Where((AnimationDef x) => { IEnumerable<AnimationDef> options = DefDatabase<AnimationDef>.AllDefs.Where((AnimationDef x) => {
if (x.actors.Count != localParticipants.Count) { if (x.actors.Count != localParticipants.Count) {
return false; return false;
} }
for (int i = 0; i < x.actors.Count; i++) { for (int i = 0; i < x.actors.Count; i++) {
if((x.actors[i].blacklistedRaces != null) && x.actors[i].blacklistedRaces.Contains(localParticipants[i].def.defName)) { if (rjw.RJWPreferenceSettings.Malesex == rjw.RJWPreferenceSettings.AllowedSex.Nohomo) {
if (rjw.xxx.is_male(localParticipants[i]) && x.actors[i].isFucked) {
return false;
}
}
if ((x.actors[i].blacklistedRaces != null) && x.actors[i].blacklistedRaces.Contains(localParticipants[i].def.defName)) {
if (rjw.RJWSettings.DevMode) { if (rjw.RJWSettings.DevMode) {
Log.Message(x.defName.ToStringSafe() + " not selected -- " + localParticipants[i].def.defName.ToStringSafe() + " " + localParticipants[i].Name.ToStringSafe() + " is blacklisted"); Log.Message(x.defName.ToStringSafe() + " not selected -- " + localParticipants[i].def.defName.ToStringSafe() + " " + localParticipants[i].Name.ToStringSafe() + " is blacklisted");
} }

View file

@ -38,6 +38,8 @@ namespace Rimworld_Animations {
private bool mirror = false, quiver = false, shiver = false; private bool mirror = false, quiver = false, shiver = false;
private int actor; private int actor;
private int lastDrawFrame = -1;
private int animTicks = 0, stageTicks = 0, clipTicks = 0; private int animTicks = 0, stageTicks = 0, clipTicks = 0;
private int curStage = 0; private int curStage = 0;
private float clipPercent = 0; private float clipPercent = 0;
@ -259,6 +261,10 @@ namespace Rimworld_Animations {
public void calculateDrawValues() { public void calculateDrawValues() {
if(Find.TickManager.TickRateMultiplier > 1 && (lastDrawFrame + 1 >= RealTime.frameCount || RealTime.deltaTime < 0.05f)) {
return;
}
deltaPos = new Vector3(clip.BodyOffsetX.Evaluate(clipPercent) * (mirror ? -1 : 1), clip.layer.AltitudeFor(), clip.BodyOffsetZ.Evaluate(clipPercent)); deltaPos = new Vector3(clip.BodyOffsetX.Evaluate(clipPercent) * (mirror ? -1 : 1), clip.layer.AltitudeFor(), clip.BodyOffsetZ.Evaluate(clipPercent));
if (AnimationSettings.offsets != null && AnimationSettings.offsets.ContainsKey(CurrentAnimation.defName + pawn.def.defName + ActorIndex)) { if (AnimationSettings.offsets != null && AnimationSettings.offsets.ContainsKey(CurrentAnimation.defName + pawn.def.defName + ActorIndex)) {
@ -307,6 +313,8 @@ namespace Rimworld_Animations {
} }
headBob = new Vector3(0, 0, clip.HeadBob.Evaluate(clipPercent)); headBob = new Vector3(0, 0, clip.HeadBob.Evaluate(clipPercent));
lastDrawFrame = RealTime.frameCount;
} }
public Vector3 getPawnHeadPosition() { public Vector3 getPawnHeadPosition() {

View file

@ -77,10 +77,8 @@ namespace Rimworld_Animations {
Vector2 bodyOffset = (portrait ? offset?.portraitBodyTypes ?? offset?.bodyTypes : offset?.bodyTypes)?.FirstOrDefault(predicate: to => to.bodyType == pawn.story.bodyType) Vector2 bodyOffset = ((!portrait) ? offset?.bodyTypes : (offset?.portraitBodyTypes ?? offset?.bodyTypes))?.FirstOrDefault((AlienPartGenerator.BodyTypeOffset to) => to.bodyType == pawn.story.bodyType)?.offset ?? Vector2.zero;
?.offset ?? Vector2.zero; Vector2 crownOffset = ((!portrait) ? offset?.crownTypes : (offset?.portraitCrownTypes ?? offset?.crownTypes))?.FirstOrDefault((AlienPartGenerator.CrownTypeOffset to) => to.crownType == alienComp.crownType)?.offset ?? Vector2.zero;
Vector2 crownOffset = (portrait ? offset?.portraitCrownTypes ?? offset?.crownTypes : offset?.crownTypes)?.FirstOrDefault(predicate: to => to.crownType == alienComp.crownType)
?.offset ?? Vector2.zero;
//Defaults for tails //Defaults for tails
//south 0.42f, -0.3f, -0.22f //south 0.42f, -0.3f, -0.22f