public override void SelectOption(CustomPawn pawn, PawnLayerOption option)
        {
            PawnLayerOptionHair hairOption = option as PawnLayerOptionHair;

            if (hairOption != null)
            {
                pawn.Pawn.story.hairDef = hairOption.HairDef;
                pawn.MarkPortraitAsDirty();
            }
        }
        public override bool IsOptionSelected(CustomPawn pawn, PawnLayerOption option)
        {
            PawnLayerOptionHair hairOption = option as PawnLayerOptionHair;

            if (hairOption == null)
            {
                return(false);
            }
            return(pawn.Pawn.story.hairDef == hairOption.HairDef);
        }
Beispiel #3
0
        private List <PawnLayerOption> InitializeHairOptions(ThingDef pawnDef, Gender gender)
        {
            List <PawnLayerOption> options  = new List <PawnLayerOption>();
            List <HairDef>         hairDefs = PrepareCarefully.Instance.Providers.Hair.GetHairs(pawnDef, gender);

            foreach (var def in hairDefs)
            {
                PawnLayerOptionHair option = new PawnLayerOptionHair();
                option.HairDef = def;
                options.Add(option);
            }
            return(options);
        }
        public override int?GetSelectedIndex(CustomPawn pawn)
        {
            int selectedIndex = options.FirstIndexOf((option) => {
                PawnLayerOptionHair hairOption = option as PawnLayerOptionHair;
                if (hairOption == null)
                {
                    return(false);
                }
                else
                {
                    return(hairOption.HairDef == pawn.Pawn.story.hairDef);
                }
            });

            if (selectedIndex > -1)
            {
                return(selectedIndex);
            }
            else
            {
                return(null);
            }
        }