mirror of
https://gitgud.io/c0ffeeeeeeee/rimworld-animations.git
synced 2024-08-15 00:43:45 +00:00
Experimental quivering on orgasm
This commit is contained in:
parent
0a5b504d29
commit
9d70c2cb59
11 changed files with 78 additions and 4 deletions
Binary file not shown.
|
@ -20,6 +20,19 @@
|
||||||
<li>Wolf_Timber</li>
|
<li>Wolf_Timber</li>
|
||||||
<li>Wolf_Arctic</li>
|
<li>Wolf_Arctic</li>
|
||||||
<li>Whitefox</li>
|
<li>Whitefox</li>
|
||||||
|
|
||||||
|
<!--Animals Expanded-->
|
||||||
|
<li>AEXP_WelshTerrier</li>
|
||||||
|
<li>AEXP_Rottweiler</li>
|
||||||
|
<li>AEXP_Poodle</li>
|
||||||
|
<li>AEXP_GreatDane</li>
|
||||||
|
<li>AEXP_GermanShepherd</li>
|
||||||
|
<li>AEXP_FrenchBulldog</li>
|
||||||
|
<li>AEXP_Corgi</li>
|
||||||
|
<li>AEXP_CatAbyssinian</li>
|
||||||
|
<li>AEXP_CatBengal</li>
|
||||||
|
<li>AEXP_CatMaineCoon</li>
|
||||||
|
<li>AEXP_CatSphynx</li>
|
||||||
</defNames>
|
</defNames>
|
||||||
<isFucking>true</isFucking>
|
<isFucking>true</isFucking>
|
||||||
<initiator>true</initiator>
|
<initiator>true</initiator>
|
||||||
|
@ -899,6 +912,7 @@
|
||||||
<layer>LayingPawn</layer>
|
<layer>LayingPawn</layer>
|
||||||
<keyframes>
|
<keyframes>
|
||||||
<li>
|
<li>
|
||||||
|
<quiver>true</quiver>
|
||||||
<tickDuration>60</tickDuration>
|
<tickDuration>60</tickDuration>
|
||||||
<bodyAngle>53.7</bodyAngle>
|
<bodyAngle>53.7</bodyAngle>
|
||||||
<headAngle>25.4</headAngle>
|
<headAngle>25.4</headAngle>
|
||||||
|
|
|
@ -130,7 +130,6 @@
|
||||||
</li>
|
</li>
|
||||||
</animationClips>
|
</animationClips>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li>
|
<li>
|
||||||
<stageName>TribadismFast</stageName>
|
<stageName>TribadismFast</stageName>
|
||||||
<isLooping>true</isLooping>
|
<isLooping>true</isLooping>
|
||||||
|
|
|
@ -379,6 +379,7 @@
|
||||||
<headBob>0</headBob>
|
<headBob>0</headBob>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
|
<quiver>true</quiver>
|
||||||
<tickDuration>120</tickDuration>
|
<tickDuration>120</tickDuration>
|
||||||
<bodyAngle>60.7</bodyAngle>
|
<bodyAngle>60.7</bodyAngle>
|
||||||
<headAngle>5.6</headAngle>
|
<headAngle>5.6</headAngle>
|
||||||
|
|
|
@ -382,6 +382,7 @@
|
||||||
<headAngle>-1</headAngle>
|
<headAngle>-1</headAngle>
|
||||||
<bodyFacing>1</bodyFacing>
|
<bodyFacing>1</bodyFacing>
|
||||||
<headFacing>1</headFacing>
|
<headFacing>1</headFacing>
|
||||||
|
<quiver>true</quiver>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<tickDuration>12</tickDuration>
|
<tickDuration>12</tickDuration>
|
||||||
|
@ -758,6 +759,7 @@
|
||||||
<headBob>-0.008</headBob>
|
<headBob>-0.008</headBob>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
|
<quiver>true</quiver>
|
||||||
<tickDuration>60</tickDuration>
|
<tickDuration>60</tickDuration>
|
||||||
<bodyAngle>0</bodyAngle>
|
<bodyAngle>0</bodyAngle>
|
||||||
<bodyOffsetX>0</bodyOffsetX>
|
<bodyOffsetX>0</bodyOffsetX>
|
||||||
|
@ -1776,6 +1778,7 @@
|
||||||
<headBob>0</headBob>
|
<headBob>0</headBob>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
|
<quiver>true</quiver>
|
||||||
<tickDuration>75</tickDuration>
|
<tickDuration>75</tickDuration>
|
||||||
<bodyAngle>6.04</bodyAngle>
|
<bodyAngle>6.04</bodyAngle>
|
||||||
<headAngle>15</headAngle>
|
<headAngle>15</headAngle>
|
||||||
|
@ -2367,6 +2370,7 @@
|
||||||
<headBob>-0.03</headBob>
|
<headBob>-0.03</headBob>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
|
<quiver>true</quiver>
|
||||||
<tickDuration>45</tickDuration>
|
<tickDuration>45</tickDuration>
|
||||||
<soundEffect>Cum</soundEffect>
|
<soundEffect>Cum</soundEffect>
|
||||||
<bodyAngle>0</bodyAngle>
|
<bodyAngle>0</bodyAngle>
|
||||||
|
@ -2378,6 +2382,7 @@
|
||||||
<headBob>0</headBob>
|
<headBob>0</headBob>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
|
<quiver>true</quiver>
|
||||||
<tickDuration>40</tickDuration>
|
<tickDuration>40</tickDuration>
|
||||||
<bodyAngle>0</bodyAngle>
|
<bodyAngle>0</bodyAngle>
|
||||||
<headAngle>0</headAngle>
|
<headAngle>0</headAngle>
|
||||||
|
|
|
@ -96,6 +96,7 @@
|
||||||
<Compile Include="Source\Patches\rjwPatches\HarmonyPatch_JoinInBedGiveJob.cs" />
|
<Compile Include="Source\Patches\rjwPatches\HarmonyPatch_JoinInBedGiveJob.cs" />
|
||||||
<Compile Include="Source\Patches\rjwPatches\HarmonyPatch_SexTick.cs" />
|
<Compile Include="Source\Patches\rjwPatches\HarmonyPatch_SexTick.cs" />
|
||||||
<Compile Include="Source\Patches\rjwPatches\HarmonyPatch_WorkGiverSex.cs" />
|
<Compile Include="Source\Patches\rjwPatches\HarmonyPatch_WorkGiverSex.cs" />
|
||||||
|
<Compile Include="Source\Settings\Animation_Settings.cs" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup />
|
<ItemGroup />
|
||||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
|
|
|
@ -68,7 +68,7 @@ namespace Rimworld_Animations {
|
||||||
|
|
||||||
//TESTING ANIMATIONS ONLY REMEMBER TO COMMENT OUT BEFORE PUSH
|
//TESTING ANIMATIONS ONLY REMEMBER TO COMMENT OUT BEFORE PUSH
|
||||||
/*
|
/*
|
||||||
if (x.defName != "Cowgirl")
|
if (x.defName != "Doggystyle")
|
||||||
return false;
|
return false;
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
|
@ -13,6 +13,7 @@ namespace Rimworld_Animations {
|
||||||
public AltitudeLayer layer = AltitudeLayer.Pawn;
|
public AltitudeLayer layer = AltitudeLayer.Pawn;
|
||||||
|
|
||||||
public Dictionary<int, string> SoundEffects = new Dictionary<int, string>();
|
public Dictionary<int, string> SoundEffects = new Dictionary<int, string>();
|
||||||
|
public Dictionary<int, bool> quiver = new Dictionary<int, bool>();
|
||||||
public SimpleCurve BodyAngle = new SimpleCurve();
|
public SimpleCurve BodyAngle = new SimpleCurve();
|
||||||
public SimpleCurve HeadAngle = new SimpleCurve();
|
public SimpleCurve HeadAngle = new SimpleCurve();
|
||||||
public SimpleCurve HeadBob = new SimpleCurve();
|
public SimpleCurve HeadBob = new SimpleCurve();
|
||||||
|
@ -89,6 +90,11 @@ namespace Rimworld_Animations {
|
||||||
SoundEffects.Add(keyframePosition, frame.soundEffect);
|
SoundEffects.Add(keyframePosition, frame.soundEffect);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(frame.tickDuration != 1 && frame.quiver.HasValue) {
|
||||||
|
|
||||||
|
quiver.Add(keyframePosition, true);
|
||||||
|
quiver.Add(keyframePosition + frame.tickDuration - 1, false);
|
||||||
|
}
|
||||||
keyframePosition += frame.tickDuration;
|
keyframePosition += frame.tickDuration;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,6 +21,7 @@ namespace Rimworld_Animations {
|
||||||
public int? headFacing;
|
public int? headFacing;
|
||||||
|
|
||||||
public string soundEffect;
|
public string soundEffect;
|
||||||
|
public bool? quiver;
|
||||||
|
|
||||||
public float? atTick;
|
public float? atTick;
|
||||||
}
|
}
|
||||||
|
|
|
@ -35,7 +35,7 @@ namespace Rimworld_Animations {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
private bool Animating;
|
private bool Animating;
|
||||||
private bool mirror = false;
|
private bool mirror = false, quiver = false;
|
||||||
private int actor;
|
private int actor;
|
||||||
|
|
||||||
private int animTicks = 0, stageTicks = 0, clipTicks = 0;
|
private int animTicks = 0, stageTicks = 0, clipTicks = 0;
|
||||||
|
@ -114,6 +114,8 @@ namespace Rimworld_Animations {
|
||||||
stageTicks = 0;
|
stageTicks = 0;
|
||||||
clipTicks = 0;
|
clipTicks = 0;
|
||||||
|
|
||||||
|
quiver = false;
|
||||||
|
|
||||||
//tick once for initialization
|
//tick once for initialization
|
||||||
tickAnim();
|
tickAnim();
|
||||||
|
|
||||||
|
@ -184,6 +186,9 @@ namespace Rimworld_Animations {
|
||||||
if(rjw.RJWSettings.sounds_enabled && clip.SoundEffects.ContainsKey(clipTicks)) {
|
if(rjw.RJWSettings.sounds_enabled && clip.SoundEffects.ContainsKey(clipTicks)) {
|
||||||
SoundDef.Named(clip.SoundEffects[clipTicks]).PlayOneShot(new TargetInfo(pawn.Position, pawn.Map));
|
SoundDef.Named(clip.SoundEffects[clipTicks]).PlayOneShot(new TargetInfo(pawn.Position, pawn.Map));
|
||||||
}
|
}
|
||||||
|
if(AnimationSettings.orgasmQuiver && clip.quiver.ContainsKey(clipTicks)) {
|
||||||
|
quiver = clip.quiver[clipTicks];
|
||||||
|
}
|
||||||
|
|
||||||
//loop animation if possible
|
//loop animation if possible
|
||||||
if (clipPercent >= 1 && stage.isLooping) {
|
if (clipPercent >= 1 && stage.isLooping) {
|
||||||
|
@ -197,7 +202,7 @@ namespace Rimworld_Animations {
|
||||||
public void calculateDrawValues() {
|
public void calculateDrawValues() {
|
||||||
|
|
||||||
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));
|
||||||
bodyAngle = clip.BodyAngle.Evaluate(clipPercent) * (mirror ? -1 : 1);
|
bodyAngle = (clip.BodyAngle.Evaluate(clipPercent) + (quiver ? (Rand.Value * 2f) - 1f : 0f)) * (mirror ? -1 : 1);
|
||||||
headAngle = clip.HeadAngle.Evaluate(clipPercent) * (mirror ? -1 : 1);
|
headAngle = clip.HeadAngle.Evaluate(clipPercent) * (mirror ? -1 : 1);
|
||||||
bodyFacing = mirror ? new Rot4((int)clip.BodyFacing.Evaluate(clipPercent)).Opposite : new Rot4((int)clip.BodyFacing.Evaluate(clipPercent));
|
bodyFacing = mirror ? new Rot4((int)clip.BodyFacing.Evaluate(clipPercent)).Opposite : new Rot4((int)clip.BodyFacing.Evaluate(clipPercent));
|
||||||
|
|
||||||
|
@ -243,6 +248,8 @@ namespace Rimworld_Animations {
|
||||||
|
|
||||||
Scribe_Values.Look(ref headFacing, "headFacing");
|
Scribe_Values.Look(ref headFacing, "headFacing");
|
||||||
Scribe_Values.Look(ref headFacing, "bodyFacing");
|
Scribe_Values.Look(ref headFacing, "bodyFacing");
|
||||||
|
|
||||||
|
Scribe_Values.Look(ref quiver, "orgasmQuiver");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
40
Source/Settings/Animation_Settings.cs
Normal file
40
Source/Settings/Animation_Settings.cs
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Verse;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace Rimworld_Animations {
|
||||||
|
public class AnimationSettings : ModSettings {
|
||||||
|
|
||||||
|
public static bool orgasmQuiver;
|
||||||
|
|
||||||
|
public override void ExposeData() {
|
||||||
|
Scribe_Values.Look(ref orgasmQuiver, "orgasmQuiver");
|
||||||
|
base.ExposeData();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public class RJW_Animations : Mod {
|
||||||
|
|
||||||
|
public RJW_Animations(ModContentPack content) : base(content) {
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void DoSettingsWindowContents(Rect inRect) {
|
||||||
|
|
||||||
|
Listing_Standard listingStandard = new Listing_Standard();
|
||||||
|
listingStandard.Begin(inRect);
|
||||||
|
|
||||||
|
listingStandard.CheckboxLabeled("Enable Orgasm Quiver", ref AnimationSettings.orgasmQuiver);
|
||||||
|
listingStandard.End();
|
||||||
|
base.DoSettingsWindowContents(inRect);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override string SettingsCategory() {
|
||||||
|
return "RJW Animation Settings";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue