static void Prefix(Pawn_StyleTracker __instance) { CompGradientHair comp = __instance.pawn.GetComp <CompGradientHair>(); if (comp == null) { return; } Log.Message("FinalizeHairColor called"); if (comp.Settings.desiredEnabled != null) { comp.Settings.enabled = comp.Settings.desiredEnabled.Value; comp.Settings.desiredEnabled = null; } if (comp.Settings.desiredMask != null) { comp.Settings.mask = comp.Settings.desiredMask; comp.Settings.desiredMask = null; } if (comp.Settings.desiredColorB != null) { comp.Settings.colorB = comp.Settings.desiredColorB.Value; comp.Settings.desiredColorB = null; } }
static void Postfix(Pawn ___pawn, ref Color ___desiredHairColor) { CompGradientHair comp = ___pawn.GetComp <CompGradientHair>(); if (comp == null) { return; } ___desiredHairColor = GlobalStylingStation.tmpDesiredHairColor; }
static void Prefix(Pawn ___pawn) { CompGradientHair comp = ___pawn.GetComp <CompGradientHair>(); if (comp == null) { return; } comp.Settings.enabled = GlobalStylingStation.initialSettings.enabled; comp.Settings.mask = GlobalStylingStation.initialSettings.mask; comp.Settings.colorB = GlobalStylingStation.initialSettings.colorB; }
static void Postfix(Dialog_StylingStation __instance, Rect rect, Pawn ___pawn, Color ___desiredHairColor) { if (Traverse.Create(__instance).Field("curTab").GetValue <int>() != GlobalStylingStation.tabIndex) { return; } CompGradientHair comp = ___pawn.GetComp <CompGradientHair>(); if (comp == null) { return; } rect.yMax -= 110f; Action <Rect, GradientHairMaskDef> drawAction = delegate(Rect r, GradientHairMaskDef h) { Graphic_MultiMask graphic = GlobalStylingStation.GraphicForHair(___pawn.story.hairDef, h); graphic.SetColors(___desiredHairColor, comp.Settings.colorB); graphic.Draw(r.ExpandedBy(r.width * 0.125f)); if (h.modContentPack != GradientHair.myOwnPack) { TooltipHandler.TipRegion(r, new TipSignal("GradientHairAddedByMod".Translate(h.modContentPack.Name))); } }; Action <GradientHairMaskDef> selectAction = delegate(GradientHairMaskDef h) { comp.Settings.mask = h.mask; comp.Settings.enabled = h.defName != "MaskNone"; }; Func <StyleItemDef, bool> hasStyleItem = x => { GradientHairMaskDef h = x as GradientHairMaskDef; if (!comp.Settings.enabled) { return(h.defName == "MaskNone"); } return(comp.Settings.mask == h.mask); }; Func <StyleItemDef, bool> hadStyleItem = x => true; MethodInfo methodA = typeof(Dialog_StylingStation).GetMethod("DrawStylingItemType", BindingFlags.NonPublic | BindingFlags.Instance); MethodInfo method = methodA.MakeGenericMethod(typeof(GradientHairMaskDef)); method.Invoke(__instance, new object[] { rect, GlobalStylingStation.hairGradientScrollPosition, drawAction, selectAction, hasStyleItem, hadStyleItem, null, false }); GlobalStylingStation.DrawHairColors(new Rect(rect.x, rect.yMax + 10f, rect.width, 110f), comp.Settings); }
static void Prefix(Pawn pawn) { GlobalStylingStation.hairGradientScrollPosition = default; CompGradientHair comp = pawn.GetComp <CompGradientHair>(); if (comp == null) { return; } GlobalStylingStation.initialSettings.enabled = comp.Settings.enabled; GlobalStylingStation.initialSettings.mask = comp.Settings.mask; GlobalStylingStation.initialSettings.colorB = comp.Settings.colorB; }
static void Prefix(Pawn_StyleTracker __instance) { CompGradientHair comp = __instance.pawn.GetComp <CompGradientHair>(); if (comp == null) { return; } if (!comp.Settings.SameAs(GlobalStylingStation.initialSettings)) { comp.Settings.desiredEnabled = comp.Settings.enabled; comp.Settings.desiredMask = comp.Settings.mask; comp.Settings.desiredColorB = comp.Settings.colorB; } }
static void Prefix(Pawn ___pawn, ref Color ___desiredHairColor) { GlobalStylingStation.tmpDesiredHairColor = ___desiredHairColor; CompGradientHair comp = ___pawn.GetComp <CompGradientHair>(); if (comp == null) { return; } if (!comp.Settings.SameAs(GlobalStylingStation.initialSettings)) { ___desiredHairColor.a += 0.0001f; } }
static void Postfix(PawnGraphicSet __instance) { CompGradientHair comp = __instance.pawn.GetComp <CompGradientHair>(); if (comp == null) { return; } GradientHairSettings settings = comp.Settings; if (!settings.enabled) { return; } __instance.hairGraphic = Graphic_MultiMask.Get(__instance.pawn.story.hairDef.texPath, settings.mask, __instance.pawn.story.hairColor, settings.colorB); }