From 009a4c8d7f9f9bc588839a6d5440f16fa6ba6ac2 Mon Sep 17 00:00:00 2001 From: "Ivy@RecompiledBirds" Date: Mon, 24 Oct 2022 15:33:52 -0400 Subject: [PATCH] Working renderer --- 1.4/Assemblies/RimValiCore RW.dll | Bin 41984 -> 42496 bytes .../RVR/Harmony/Renderer/PawnRendererPatch.cs | 5 ++- .../Renderer/ResolveGraphicsPostFix.cs | 5 ++- Source/RVR/RVRComp.cs | 29 +++++++++++++++--- 4 files changed, 30 insertions(+), 9 deletions(-) diff --git a/1.4/Assemblies/RimValiCore RW.dll b/1.4/Assemblies/RimValiCore RW.dll index d4d021f9327979b7c7d6b99552a354ef13f72a55..79f28a23c8372b44a7d2912b60832e2d84011173 100644 GIT binary patch delta 20610 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 delta 20010 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 diff --git a/Source/RVR/Harmony/Renderer/PawnRendererPatch.cs b/Source/RVR/Harmony/Renderer/PawnRendererPatch.cs index 43e647c..4ae8b1b 100644 --- a/Source/RVR/Harmony/Renderer/PawnRendererPatch.cs +++ b/Source/RVR/Harmony/Renderer/PawnRendererPatch.cs @@ -38,10 +38,9 @@ public static void RenderingPostfix(Vector3 rootLoc, float angle, bool renderBod { set = new TriColorSet(Color.red, Color.green, Color.blue, true); } - // Graphic_Multi gra = (Graphic_Multi)GraphicDatabase.Get(comp.GetTexPath(renderableDef), TriColorShader.tricolorshader, pos.size, set[1], set[2]); + RVG_Graphic graphic = RVG_GraphicDataBase.Get(comp.GetTexPath(renderableDef), pos.size, set[0], set[1], set[2]); - GenDraw.DrawMeshNowOrLater(graphic.MeshAt(rotation), rootLoc + pos.position.RotatedBy(Mathf.Acos(Quaternion.Dot(Quaternion.identity, quat) * 114.59156f)), quat, graphic.MatAt(rotation), flags.FlagSet(PawnRenderFlags.DrawNow)); - // GenDraw.DrawMeshNowOrLater(gra.MeshAt(rotation), rootLoc + pos.position.RotatedBy(Mathf.Acos(Quaternion.Dot(Quaternion.identity, quat) * 114.59156f)), quat, gra.MatAt(rotation), flags.FlagSet(PawnRenderFlags.DrawNow)); + GenDraw.DrawMeshNowOrLater(graphic.MeshAt(rotation), rootLoc + pos.position.RotatedBy(Mathf.Acos(Quaternion.Dot(Quaternion.identity, quat)) * 114.60f), Quaternion.AngleAxis(angle, Vector3.up) * quat, graphic.MatAt(rotation), portrait||flags.FlagSet(PawnRenderFlags.DrawNow)); } diff --git a/Source/RVR/Harmony/Renderer/ResolveGraphicsPostFix.cs b/Source/RVR/Harmony/Renderer/ResolveGraphicsPostFix.cs index 1a81f59..dfba0f1 100644 --- a/Source/RVR/Harmony/Renderer/ResolveGraphicsPostFix.cs +++ b/Source/RVR/Harmony/Renderer/ResolveGraphicsPostFix.cs @@ -1,4 +1,5 @@ -using RVCRestructured.Graphics; +using RimWorld; +using RVCRestructured.Graphics; using System; using System.Collections.Generic; using System.Linq; @@ -33,6 +34,8 @@ public static void ResolveGraphicsPatch(PawnGraphicSet __instance) if (!rDef.RaceGraphics.hasHair) __instance.hairGraphic = RVG_GraphicDataBase.Get("RVC/Empty"); __instance.headGraphic = RVG_GraphicDataBase.Get(rDef.RaceGraphics.headTex,rDef.RaceGraphics.headSize,skinOne,skinTwo,skinThree); + __instance.SetApparelGraphicsDirty(); + PortraitsCache.SetDirty(pawn); } } } diff --git a/Source/RVR/RVRComp.cs b/Source/RVR/RVRComp.cs index 797ddc2..ff5990e 100644 --- a/Source/RVR/RVRComp.cs +++ b/Source/RVR/RVRComp.cs @@ -21,6 +21,16 @@ public RVRCP() } public class RVRComp : ThingComp { + private List defList; + + public List RenderableDefs + { + get + { + return defList; + } + } + private Dictionary sets = new Dictionary(); private Dictionary masks = new Dictionary(); private Dictionary renderableIndexes = new Dictionary(); @@ -38,12 +48,13 @@ public string GetTexPath(RenderableDef def) { public TriColorSet this[string name]{ get { - if (!sets.ContainsKey(name)) + if (sets.ContainsKey(name)) { - RVCLog.Log($"ColorSet {name} is not on {parent.def.defName}!", RVCLogType.Error); - return null; + return sets[name]; } - return sets[name]; + Pawn pawn = parent as Pawn; + RVCLog.Log($"ColorSet {name} is not on {pawn.Name.ToStringShort}!", RVCLogType.Error); + return null; } set { @@ -65,11 +76,19 @@ public override void PostExposeData() Scribe_Collections.Look(ref sets, "sets", LookMode.Value, LookMode.Deep, ref lKeys, ref lSets); Scribe_Collections.Look(ref masks, "masks", LookMode.Value, LookMode.Value, ref lKeys, ref lInts); Scribe_Collections.Look(ref renderableIndexes, "renderableIndexes", LookMode.Value, LookMode.Value, ref lKeys, ref lInts); + Scribe_Collections.Look(ref defList, "renderableDefs", LookMode.Def); } public void GenGraphics() { Pawn pawn = this.parent as Pawn; + + if (!(pawn.def is RaceDef raceDef)) + return; + + if (defList.NullOrEmpty()&& !raceDef.RaceGraphics.renderableDefs.NullOrEmpty()) + defList = raceDef.raceGraphics.renderableDefs; + foreach(RenderableDef rDef in raceDef.RaceGraphics.renderableDefs) { if (renderableIndexes.ContainsKey(rDef.defName)) @@ -99,7 +118,7 @@ public void GenGraphics() masks.Add(rDef.linkWith.defName, index); } } - foreach(RaceColors colors in raceDef.RaceGraphics.colorGenerators) + foreach(RaceColors colors in this.raceDef.RaceGraphics.colorGenerators) { Color c1 = colors.GeneratorToUse(pawn).colorOne.NewRandomizedColor(); Color c2 = colors.GeneratorToUse(pawn).colorTwo.NewRandomizedColor();