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_Arctic</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>
 | 
			
		||||
        <isFucking>true</isFucking>
 | 
			
		||||
        <initiator>true</initiator>
 | 
			
		||||
| 
						 | 
				
			
			@ -899,6 +912,7 @@
 | 
			
		|||
            <layer>LayingPawn</layer>
 | 
			
		||||
            <keyframes>
 | 
			
		||||
              <li>
 | 
			
		||||
                <quiver>true</quiver>
 | 
			
		||||
                <tickDuration>60</tickDuration>
 | 
			
		||||
                <bodyAngle>53.7</bodyAngle>
 | 
			
		||||
                <headAngle>25.4</headAngle>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -130,7 +130,6 @@
 | 
			
		|||
          </li>
 | 
			
		||||
        </animationClips>
 | 
			
		||||
      </li>
 | 
			
		||||
 | 
			
		||||
      <li>
 | 
			
		||||
        <stageName>TribadismFast</stageName>
 | 
			
		||||
        <isLooping>true</isLooping>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -379,6 +379,7 @@
 | 
			
		|||
                <headBob>0</headBob>
 | 
			
		||||
              </li>
 | 
			
		||||
              <li>
 | 
			
		||||
                <quiver>true</quiver>
 | 
			
		||||
                <tickDuration>120</tickDuration>
 | 
			
		||||
                <bodyAngle>60.7</bodyAngle>
 | 
			
		||||
                <headAngle>5.6</headAngle>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -382,6 +382,7 @@
 | 
			
		|||
                <headAngle>-1</headAngle>
 | 
			
		||||
                <bodyFacing>1</bodyFacing>
 | 
			
		||||
                <headFacing>1</headFacing>
 | 
			
		||||
                <quiver>true</quiver>
 | 
			
		||||
              </li>
 | 
			
		||||
              <li>
 | 
			
		||||
                <tickDuration>12</tickDuration>
 | 
			
		||||
| 
						 | 
				
			
			@ -758,6 +759,7 @@
 | 
			
		|||
                <headBob>-0.008</headBob>
 | 
			
		||||
              </li>
 | 
			
		||||
              <li>
 | 
			
		||||
                <quiver>true</quiver>
 | 
			
		||||
                <tickDuration>60</tickDuration>
 | 
			
		||||
                <bodyAngle>0</bodyAngle>
 | 
			
		||||
                <bodyOffsetX>0</bodyOffsetX>
 | 
			
		||||
| 
						 | 
				
			
			@ -1776,6 +1778,7 @@
 | 
			
		|||
                <headBob>0</headBob>
 | 
			
		||||
              </li>
 | 
			
		||||
              <li>
 | 
			
		||||
                <quiver>true</quiver>
 | 
			
		||||
                <tickDuration>75</tickDuration>
 | 
			
		||||
                <bodyAngle>6.04</bodyAngle>
 | 
			
		||||
                <headAngle>15</headAngle>
 | 
			
		||||
| 
						 | 
				
			
			@ -2367,6 +2370,7 @@
 | 
			
		|||
                <headBob>-0.03</headBob>
 | 
			
		||||
              </li>
 | 
			
		||||
              <li>
 | 
			
		||||
                <quiver>true</quiver>
 | 
			
		||||
                <tickDuration>45</tickDuration>
 | 
			
		||||
                <soundEffect>Cum</soundEffect>
 | 
			
		||||
                <bodyAngle>0</bodyAngle>
 | 
			
		||||
| 
						 | 
				
			
			@ -2378,6 +2382,7 @@
 | 
			
		|||
                <headBob>0</headBob>
 | 
			
		||||
              </li>
 | 
			
		||||
              <li>
 | 
			
		||||
                <quiver>true</quiver>
 | 
			
		||||
                <tickDuration>40</tickDuration>
 | 
			
		||||
                <bodyAngle>0</bodyAngle>
 | 
			
		||||
                <headAngle>0</headAngle>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -96,6 +96,7 @@
 | 
			
		|||
    <Compile Include="Source\Patches\rjwPatches\HarmonyPatch_JoinInBedGiveJob.cs" />
 | 
			
		||||
    <Compile Include="Source\Patches\rjwPatches\HarmonyPatch_SexTick.cs" />
 | 
			
		||||
    <Compile Include="Source\Patches\rjwPatches\HarmonyPatch_WorkGiverSex.cs" />
 | 
			
		||||
    <Compile Include="Source\Settings\Animation_Settings.cs" />
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
  <ItemGroup />
 | 
			
		||||
  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -68,7 +68,7 @@ namespace Rimworld_Animations {
 | 
			
		|||
 | 
			
		||||
                    //TESTING ANIMATIONS ONLY REMEMBER TO COMMENT OUT BEFORE PUSH
 | 
			
		||||
                    /*
 | 
			
		||||
                    if (x.defName != "Cowgirl")
 | 
			
		||||
                    if (x.defName != "Doggystyle")
 | 
			
		||||
                        return false;
 | 
			
		||||
                        */
 | 
			
		||||
                    
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -13,6 +13,7 @@ namespace Rimworld_Animations {
 | 
			
		|||
        public AltitudeLayer layer = AltitudeLayer.Pawn;
 | 
			
		||||
 | 
			
		||||
        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 HeadAngle = new SimpleCurve();
 | 
			
		||||
        public SimpleCurve HeadBob = new SimpleCurve();
 | 
			
		||||
| 
						 | 
				
			
			@ -89,6 +90,11 @@ namespace Rimworld_Animations {
 | 
			
		|||
                        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;
 | 
			
		||||
 | 
			
		||||
                }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -21,6 +21,7 @@ namespace Rimworld_Animations {
 | 
			
		|||
        public int? headFacing;
 | 
			
		||||
 | 
			
		||||
        public string soundEffect;
 | 
			
		||||
        public bool? quiver;
 | 
			
		||||
 | 
			
		||||
        public float? atTick;
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -35,7 +35,7 @@ namespace Rimworld_Animations {
 | 
			
		|||
            }
 | 
			
		||||
        }
 | 
			
		||||
        private bool Animating;
 | 
			
		||||
        private bool mirror = false;
 | 
			
		||||
        private bool mirror = false, quiver = false;
 | 
			
		||||
        private int actor;
 | 
			
		||||
 | 
			
		||||
        private int animTicks = 0, stageTicks = 0, clipTicks = 0;
 | 
			
		||||
| 
						 | 
				
			
			@ -114,6 +114,8 @@ namespace Rimworld_Animations {
 | 
			
		|||
            stageTicks = 0;
 | 
			
		||||
            clipTicks = 0;
 | 
			
		||||
 | 
			
		||||
            quiver = false;
 | 
			
		||||
 | 
			
		||||
            //tick once for initialization
 | 
			
		||||
            tickAnim();
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -184,6 +186,9 @@ namespace Rimworld_Animations {
 | 
			
		|||
            if(rjw.RJWSettings.sounds_enabled && clip.SoundEffects.ContainsKey(clipTicks)) {
 | 
			
		||||
                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
 | 
			
		||||
            if (clipPercent >= 1 && stage.isLooping) {
 | 
			
		||||
| 
						 | 
				
			
			@ -197,7 +202,7 @@ namespace Rimworld_Animations {
 | 
			
		|||
        public void calculateDrawValues() {
 | 
			
		||||
 | 
			
		||||
            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);
 | 
			
		||||
            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, "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…
	
	Add table
		Add a link
		
	
		Reference in a new issue