From a3f53f79fed3ef13485cf453a21680c57f4eb28e Mon Sep 17 00:00:00 2001 From: c0ffee Date: Mon, 6 Feb 2023 23:31:02 -0800 Subject: [PATCH] tweaks --- 1.4/Assemblies/Rimworld-Animations.dll | Bin 58368 -> 58368 bytes 1.4/Source/Comps/CompBodyAnimator.cs | 72 ++++++++++++++--------- 1.4/Source/Utilities/AnimationUtility.cs | 16 ++++- 3 files changed, 56 insertions(+), 32 deletions(-) diff --git a/1.4/Assemblies/Rimworld-Animations.dll b/1.4/Assemblies/Rimworld-Animations.dll index 6aacdcf5623a62cd6fdd5aa1d5189aaa7caba5c1..1ea76d6eabc72b9f06a0ca651cad4eb243f4eec4 100644 GIT binary patch literal 58368 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 literal 58368 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 diff --git a/1.4/Source/Comps/CompBodyAnimator.cs b/1.4/Source/Comps/CompBodyAnimator.cs index 5d355a6..5ff09c2 100644 --- a/1.4/Source/Comps/CompBodyAnimator.cs +++ b/1.4/Source/Comps/CompBodyAnimator.cs @@ -17,7 +17,7 @@ namespace Rimworld_Animations { public PawnGraphicSet Graphics; //public CompProperties_BodyAnimator Props => (CompProperties_BodyAnimator)(object)base.props; - + string bodyTypeDef; public bool isAnimating { get { return Animating; @@ -114,6 +114,8 @@ namespace Rimworld_Animations { } public void StartAnimation(AnimationDef anim, List actors, int actor, bool mirror = false, bool shiver = false, bool fastAnimForQuickie = false) { + bodyTypeDef = (pawn.story?.bodyType != null) ? pawn.story.bodyType.ToString() : ""; + actorsInCurrentAnimation = actors; if (anim.actors.Count <= actor) @@ -352,46 +354,60 @@ namespace Rimworld_Animations { public void calculateDrawValues() { - /*if(Find.TickManager.TickRateMultiplier > 1 && (lastDrawFrame + 1 >= RealTime.frameCount || RealTime.deltaTime < 0.05f)) { - return; - }*/ + + deltaPos.y = clip.layer.AltitudeFor(); - deltaPos = new Vector3(clip.BodyOffsetX.Evaluate(clipPercent) * (mirror ? -1 : 1), clip.layer.AltitudeFor(), clip.BodyOffsetZ.Evaluate(clipPercent)); - - string bodyTypeDef = (pawn.story?.bodyType != null) ? pawn.story.bodyType.ToString() : ""; - - if (AnimationSettings.offsets != null && AnimationSettings.offsets.ContainsKey(CurrentAnimation.defName + pawn.def.defName + bodyTypeDef + ActorIndex)) { - deltaPos.x += AnimationSettings.offsets[CurrentAnimation.defName + pawn.def.defName + bodyTypeDef + ActorIndex].x * (mirror ? -1 : 1); - deltaPos.z += AnimationSettings.offsets[CurrentAnimation.defName + pawn.def.defName + bodyTypeDef + ActorIndex].y; + bool adjustOffsetX = false, adjustOffsetZ = false, adjustBodyAngle = false, adjustHeadAngle = false, adjustGenitalAngle = false; + if(clip.BodyOffsetX.Any()) + { + deltaPos.x = clip.BodyOffsetX.Evaluate(clipPercent) * (mirror ? -1 : 1); + adjustOffsetX = true; + } + if(clip.BodyOffsetZ.Any()) + { + deltaPos.z = clip.BodyOffsetZ.Evaluate(clipPercent); + adjustOffsetZ = true; } - bodyAngle = (clip.BodyAngle.Evaluate(clipPercent) + (quiver || shiver ? ((Rand.Value * AnimationSettings.shiverIntensity) - (AnimationSettings.shiverIntensity / 2f)) : 0f)) * (mirror ? -1 : 1); - headAngle = clip.HeadAngle.Evaluate(clipPercent) * (mirror ? -1 : 1); + if (AnimationSettings.offsets != null && AnimationSettings.offsets.ContainsKey(CurrentAnimation.defName + pawn.def.defName + bodyTypeDef + ActorIndex)) { + if(adjustOffsetX) + deltaPos.x += AnimationSettings.offsets[CurrentAnimation.defName + pawn.def.defName + bodyTypeDef + ActorIndex].x * (mirror ? -1 : 1); - if (controlGenitalAngle) { + if(adjustOffsetZ) + deltaPos.z += AnimationSettings.offsets[CurrentAnimation.defName + pawn.def.defName + bodyTypeDef + ActorIndex].y; + } + + if(clip.BodyAngle.Any()) + { + adjustBodyAngle = true; + bodyAngle = (clip.BodyAngle.Evaluate(clipPercent) + (quiver || shiver ? ((Rand.Value * AnimationSettings.shiverIntensity) - (AnimationSettings.shiverIntensity / 2f)) : 0f)) * (mirror ? -1 : 1); + } + if(clip.HeadAngle.Any()) + { + adjustHeadAngle = true; + headAngle = clip.HeadAngle.Evaluate(clipPercent) * (mirror ? -1 : 1); + } + + + if (controlGenitalAngle && clip.GenitalAngle.Any()) { + + adjustGenitalAngle = true; genitalAngle = clip.GenitalAngle.Evaluate(clipPercent) * (mirror ? -1 : 1); } if (AnimationSettings.rotation != null && AnimationSettings.rotation.ContainsKey(CurrentAnimation.defName + pawn.def.defName + bodyTypeDef + ActorIndex)) { float offsetRotation = AnimationSettings.rotation[CurrentAnimation.defName + pawn.def.defName + bodyTypeDef + ActorIndex] * (Mirror ? -1 : 1); - genitalAngle += offsetRotation; - bodyAngle += offsetRotation; - headAngle += offsetRotation; + if (adjustGenitalAngle) genitalAngle += offsetRotation; + if (adjustBodyAngle) bodyAngle += offsetRotation; + if (adjustHeadAngle) headAngle += offsetRotation; } //don't go past 360 or less than 0 - - if (bodyAngle < 0) bodyAngle = 360 - ((-1f*bodyAngle) % 360); - if (bodyAngle > 360) bodyAngle %= 360; - - - if (headAngle < 0) headAngle = 360 - ((-1f * headAngle) % 360); - if (headAngle > 360) headAngle %= 360; - - if (genitalAngle < 0) genitalAngle = 360 - ((-1f * genitalAngle) % 360); - if (genitalAngle > 360) genitalAngle %= 360; + AnimationUtility.Clamp0to360(ref bodyAngle); + AnimationUtility.Clamp0to360(ref headAngle); + AnimationUtility.Clamp0to360(ref genitalAngle); bodyFacing = mirror ? new Rot4((int)clip.BodyFacing.Evaluate(clipPercent)).Opposite : new Rot4((int)clip.BodyFacing.Evaluate(clipPercent)); @@ -409,8 +425,6 @@ namespace Rimworld_Animations { Vector2 bodyScale = (pawn.story?.bodyType?.bodyGraphicScale != null ? pawn.story.bodyType.bodyGraphicScale : Vector2.one); headBob.z *= bodyScale.x; - lastDrawFrame = RealTime.frameCount; - } public Vector3 getPawnHeadPosition() { diff --git a/1.4/Source/Utilities/AnimationUtility.cs b/1.4/Source/Utilities/AnimationUtility.cs index 1ae89be..9297887 100644 --- a/1.4/Source/Utilities/AnimationUtility.cs +++ b/1.4/Source/Utilities/AnimationUtility.cs @@ -23,9 +23,11 @@ namespace Rimworld_Animations { InteractionWithExtension interaction = InteractionHelper.GetWithExtension(sexProps.dictionaryKey); participants = - participants.OrderBy(p => - p.jobs.curDriver is rjw.JobDriver_Sex - && !(p.jobs.curDriver as rjw.JobDriver_Sex).Sexprops.isReceiver) + participants.OrderBy(p => + p.jobs.curDriver is rjw.JobDriver_Sex && + ((p.jobs.curDriver as rjw.JobDriver_Sex).Sexprops.dictionaryKey.defName.ToLower().Contains("reverse") ? + (p.jobs.curDriver as rjw.JobDriver_Sex).Sexprops.isReceiver : + !(p.jobs.curDriver as rjw.JobDriver_Sex).Sexprops.isReceiver)) .OrderBy(p => rjw.xxx.can_fuck(p)) .ToList(); @@ -322,5 +324,13 @@ namespace Rimworld_Animations { return regularPos; } + + public static void Clamp0to360(ref float angle) + { + + if (angle < 0) angle = 360 - ((-1f * angle) % 360); + if (angle > 360) angle %= 360; + + } } }