mirror of
https://gitgud.io/c0ffeeeeeeee/rimworld-animations.git
synced 2024-08-15 00:43:45 +00:00
play fast anim for quickie -- enable in options
This commit is contained in:
parent
1509e9fff6
commit
d3db12f744
4 changed files with 18 additions and 12 deletions
Binary file not shown.
|
@ -94,7 +94,7 @@ namespace Rimworld_Animations {
|
||||||
anchor = thing.Position.ToVector3Shifted();
|
anchor = thing.Position.ToVector3Shifted();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public void StartAnimation(AnimationDef anim, int actor, bool mirror = false, bool shiver = false) {
|
public void StartAnimation(AnimationDef anim, int actor, bool mirror = false, bool shiver = false, bool fastAnimForQuickie = false) {
|
||||||
|
|
||||||
isAnimating = true;
|
isAnimating = true;
|
||||||
|
|
||||||
|
@ -111,7 +111,7 @@ namespace Rimworld_Animations {
|
||||||
this.anim = anim;
|
this.anim = anim;
|
||||||
this.mirror = mirror;
|
this.mirror = mirror;
|
||||||
|
|
||||||
curStage = 0;
|
curStage = fastAnimForQuickie ? 1 : 0;
|
||||||
animTicks = 0;
|
animTicks = 0;
|
||||||
stageTicks = 0;
|
stageTicks = 0;
|
||||||
clipTicks = 0;
|
clipTicks = 0;
|
||||||
|
@ -180,11 +180,15 @@ namespace Rimworld_Animations {
|
||||||
clipPercent = 0;
|
clipPercent = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(curStage >= anim.animationStages.Count && animTicks < anim.animationTimeTicks && pawn.jobs.curDriver is JobDriver_SexBaseInitiator) {
|
if(curStage >= anim.animationStages.Count) {
|
||||||
|
isAnimating = false;
|
||||||
pawn.jobs.curDriver.ReadyForNextToil();
|
pawn.jobs.curDriver.ReadyForNextToil();
|
||||||
|
|
||||||
|
} else {
|
||||||
|
tickClip();
|
||||||
}
|
}
|
||||||
|
|
||||||
tickClip();
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -52,16 +52,18 @@ namespace Rimworld_Animations {
|
||||||
(Target.jobs.curDriver as JobDriver_SexBaseReciever).parteners.Add(pawn);
|
(Target.jobs.curDriver as JobDriver_SexBaseReciever).parteners.Add(pawn);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool quickie = (__instance is JobDriver_SexQuick) && AnimationSettings.fastAnimForQuickie;
|
||||||
|
|
||||||
if (bed != null) {
|
if (bed != null) {
|
||||||
RerollAnimations(Target, __instance.duration, bed as Thing, __instance.sexType);
|
RerollAnimations(Target, __instance.duration, bed as Thing, __instance.sexType, quickie);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
RerollAnimations(Target, __instance.duration, sexType: __instance.sexType);
|
RerollAnimations(Target, __instance.duration, sexType: __instance.sexType, fastAnimForQuickie: quickie);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void RerollAnimations(Pawn pawn, int duration, Thing bed = null, xxx.rjwSextype sexType = xxx.rjwSextype.None) {
|
public static void RerollAnimations(Pawn pawn, int duration, Thing bed = null, xxx.rjwSextype sexType = xxx.rjwSextype.None, bool fastAnimForQuickie = false) {
|
||||||
|
|
||||||
if(pawn == null || !(pawn.jobs?.curDriver is JobDriver_SexBaseReciever)) {
|
if(pawn == null || !(pawn.jobs?.curDriver is JobDriver_SexBaseReciever)) {
|
||||||
Log.Message("Error: Tried to reroll animations when pawn isn't sexing");
|
Log.Message("Error: Tried to reroll animations when pawn isn't sexing");
|
||||||
|
@ -82,8 +84,6 @@ namespace Rimworld_Animations {
|
||||||
|
|
||||||
Log.Message("Now playing " + anim.defName + (mirror ? " mirrored" : ""));
|
Log.Message("Now playing " + anim.defName + (mirror ? " mirrored" : ""));
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
IntVec3 pos = pawn.Position;
|
IntVec3 pos = pawn.Position;
|
||||||
|
|
||||||
for (int i = 0; i < pawnsToAnimate.Count; i++) {
|
for (int i = 0; i < pawnsToAnimate.Count; i++) {
|
||||||
|
@ -96,7 +96,7 @@ namespace Rimworld_Animations {
|
||||||
}
|
}
|
||||||
|
|
||||||
bool shiver = pawnsToAnimate[i].jobs.curDriver is JobDriver_SexBaseRecieverRaped;
|
bool shiver = pawnsToAnimate[i].jobs.curDriver is JobDriver_SexBaseRecieverRaped;
|
||||||
pawnsToAnimate[i].TryGetComp<CompBodyAnimator>().StartAnimation(anim, i, mirror, shiver);
|
pawnsToAnimate[i].TryGetComp<CompBodyAnimator>().StartAnimation(anim, i, mirror, shiver, fastAnimForQuickie);
|
||||||
(pawnsToAnimate[i].jobs.curDriver as JobDriver_Sex).ticks_left = anim.animationTimeTicks;
|
(pawnsToAnimate[i].jobs.curDriver as JobDriver_Sex).ticks_left = anim.animationTimeTicks;
|
||||||
(pawnsToAnimate[i].jobs.curDriver as JobDriver_Sex).ticksLeftThisToil = anim.animationTimeTicks;
|
(pawnsToAnimate[i].jobs.curDriver as JobDriver_Sex).ticksLeftThisToil = anim.animationTimeTicks;
|
||||||
(pawnsToAnimate[i].jobs.curDriver as JobDriver_Sex).duration = anim.animationTimeTicks;
|
(pawnsToAnimate[i].jobs.curDriver as JobDriver_Sex).duration = anim.animationTimeTicks;
|
||||||
|
@ -105,7 +105,7 @@ namespace Rimworld_Animations {
|
||||||
(pawnsToAnimate[i].jobs.curDriver as JobDriver_Sex).ticks_between_hearts = Int32.MaxValue;
|
(pawnsToAnimate[i].jobs.curDriver as JobDriver_Sex).ticks_between_hearts = Int32.MaxValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
Log.Message("Anim not found");
|
Log.Message("Anim not found");
|
||||||
|
|
|
@ -9,7 +9,7 @@ using UnityEngine;
|
||||||
namespace Rimworld_Animations {
|
namespace Rimworld_Animations {
|
||||||
public class AnimationSettings : ModSettings {
|
public class AnimationSettings : ModSettings {
|
||||||
|
|
||||||
public static bool orgasmQuiver, rapeShiver, soundOverride = true, hearts = true, controlGenitalRotation = false, applySemenOnAnimationOrgasm = false;
|
public static bool orgasmQuiver, rapeShiver, soundOverride = true, hearts = true, controlGenitalRotation = false, applySemenOnAnimationOrgasm = false, fastAnimForQuickie = false;
|
||||||
public static float shiverIntensity = 2f;
|
public static float shiverIntensity = 2f;
|
||||||
|
|
||||||
public override void ExposeData() {
|
public override void ExposeData() {
|
||||||
|
@ -18,6 +18,7 @@ namespace Rimworld_Animations {
|
||||||
|
|
||||||
Scribe_Values.Look(ref controlGenitalRotation, "controlGenitalRotation", false);
|
Scribe_Values.Look(ref controlGenitalRotation, "controlGenitalRotation", false);
|
||||||
Scribe_Values.Look(ref orgasmQuiver, "orgasmQuiver");
|
Scribe_Values.Look(ref orgasmQuiver, "orgasmQuiver");
|
||||||
|
Scribe_Values.Look(ref fastAnimForQuickie, "fastAnimForQuickie");
|
||||||
Scribe_Values.Look(ref rapeShiver, "rapeShiver");
|
Scribe_Values.Look(ref rapeShiver, "rapeShiver");
|
||||||
Scribe_Values.Look(ref hearts, "heartsOnLovin");
|
Scribe_Values.Look(ref hearts, "heartsOnLovin");
|
||||||
Scribe_Values.Look(ref applySemenOnAnimationOrgasm, "applySemenOnOrgasm", false);
|
Scribe_Values.Look(ref applySemenOnAnimationOrgasm, "applySemenOnOrgasm", false);
|
||||||
|
@ -42,6 +43,7 @@ namespace Rimworld_Animations {
|
||||||
|
|
||||||
listingStandard.CheckboxLabeled("Enable Sound Override", ref AnimationSettings.soundOverride);
|
listingStandard.CheckboxLabeled("Enable Sound Override", ref AnimationSettings.soundOverride);
|
||||||
listingStandard.CheckboxLabeled("Control Genital Rotation", ref AnimationSettings.controlGenitalRotation);
|
listingStandard.CheckboxLabeled("Control Genital Rotation", ref AnimationSettings.controlGenitalRotation);
|
||||||
|
listingStandard.CheckboxLabeled("Play Fast Animation for Quickie", ref AnimationSettings.fastAnimForQuickie);
|
||||||
listingStandard.CheckboxLabeled("Apply Semen on Animation Orgasm", ref AnimationSettings.applySemenOnAnimationOrgasm);
|
listingStandard.CheckboxLabeled("Apply Semen on Animation Orgasm", ref AnimationSettings.applySemenOnAnimationOrgasm);
|
||||||
|
|
||||||
if(AnimationSettings.applySemenOnAnimationOrgasm) {
|
if(AnimationSettings.applySemenOnAnimationOrgasm) {
|
||||||
|
|
Loading…
Reference in a new issue