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;
            }
        }
Example #2
0
        static void Postfix(Pawn ___pawn, ref Color ___desiredHairColor)
        {
            CompGradientHair comp = ___pawn.GetComp <CompGradientHair>();

            if (comp == null)
            {
                return;
            }

            ___desiredHairColor = GlobalStylingStation.tmpDesiredHairColor;
        }
Example #3
0
        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;
        }
Example #4
0
        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);
        }
Example #5
0
        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;
            }
        }
Example #7
0
        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);
        }