public static Name GeneratePawnName(Pawn pawn, NameStyle style = NameStyle.Full, string forcedLastName = null) { if (style == NameStyle.Full) { RulePackDef nameGenerator = pawn.RaceProps.GetNameGenerator(pawn.gender); if (nameGenerator != null) { string name = NameGenerator.GenerateName(nameGenerator, (string x) => !new NameSingle(x, false).UsedThisGame, false, null); return(new NameSingle(name, false)); } if (pawn.Faction != null && pawn.Faction.def.pawnNameMaker != null) { string rawName = NameGenerator.GenerateName(pawn.Faction.def.pawnNameMaker, delegate(string x) { NameTriple nameTriple4 = NameTriple.FromString(x); nameTriple4.ResolveMissingPieces(forcedLastName); return(!nameTriple4.UsedThisGame); }, false, null); NameTriple nameTriple = NameTriple.FromString(rawName); nameTriple.CapitalizeNick(); nameTriple.ResolveMissingPieces(forcedLastName); return(nameTriple); } if (pawn.RaceProps.nameCategory != PawnNameCategory.NoName) { if (Rand.Value < 0.5f) { NameTriple nameTriple2 = PawnBioAndNameGenerator.TryGetRandomUnusedSolidName(pawn.gender, forcedLastName); if (nameTriple2 != null) { return(nameTriple2); } } return(PawnBioAndNameGenerator.GeneratePawnName_Shuffled(pawn, forcedLastName)); } Log.Error("No name making method for " + pawn); NameTriple nameTriple3 = NameTriple.FromString(pawn.def.label); nameTriple3.ResolveMissingPieces(null); return(nameTriple3); } else { if (style == NameStyle.Numeric) { int num = 1; string text; while (true) { text = pawn.KindLabel + " " + num.ToString(); if (!NameUseChecker.NameSingleIsUsed(text)) { break; } num++; } return(new NameSingle(text, true)); } throw new InvalidOperationException(); } }
/// <summary> /// Creates a cutebold name. /// </summary> /// <param name="nameMaker">The given name rules.</param> /// <param name="forcedLastName">The forced last name.</param> /// <returns>Returns a new cutebold name.</returns> private static NameTriple CuteboldNameResolver(RulePackDef nameMaker, string forcedLastName) { NameTriple name = NameTriple.FromString(NameGenerator.GenerateName(nameMaker, null, false, null, null)); name.CapitalizeNick(); name.ResolveMissingPieces(forcedLastName); return(name); }
private static Name NameResolvedFrom(RulePackDef nameMaker, string forcedLastName) { NameTriple nameTriple = NameTriple.FromString(NameGenerator.GenerateName(nameMaker, delegate(string x) { NameTriple nameTriple2 = NameTriple.FromString(x); nameTriple2.ResolveMissingPieces(forcedLastName); return(!nameTriple2.UsedThisGame); })); nameTriple.CapitalizeNick(); nameTriple.ResolveMissingPieces(forcedLastName); return(nameTriple); }
public override void PostSpawnSetup() { base.PostSpawnSetup(); this.psykerPowerManager = new PsykerPowerManager(this); ChaosFollowerPawnKindDef pdef = this.psyker.kindDef as ChaosFollowerPawnKindDef; if (pdef != null && pdef.RenamePawns) { string rawName = NameGenerator.GenerateName(pdef.OverridingNameRulePack, delegate(string x) { NameTriple nameTriple4 = NameTriple.FromString(x); nameTriple4.ResolveMissingPieces(null); return(!nameTriple4.UsedThisGame); }, false); NameTriple nameTriple = NameTriple.FromString(rawName); nameTriple.CapitalizeNick(); nameTriple.ResolveMissingPieces(null); psyker.Name = nameTriple; } }
// RimWorld.PawnBioAndNameGenerator public static void GeneratePawnName(Pawn pawn, NameStyle style, string forcedLastName, ref Name __result) { if (pawn != null && pawn.Faction != null && pawn.Faction.def.defName == "RE_Player") { var ruleMaker = pawn.gender == Gender.Female ? DefDatabase <RulePackDef> .GetNamed("RE_STARSNamerFemale") : DefDatabase <RulePackDef> .GetNamed("RE_STARSNamerMale"); string rawName = NameGenerator.GenerateName(ruleMaker, delegate(string x) { NameTriple nameTriple4 = NameTriple.FromString(x); nameTriple4.ResolveMissingPieces(forcedLastName); return(!nameTriple4.UsedThisGame); }); NameTriple nameTriple = NameTriple.FromString(rawName); nameTriple.CapitalizeNick(); nameTriple.ResolveMissingPieces(forcedLastName); __result = nameTriple; } }
public static bool Prefix(Pawn pawn, ref Name __result, NameStyle style = 0, string forcedLastName = null) { if (style != NameStyle.Full) { return(true); } RulePackDef nameGenerator = pawn.RaceProps.GetNameGenerator(pawn.gender); if (nameGenerator != null) { if (nameGenerator.defName.Contains("NamerAnimalGeneric")) { if (pawn.Faction != null && (pawn.Faction.def.defName.Contains("Tribe") || pawn.Faction.def.defName == "TribalRaiders")) { string name; RTPN_NameBank nameBank = RTPN_Initializer.BankOf(PawnNameCategory.HumanStandard); name = nameBank.GetName(RTPN_NameSlot.Tribal, pawn.gender); if (Rand.Value < 0.33f) { string subname1; string subname2; float nickDesc = Rand.Value; if (nickDesc < 0.25) { subname1 = nameBank.GetName(RTPN_NameSlot.Desc, Gender.Female); } else { subname1 = nameBank.GetName(RTPN_NameSlot.Desc, Gender.Male); } float nickObject = Rand.Value; if (nickObject < 0.33) { subname2 = nameBank.GetName(RTPN_NameSlot.Object, Gender.Male); } else if (nickObject < 0.67) { subname2 = nameBank.GetName(RTPN_NameSlot.Object, Gender.Female); } else { subname2 = nameBank.GetName(RTPN_NameSlot.Object, Gender.None); } if (Rand.Value < 0.1) { name = subname2; } else { name = string.Concat(subname1, " ", subname2); } } __result = new NameSingle(name, false); return(false); } else { return(true); } } return(true); } if (pawn.Faction != null && pawn.Faction.def.pawnNameMaker != null) { if (pawn.Faction.def.pawnNameMaker.defName.Contains("NamerPersonTribal")) { string name1; string name2; string name3; RTPN_NameBank nameBank = RTPN_Initializer.BankOf(PawnNameCategory.HumanStandard); name3 = nameBank.GetName(RTPN_NameSlot.Tribal, pawn.gender); name1 = nameBank.GetName(RTPN_NameSlot.Tribal, pawn.gender); int num = 0; do { num++; if (Rand.Value >= 0.33f) { name2 = (Rand.Value >= 0.67f ? name3 : name1); } else { string subname1; string subname2; float nickDesc = Rand.Value; if (nickDesc < 0.25) { subname1 = nameBank.GetName(RTPN_NameSlot.Desc, Gender.Female); } else { subname1 = nameBank.GetName(RTPN_NameSlot.Desc, Gender.Male); } float nickObject = Rand.Value; if (nickObject < 0.33) { subname2 = nameBank.GetName(RTPN_NameSlot.Object, Gender.Male); } else if (nickObject < 0.67) { subname2 = nameBank.GetName(RTPN_NameSlot.Object, Gender.Female); } else { subname2 = nameBank.GetName(RTPN_NameSlot.Object, Gender.None); } if (Rand.Value < 0.1) { name2 = subname2; } else { name2 = string.Concat(subname1, " ", subname2); } } }while (num < 50 && NameUseChecker.AllPawnsNamesEverUsed.Any <Name>((Name x) => { NameTriple nameTriple = x as NameTriple; return(nameTriple == null ? false : nameTriple.Nick == name2); })); name1 = name1 + " '" + name2 + "'"; NameTriple fullName = NameTriple.FromString(name1 + " " + name3); fullName.CapitalizeNick(); fullName.ResolveMissingPieces(null); __result = fullName; return(false); } } return(true); }