private int?GetSelectedVariant(CustomPawn pawn, int variantIndex) { if (pawn.AlienRace == null) { return(null); } ThingComp alienComp = pawn.Pawn.AllComps.FirstOrDefault((ThingComp comp) => { return(comp.GetType().Name == "AlienComp"); }); if (alienComp == null) { return(null); } FieldInfo variantsField = ReflectionUtil.GetPublicField(alienComp, "addonVariants"); if (variantsField == null) { return(null); } List <int> variants = null; try { variants = (List <int>)variantsField.GetValue(alienComp); } catch (Exception) { return(null); } return(variants[variantIndex]); }
public override bool IsOptionSelected(CustomPawn pawn, PawnLayerOption option) { PawnLayerOptionAlienAddon addonOption = option as PawnLayerOptionAlienAddon; if (addonOption == null) { return(false); } if (pawn.AlienRace != null) { ThingComp alienComp = pawn.Pawn.AllComps.FirstOrDefault((ThingComp comp) => { return(comp.GetType().Name == "AlienComp"); }); if (alienComp == null) { return(false); } FieldInfo variantsField = ReflectionUtil.GetPublicField(alienComp, "addonVariants"); if (variantsField == null) { return(false); } List <int> variants = null; try { variants = (List <int>)variantsField.GetValue(alienComp); } catch (Exception) { return(false); } int selectedIndex = variants[AlienAddon.VariantIndex]; return(selectedIndex == addonOption.Index); } return(false); }
public override void SelectOption(CustomPawn pawn, PawnLayerOption option) { PawnLayerOptionAlienAddon addonOption = option as PawnLayerOptionAlienAddon; if (addonOption == null) { return; } if (pawn.AlienRace != null) { ThingComp alienComp = pawn.Pawn.AllComps.FirstOrDefault((ThingComp comp) => { return(comp.GetType().Name == "AlienComp"); }); if (alienComp == null) { return; } FieldInfo variantsField = ReflectionUtil.GetPublicField(alienComp, "addonVariants"); if (variantsField == null) { return; } List <int> variants = null; try { variants = (List <int>)variantsField.GetValue(alienComp); } catch (Exception) { return; } variants[AlienAddon.VariantIndex] = addonOption.Index; pawn.MarkPortraitAsDirty(); } }
public static void SetHairColorSecondOnComp(ThingComp alienComp, Color value) { ReflectionUtil.GetPublicField(alienComp, "hairColorSecond").SetValue(alienComp, value); }
public static Color GetHairColorSecondFromComp(ThingComp alienComp) { return((Color)ReflectionUtil.GetPublicField(alienComp, "hairColorSecond").GetValue(alienComp)); }
public static void SetSkinColorOnComp(ThingComp alienComp, Color value) { ReflectionUtil.GetPublicField(alienComp, "skinColor").SetValue(alienComp, value); }
public static Color GetSkinColorFromComp(ThingComp alienComp) { return((Color)ReflectionUtil.GetPublicField(alienComp, "skinColor").GetValue(alienComp)); }
public static void SetCrownTypeOnComp(ThingComp alienComp, string value) { ReflectionUtil.GetPublicField(alienComp, "crownType").SetValue(alienComp, value); }
public static string GetCrownTypeFromComp(ThingComp alienComp) { return(ReflectionUtil.GetPublicField(alienComp, "crownType").GetValue(alienComp) as string); }