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); }
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); } }