From 319979b0f3c7fd4479761cb2c7f790754999aa80 Mon Sep 17 00:00:00 2001 From: c0ffee Date: Thu, 25 Apr 2024 14:07:51 -0700 Subject: [PATCH] graphic severity variants, bugfix with not having any of a specific hediff --- 1.5/Assemblies/Rimworld-Animations.dll | Bin 43008 -> 45568 bytes ...roperties_GraphicHediffSeverityVariants.cs | 33 +++++ ...odeWorker_GraphicHediffSeverityVariants.cs | 15 +++ ...enderNode_GraphicHediffSeverityVariants.cs | 121 ++++++++++++++++++ .../PawnRenderNode_GraphicHediffVariants.cs | 2 +- Rimworld-Animations.csproj | 3 + 6 files changed, 173 insertions(+), 1 deletion(-) create mode 100644 1.5/Source/PawnRenderNode/GraphicHediffSeverityVariants/PawnRenderNodeProperties_GraphicHediffSeverityVariants.cs create mode 100644 1.5/Source/PawnRenderNode/GraphicHediffSeverityVariants/PawnRenderNodeWorker_GraphicHediffSeverityVariants.cs create mode 100644 1.5/Source/PawnRenderNode/GraphicHediffSeverityVariants/PawnRenderNode_GraphicHediffSeverityVariants.cs diff --git a/1.5/Assemblies/Rimworld-Animations.dll b/1.5/Assemblies/Rimworld-Animations.dll index d182ca9d1a63334e5e33dd88ec6eacf3d09e20f1..494f83d8076729b3a266da79b763e9204b0c8faa 100644 GIT binary patch delta 16075 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 ITZ^s#8>StUW&i*H delta 13930 zcma)j31Adey6%6fs;l=-cc;@yhiu(pX|h1rcSrz{RX{+93K|F(VbriGFdD4!yLW_u}&GA~?(-VGDEkDnoqQC#yr0yh3 zcaqfo1w?7)MJ?6*Tyu-v%o;ChYrJByxhmMD-4y6{C{FKqA6l%n=+DE&qADU+huSIT zAA|MchQ_I>`;~T6FRR@o)qcrptEJl1#=`J%A#O8W83kflW3P-;LM$^gGgpD^$_xrI zuJM(2qlCLJGUIU+IULnP8{OHDYvcFI)+#mA;E~h`aUW5kTd!tX{b#sN564g9;&C8P z`#9byuy_izI@;46RbPV9qOX8nCp2C(e~5Mwqs{zSH`h8OzSyHoxaTo*Ml3AGn)k#^ z@uca@@9KCQj!2I`WtQfjKr^H5OCnpjN|{jg54dvap%xXbbV6sVIj{XVvDJLF{kSfT z$+nhTZAHA7xJ9R7QgxmiQZP8TWzoy1>!8%kFne@}=dNJ41u-Qam2wmwkTo+ERkOuc znLqE)Al8^E9Y>1m%xN7*7}vqI5`XBj)&Iks)kx76_XO4qfoTCzyAqW$1yM0k08@i& zs|Nx?EyAT2rP9K+Hku#5z|9G{`+mps^{SSkRkc9k>5HyXP>Ejx@e(v2wu(ZsQDlOsoRjCrHDK$G378(oDyDnCKIN?RZlxj?ESM`q!|6BW! z!H}-B=ygABd!a~o+lwNkD6L$@YoS)d5$N)m4pyt3qKsThHFvH>6bx3vHA7KU;x4qC z(3eyU;LT`YSJ^;Si@PBRw+Q&x!k)t6DN5X9hKk0D60@QxP4qXH6kTVmM5I(LpoQXI zX!F<<*(so<>V;myREzt#RxhN0UVs1!VF99U96+^IJqTNCz;vxD1&WyeaX+pcG2|)i z%n?D0eOh$@*UWejhyn9Dsb$Z)wx_Y{(Yr+Nrd?uZQ3AJ^`!QXNpLIU#CQ8nnsQD1us7*j?Bgtr!7Cdll|Om!iho;S$f1<*IBhW3m={bbIcgq>PuF4jhX|sG}^fF_v)aqr^LLrEvpVu+Tu%a5%1@nPiOPn*FV7 z#&FHwTGw1Jt%lfJnc*R*Exf074YI8*e71GXSg!e^b|#ww7HLjKF|&W>X$V`06Or zs8a*7gt>)rT#r=%59z86yrk$0cOrItBg*j?0R~44u|ERT4yh_+U;4uL9b~jt<91v_ z?NVE3oVROeb#}H1$*H`C*7&wsqm65;t!S&pskw%;U$)ia)LldCi?&*v(D-gn%@Tl_ z(cNco)#dDzmQ_8EdYN~9q1V->Q#>sH8lmcC7+|)>i{$9e#2^)O=|0>J+I`%rn*Gqg zm|^Y_wn|ATodnN{}bIBAuEdz_*!0qnRm719dNqV?u7Ortbbm6Ig5VA$xP!5WCgr|_I zSF?Pw-Fk1(?A}5xYo zch%bgcs6ud^zVpNJK6kAuR{F=F5YB*)2nFuG$_g!m3R*{qPUMDUzcP})t_K`Ur$tb z$!k?@6|2ud81Dt4TzK)|wSe+eZzj3$NK=> ztpZgqfT+4JYVAR#C9NwSzK*JXph@qtky0twpPpXTpCzr{k8XfkIj7+q^@4Z#QdTf8 z`Szr!HFz%KNjU&kHMgQzpd-OHs>H231U*oyZ#KvD>1?nTmh9^3xW+RvKsC3qUAX3U zT>AbG`in4JR;pQ0H4y%~POyk2s2YT->cN2fh5+KFfTAw{qVd5qSX|?Gpvw!(G5
    `nqja(n}4EQgU5@eq|1({7bt16K!u&T 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 RJHH8o8v}d)D%O?Q{||xDIk*4- diff --git a/1.5/Source/PawnRenderNode/GraphicHediffSeverityVariants/PawnRenderNodeProperties_GraphicHediffSeverityVariants.cs b/1.5/Source/PawnRenderNode/GraphicHediffSeverityVariants/PawnRenderNodeProperties_GraphicHediffSeverityVariants.cs new file mode 100644 index 0000000..96e9779 --- /dev/null +++ b/1.5/Source/PawnRenderNode/GraphicHediffSeverityVariants/PawnRenderNodeProperties_GraphicHediffSeverityVariants.cs @@ -0,0 +1,33 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Verse; + +namespace Rimworld_Animations +{ + public class PawnRenderNodeProperties_GraphicHediffSeverityVariants : PawnRenderNodeProperties_GraphicVariants + { + + public BodyPartDef bodyPart = null; + public List hediffSeverityVariants; + + } + + public class HediffWithSeverity + { + public HediffDef hediff; + public List severityVariants; + } + + public class TexPathVariants_Severity + { + public int severity; + public TexPathVariantsDef texPathVariantsDef; + + + } + + +} diff --git a/1.5/Source/PawnRenderNode/GraphicHediffSeverityVariants/PawnRenderNodeWorker_GraphicHediffSeverityVariants.cs b/1.5/Source/PawnRenderNode/GraphicHediffSeverityVariants/PawnRenderNodeWorker_GraphicHediffSeverityVariants.cs new file mode 100644 index 0000000..b8877a5 --- /dev/null +++ b/1.5/Source/PawnRenderNode/GraphicHediffSeverityVariants/PawnRenderNodeWorker_GraphicHediffSeverityVariants.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Rimworld_Animations +{ + public class PawnRenderNodeWorker_GraphicHediffSeverityVariants : PawnRenderNodeWorker_GraphicVariants + { + //same functionality as graphicvariants worker + //just here for readability + + } +} diff --git a/1.5/Source/PawnRenderNode/GraphicHediffSeverityVariants/PawnRenderNode_GraphicHediffSeverityVariants.cs b/1.5/Source/PawnRenderNode/GraphicHediffSeverityVariants/PawnRenderNode_GraphicHediffSeverityVariants.cs new file mode 100644 index 0000000..44ce6fd --- /dev/null +++ b/1.5/Source/PawnRenderNode/GraphicHediffSeverityVariants/PawnRenderNode_GraphicHediffSeverityVariants.cs @@ -0,0 +1,121 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Verse; + +namespace Rimworld_Animations +{ + public class PawnRenderNode_GraphicHediffSeverityVariants : PawnRenderNode_GraphicVariants + { + + protected HediffDef hediffWithSeverity; + protected float curSeverity; + + protected new PawnRenderNodeProperties_GraphicHediffSeverityVariants props; + private HediffDef curHediff; + + public PawnRenderNode_GraphicHediffSeverityVariants(Pawn pawn, PawnRenderNodeProperties props, PawnRenderTree tree) : base(pawn, props, tree) + { + + this.props = (PawnRenderNodeProperties_GraphicHediffSeverityVariants)props; + + } + + protected Dictionary GraphicHediffSeverityVariantsFor(Pawn pawn) + { + + + if (props.hediffSeverityVariants == null) + { + Log.Error("[Anims] Error: Tried to use GraphicBodyPartHediffSeverityVariants node, but hediffSeverityVariants weren't given"); + } + + + Hediff idealHediff = null; + HediffWithSeverity idealHediffSeverity = null; + + if (props.bodyPart == null) + { + //search the entire body for the hediff because no bodypart was set + for (int i = 0; i < props.hediffSeverityVariants.Count; i++) + { + idealHediff = pawn.health.hediffSet.hediffs.Find((Hediff hediffWithSeverity) => + hediffWithSeverity.def == props.hediffSeverityVariants[i].hediff); + + if (idealHediff != null) + { + //get the ideal hediff severity variants, to iterate through and find the right one for the severity + idealHediffSeverity = props.hediffSeverityVariants[i]; + break; + + } + + } + } + + else + { + //search for a hediff with a specific body part + + for (int i = 0; i < props.hediffSeverityVariants.Count; i++) + { + //right hediff with the right hediff and right body part + + idealHediff = pawn.health.hediffSet.hediffs.Find((Hediff hediffWithSeverity) => + hediffWithSeverity.def == props.hediffSeverityVariants[i].hediff + && hediffWithSeverity.Part.def == props.bodyPart); + + if (idealHediff != null) { + + //get the ideal hediff severity variants, to iterate through and find the right one for the severity + idealHediffSeverity = props.hediffSeverityVariants[i]; + break; + } + } + } + + if (idealHediff != null) + { + //set severity so that recache when this is different + curSeverity = idealHediff.Severity; + + //look for the right severity-based texpathvariants + TexPathVariants_Severity texPathVariants_Severity = idealHediffSeverity.severityVariants.Find((TexPathVariants_Severity texPathVariants) => + texPathVariants.severity < idealHediff.Severity); + + //if null, assume value is really too small + if (texPathVariants_Severity == null) + { + //return largest value + return GenerateVariants(pawn, idealHediffSeverity.severityVariants.First().texPathVariantsDef); + } + + //return right severity variants + return GenerateVariants(pawn, texPathVariants_Severity.texPathVariantsDef); + + } + + //there is no graphic hediff variants appropriate + curHediff = null; + return null; + + } + + protected override void EnsureMaterialsInitialized() + { + //if pawn no longer has the hediff, + if (variants == null || + !(this.tree.pawn.health?.hediffSet?.hediffs is List hediffs + && hediffs.Any((Hediff hediff) => hediff.def == curHediff && hediff.Severity == curSeverity))) + { + //do graphicvariantsfor + variants = GraphicHediffSeverityVariantsFor(this.tree.pawn); + } + + //call this in case variants wasn't set, and there is no graphic hediff variants appropriate; it'll set variants based on default + base.EnsureMaterialsInitialized(); + } + } +} diff --git a/1.5/Source/PawnRenderNode/GraphicHediffVariants/PawnRenderNode_GraphicHediffVariants.cs b/1.5/Source/PawnRenderNode/GraphicHediffVariants/PawnRenderNode_GraphicHediffVariants.cs index f297dfe..5382373 100644 --- a/1.5/Source/PawnRenderNode/GraphicHediffVariants/PawnRenderNode_GraphicHediffVariants.cs +++ b/1.5/Source/PawnRenderNode/GraphicHediffVariants/PawnRenderNode_GraphicHediffVariants.cs @@ -57,7 +57,7 @@ namespace Rimworld_Animations { //if pawn no longer has the hediff, if (variants == null || - (this.tree.pawn.health?.hediffSet?.hediffs is List hediffs + !(this.tree.pawn.health?.hediffSet?.hediffs is List hediffs && hediffs.Any((Hediff hediff) => hediff.def == curHediff))) { //do graphicvariantsfor diff --git a/Rimworld-Animations.csproj b/Rimworld-Animations.csproj index 2780308..1fad458 100644 --- a/Rimworld-Animations.csproj +++ b/Rimworld-Animations.csproj @@ -121,6 +121,9 @@ + + +