From c33072614bcfb8b1cf459d50df95dc284624506d Mon Sep 17 00:00:00 2001 From: c0ffee Date: Mon, 22 Apr 2024 12:55:46 -0700 Subject: [PATCH] Better error handling for missing graphic variants, missing offsets --- 1.5/Assemblies/Rimworld-Animations.dll | Bin 34816 -> 35328 bytes 1.5/Defs/AnimationDefs/TestAnimation1.xml | 1 - .../TestGroupAnimation1.xml | 1 + .../GroupAnimations/GroupAnimationDef.cs | 1 + 1.5/Source/Comps/CompExtendedAnimator.cs | 2 -- .../PawnRenderNodeWorker_GraphicVariants.cs | 13 +++++++++++-- .../PawnRenderNode_GraphicVariants.cs | 8 ++++++++ 7 files changed, 21 insertions(+), 5 deletions(-) diff --git a/1.5/Assemblies/Rimworld-Animations.dll b/1.5/Assemblies/Rimworld-Animations.dll index 7a6e149485b66daf096fc943249bbbfacac0678b..56a78fd4736a3adf2ab02f7fec50ec3f923473d4 100644 GIT binary patch delta 12989 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 a>={w>jADlxk1^ffd5`~=e@V5SjsFKHQzY#G delta 12607 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 B%vJyZ diff --git a/1.5/Defs/AnimationDefs/TestAnimation1.xml b/1.5/Defs/AnimationDefs/TestAnimation1.xml index 59f4cd2..466bbb4 100644 --- a/1.5/Defs/AnimationDefs/TestAnimation1.xml +++ b/1.5/Defs/AnimationDefs/TestAnimation1.xml @@ -98,7 +98,6 @@ -
  • RenderNodeTag_Xray_Inside diff --git a/1.5/Defs/GroupAnimationDefs/TestGroupAnimation1.xml b/1.5/Defs/GroupAnimationDefs/TestGroupAnimation1.xml index 6be826f..1f68f3d 100644 --- a/1.5/Defs/GroupAnimationDefs/TestGroupAnimation1.xml +++ b/1.5/Defs/GroupAnimationDefs/TestGroupAnimation1.xml @@ -3,6 +3,7 @@ TestGroupAnimation1 2 + True
  • 10 diff --git a/1.5/Source/Animations/GroupAnimations/GroupAnimationDef.cs b/1.5/Source/Animations/GroupAnimations/GroupAnimationDef.cs index 55f3bea..c9cc5e0 100644 --- a/1.5/Source/Animations/GroupAnimations/GroupAnimationDef.cs +++ b/1.5/Source/Animations/GroupAnimations/GroupAnimationDef.cs @@ -55,6 +55,7 @@ namespace Rimworld_Animations { //element at or default to stop errors if (offsetDefs == null) return null; + if ((actor + reorder) % numActors >= offsetDefs.Count) return null; return offsetDefs[(actor + reorder) % numActors].FindOffset(pawn); } } diff --git a/1.5/Source/Comps/CompExtendedAnimator.cs b/1.5/Source/Comps/CompExtendedAnimator.cs index 13cd1d3..2c57aa8 100644 --- a/1.5/Source/Comps/CompExtendedAnimator.cs +++ b/1.5/Source/Comps/CompExtendedAnimator.cs @@ -153,10 +153,8 @@ namespace Rimworld_Animations { { PawnRenderNodeProperties props = animationProp.animPropProperties; - Log.Message("Texpath of prop:" + props.texPath); if (props.texPath.NullOrEmpty()) { - Log.Message("Setting default texture"); props.texPath = "AnimationProps/Banana/Banana"; } diff --git a/1.5/Source/PawnRenderNode/GraphicVariants/PawnRenderNodeWorker_GraphicVariants.cs b/1.5/Source/PawnRenderNode/GraphicVariants/PawnRenderNodeWorker_GraphicVariants.cs index 50a8caa..da96fe5 100644 --- a/1.5/Source/PawnRenderNode/GraphicVariants/PawnRenderNodeWorker_GraphicVariants.cs +++ b/1.5/Source/PawnRenderNode/GraphicVariants/PawnRenderNodeWorker_GraphicVariants.cs @@ -13,6 +13,8 @@ namespace Rimworld_Animations public override bool CanDrawNow(PawnRenderNode node, PawnDrawParms parms) { + if (!base.CanDrawNow(node, parms)) return false; + if (parms.Portrait) return false; //don't draw if not visible at tick @@ -23,7 +25,7 @@ namespace Rimworld_Animations } - return base.CanDrawNow(node, parms); + return true; } protected override Material GetMaterial(PawnRenderNode node, PawnDrawParms parms) { @@ -37,7 +39,11 @@ namespace Rimworld_Animations //and texpathvariant is set && extendedAnimWorker.TexPathVariantAtTick(node.tree.AnimationTick) != null) { - return GetMaterialVariant(nodeWithGraphicVariants, parms, (int)extendedAnimWorker.TexPathVariantAtTick(node.tree.AnimationTick)); + Material materialVariant = GetMaterialVariant(nodeWithGraphicVariants, parms, (int)extendedAnimWorker.TexPathVariantAtTick(node.tree.AnimationTick)); + if (materialVariant != null) { + return materialVariant; + } + } //otherwise return original texture @@ -47,6 +53,9 @@ namespace Rimworld_Animations public virtual Material GetMaterialVariant(PawnRenderNode_GraphicVariants node, PawnDrawParms parms, int variant) { Material material = node.getGraphicVariant(variant).NodeGetMat(parms); + + if (material == null) return null; + if (material != null && !parms.Portrait && parms.flags.FlagSet(PawnRenderFlags.Invisible)) { material = InvisibilityMatPool.GetInvisibleMat(material); diff --git a/1.5/Source/PawnRenderNode/GraphicVariants/PawnRenderNode_GraphicVariants.cs b/1.5/Source/PawnRenderNode/GraphicVariants/PawnRenderNode_GraphicVariants.cs index 64eb815..24a74d6 100644 --- a/1.5/Source/PawnRenderNode/GraphicVariants/PawnRenderNode_GraphicVariants.cs +++ b/1.5/Source/PawnRenderNode/GraphicVariants/PawnRenderNode_GraphicVariants.cs @@ -16,6 +16,12 @@ namespace Rimworld_Animations public Graphic getGraphicVariant(int variant) { + if (!variants.ContainsKey(variant)) + { + Log.ErrorOnce("[Anims] Error: tried to get key from variants that doesn't exist; key = " + variant, 2043428111); + return null; + } + return variants[variant]; } @@ -48,6 +54,8 @@ namespace Rimworld_Animations Dictionary variantGraphics = new Dictionary(); + if (texPathVariants == null) return variantGraphics; + //for each graphic variant for (int i = 0; i < texPathVariants.variants.Count; i++) {