From 7cbbe00c157385669cd79625ab28c249b3546573 Mon Sep 17 00:00:00 2001 From: c0ffee Date: Tue, 2 Jul 2024 15:17:42 -0700 Subject: [PATCH] tried tweaking finalizedmaterial facing, still has issues --- 1.5/Assemblies/Rimworld-Animations.dll | Bin 58368 -> 59392 bytes .../HarmonyPatch_GetFinalizedMaterial.cs | 58 ++++++++++++++++++ .../HarmonyPatch_PawnRenderTree.cs | 17 +---- .../AnimationPatch_HideHeadWhenAnimating.xml | 9 ++- Rimworld-Animations.csproj | 1 + 5 files changed, 67 insertions(+), 18 deletions(-) create mode 100644 1.5/Source/Patches/RimworldPatches/HarmonyPatch_GetFinalizedMaterial.cs diff --git a/1.5/Assemblies/Rimworld-Animations.dll b/1.5/Assemblies/Rimworld-Animations.dll index de49d996e338262c8d129d8b40ddc2caec35ebd8..d734010de588ff1e34ccec7e2bef17fdd84ca958 100644 GIT binary patch delta 16234 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 IEXy_g52-$K?f?J) delta 15618 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 diff --git a/1.5/Source/Patches/RimworldPatches/HarmonyPatch_GetFinalizedMaterial.cs b/1.5/Source/Patches/RimworldPatches/HarmonyPatch_GetFinalizedMaterial.cs new file mode 100644 index 0000000..5e71b87 --- /dev/null +++ b/1.5/Source/Patches/RimworldPatches/HarmonyPatch_GetFinalizedMaterial.cs @@ -0,0 +1,58 @@ +using HarmonyLib; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Verse; + +namespace Rimworld_Animations +{ + + [HarmonyPatch(typeof(PawnRenderNodeWorker), "GetFinalizedMaterial")] + public class HarmonyPatch_GetFinalizedMaterial + { + + public static void Prefix(PawnRenderNode node, ref PawnDrawParms parms) + { + //fixes issues with multigraphics rendernodes + PawnDrawParms_FacingHelper.ChangeFacingParmsToAncestorFacing(node, ref parms); + + } + + } + + + [HarmonyPatch(typeof(PawnRenderNodeWorker), "GetMaterialPropertyBlock")] + public class HarmonyPatch_GetMaterialPropertyBlock + { + public static void Prefix(PawnRenderNode node, ref PawnDrawParms parms) + { + //needed to return proper materialpropertyblock for different facing node + PawnDrawParms_FacingHelper.ChangeFacingParmsToAncestorFacing(node, ref parms); + + } + } + + + public static class PawnDrawParms_FacingHelper + { + + //helper class to change the facing of a node to a parent node if that parent node is animating + public static void ChangeFacingParmsToAncestorFacing(PawnRenderNode node, ref PawnDrawParms parms) + { + PawnRenderNode nodeAscendingParentTree = node; + while (nodeAscendingParentTree != null) + { + if (nodeAscendingParentTree.AnimationWorker is AnimationWorker_KeyframesExtended extendedAnimWorker) + { + parms.facing = extendedAnimWorker.facingAtTick(node.tree.AnimationTick); + break; + + } + + nodeAscendingParentTree = nodeAscendingParentTree.parent; + } + } + } +} diff --git a/1.5/Source/Patches/RimworldPatches/HarmonyPatch_PawnRenderTree.cs b/1.5/Source/Patches/RimworldPatches/HarmonyPatch_PawnRenderTree.cs index 470b3d3..9ff1498 100644 --- a/1.5/Source/Patches/RimworldPatches/HarmonyPatch_PawnRenderTree.cs +++ b/1.5/Source/Patches/RimworldPatches/HarmonyPatch_PawnRenderTree.cs @@ -20,23 +20,8 @@ namespace Rimworld_Animations * Facing offsets fix */ //find lowest parent that is animating, or nothing if not animating + PawnDrawParms_FacingHelper.ChangeFacingParmsToAncestorFacing(node, ref parms); - //don't do anything if portrait - if (parms.Portrait) return true; - - PawnRenderNode animatingNode = node; - while (animatingNode != null - && !(animatingNode.AnimationWorker is AnimationWorker_KeyframesExtended)) - { - animatingNode = animatingNode.parent; - } - - //if animating parent node found, - if (animatingNode?.AnimationWorker is AnimationWorker_KeyframesExtended animatingNodeAnimationWorker) - { - //change parm to facing to animate correctly - parms.facing = animatingNodeAnimationWorker.facingAtTick(__instance.AnimationTick); - } /* * Set Render Node to absolute position diff --git a/Patch_FacialAnimation/1.5/Patches/AnimationPatch_HideHeadWhenAnimating.xml b/Patch_FacialAnimation/1.5/Patches/AnimationPatch_HideHeadWhenAnimating.xml index b8c72df..4358902 100644 --- a/Patch_FacialAnimation/1.5/Patches/AnimationPatch_HideHeadWhenAnimating.xml +++ b/Patch_FacialAnimation/1.5/Patches/AnimationPatch_HideHeadWhenAnimating.xml @@ -1,6 +1,10 @@ - + \ No newline at end of file diff --git a/Rimworld-Animations.csproj b/Rimworld-Animations.csproj index 708b103..c0a1022 100644 --- a/Rimworld-Animations.csproj +++ b/Rimworld-Animations.csproj @@ -118,6 +118,7 @@ +