From 6bc3ab7bcb1b00015998b3b399e30f48af05fcb6 Mon Sep 17 00:00:00 2001 From: c0ffee Date: Wed, 8 Feb 2023 22:34:34 -0800 Subject: [PATCH] further tweaks to fix simplecurve bug --- 1.4/Assemblies/Rimworld-Animations.dll | Bin 58368 -> 58368 bytes 1.4/Source/Comps/CompBodyAnimator.cs | 64 ++++++++++++++----------- 2 files changed, 37 insertions(+), 27 deletions(-) diff --git a/1.4/Assemblies/Rimworld-Animations.dll b/1.4/Assemblies/Rimworld-Animations.dll index 1ea76d6eabc72b9f06a0ca651cad4eb243f4eec4..aab79e71ce97664785e89dd31ac79bf093bcbd16 100644 GIT binary patch delta 17213 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 delta 17533 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 diff --git a/1.4/Source/Comps/CompBodyAnimator.cs b/1.4/Source/Comps/CompBodyAnimator.cs index 5ff09c2..fd1f95b 100644 --- a/1.4/Source/Comps/CompBodyAnimator.cs +++ b/1.4/Source/Comps/CompBodyAnimator.cs @@ -39,8 +39,6 @@ namespace Rimworld_Animations { private bool mirror = false, quiver = false, shiver = false; private int actor; - private int lastDrawFrame = -1; - private int animTicks = 0, stageTicks = 0, clipTicks = 0; private int curStage = 0; private float clipPercent = 0; @@ -357,7 +355,7 @@ namespace Rimworld_Animations { deltaPos.y = clip.layer.AltitudeFor(); - bool adjustOffsetX = false, adjustOffsetZ = false, adjustBodyAngle = false, adjustHeadAngle = false, adjustGenitalAngle = false; + bool adjustOffsetX = false, adjustOffsetZ = false; if(clip.BodyOffsetX.Any()) { deltaPos.x = clip.BodyOffsetX.Evaluate(clipPercent) * (mirror ? -1 : 1); @@ -378,30 +376,31 @@ namespace Rimworld_Animations { deltaPos.z += AnimationSettings.offsets[CurrentAnimation.defName + pawn.def.defName + bodyTypeDef + ActorIndex].y; } - if(clip.BodyAngle.Any()) + float offsetRotation = 0f; + if (AnimationSettings.rotation != null && AnimationSettings.rotation.ContainsKey(CurrentAnimation.defName + pawn.def.defName + bodyTypeDef + ActorIndex)) + { + offsetRotation = AnimationSettings.rotation[CurrentAnimation.defName + pawn.def.defName + bodyTypeDef + ActorIndex] * (Mirror ? -1 : 1); + } + + if (clip.BodyAngle.Any()) { - adjustBodyAngle = true; bodyAngle = (clip.BodyAngle.Evaluate(clipPercent) + (quiver || shiver ? ((Rand.Value * AnimationSettings.shiverIntensity) - (AnimationSettings.shiverIntensity / 2f)) : 0f)) * (mirror ? -1 : 1); + bodyAngle += offsetRotation; } if(clip.HeadAngle.Any()) { - adjustHeadAngle = true; headAngle = clip.HeadAngle.Evaluate(clipPercent) * (mirror ? -1 : 1); + headAngle += offsetRotation; } - if (controlGenitalAngle && clip.GenitalAngle.Any()) { - - adjustGenitalAngle = true; + if (controlGenitalAngle && clip.GenitalAngle.Any()) + { genitalAngle = clip.GenitalAngle.Evaluate(clipPercent) * (mirror ? -1 : 1); + genitalAngle += offsetRotation; } - 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); - if (adjustGenitalAngle) genitalAngle += offsetRotation; - if (adjustBodyAngle) bodyAngle += offsetRotation; - if (adjustHeadAngle) headAngle += offsetRotation; - } + //don't go past 360 or less than 0 @@ -409,21 +408,32 @@ namespace Rimworld_Animations { 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)); - - bodyFacing = new Rot4((int)clip.BodyFacing.Evaluate(clipPercent)); - if(bodyFacing.IsHorizontal && mirror) { - bodyFacing = bodyFacing.Opposite; + if(clip.BodyFacing.Any()) + { + bodyFacing = new Rot4((int)clip.BodyFacing.Evaluate(clipPercent)); + if (bodyFacing.IsHorizontal && mirror) + { + bodyFacing = bodyFacing.Opposite; + } } - headFacing = new Rot4((int)clip.HeadFacing.Evaluate(clipPercent)); - if(headFacing.IsHorizontal && mirror) { - headFacing = headFacing.Opposite; + + if(clip.HeadFacing.Any()) + { + headFacing = new Rot4((int)clip.HeadFacing.Evaluate(clipPercent)); + if (headFacing.IsHorizontal && mirror) + { + headFacing = headFacing.Opposite; + } } - headBob = new Vector3(0, 0, clip.HeadBob.Evaluate(clipPercent)); - Vector2 bodyScale = (pawn.story?.bodyType?.bodyGraphicScale != null ? pawn.story.bodyType.bodyGraphicScale : Vector2.one); - headBob.z *= bodyScale.x; + if(clip.HeadBob.Any()) + { + headBob = new Vector3(0, 0, clip.HeadBob.Evaluate(clipPercent)); + Vector2 bodyScale = (pawn.story?.bodyType?.bodyGraphicScale != null ? pawn.story.bodyType.bodyGraphicScale : Vector2.one); + headBob.z *= bodyScale.x; + } + + }