public void AddNames(PawnNameSlot slot, Gender gender, IEnumerable <string> namesToAdd) { foreach (string item in namesToAdd) { NamesFor(slot, gender).Add(item); } }
public string GetName(PawnNameSlot slot, Gender gender = Gender.None, bool checkIfAlreadyUsed = true) { List <string> list = this.NamesFor(slot, gender); int num = 0; if (list.Count == 0) { Log.Error(string.Concat(new object[] { "Name list for gender=", gender, " slot=", slot, " is empty." }), false); return("Errorname"); } string text; for (;;) { text = list.RandomElement <string>(); if (checkIfAlreadyUsed && !NameUseChecker.NameWordIsUsed(text)) { break; } num++; if (num > 50) { return(text); } } return(text); }
public string GetName(PawnNameSlot slot, Gender gender = Gender.None) { List <string> list = this.NamesFor(slot, gender); int num = 0; if (list.Count == 0) { Log.Error("Name list for gender=" + gender + " slot=" + slot + " is empty."); return("Errorname"); } string text; while (true) { text = list.RandomElement(); if (!NameUseChecker.NameWordIsUsed(text)) { return(text); } num++; if (num > 50) { break; } } return(text); }
public void AddNames(PawnNameSlot slot, Gender gender, IEnumerable <string> namesToAdd) { foreach (string current in namesToAdd) { this.NamesFor(slot, gender).Add(current); } }
public static XDocument TxtToXml(PawnNameSlot slot, Gender gender, string defName, string path) { int count = 0; List <string> names = new List <string>(); using (StreamReader sr = new StreamReader(path)) { while (sr.Peek() >= 0) { names.Add(sr.ReadLine().Trim()); } } XElement root = new XElement("Defs"); XElement def = new XElement("ShuffledNameDef", new XElement("shuffledNames")); foreach (string item in names) { if (!string.IsNullOrEmpty(item)) { if (item.Contains("//")) { if (def.Element("shuffledNames").HasElements) { root.Add(def); root.Add(new XComment(item.Replace("//", ""))); def = new XElement("ShuffledNameDef", new XElement("shuffledNames")); } else { root.Add(new XComment(item.Replace("//", ""))); } } else { def.Element("shuffledNames").Add(new XElement("li", item)); count++; } } } if (root.LastNode != def) { root.Add(def); } root.AddFirst(new XComment($"NOTE: The names disallow duplicates in the same file. Total: {count}.")); Console.WriteLine(defName + ": " + count); count = 0; foreach (XElement curDef in root.Elements()) { curDef.AddFirst(new XElement("defName", defName + "_" + count)); curDef.Element("shuffledNames").AddBeforeSelf( new XElement("slot", slot), new XElement("gender", gender) ); count++; } return(new XDocument(new XDeclaration("1.0", "utf-8", null), root)); }
public static void AddNamesDedup(this NameBank nameBank, PawnNameSlot slot, Gender gender, IEnumerable <string> namesToAdd) { List <string> names = nameBank.NamesFor(slot, gender); foreach (string curName in namesToAdd) { if (!names.Contains(curName)) { names.Add(curName); } } }
public string GetName(PawnNameSlot slot, Gender gender = Gender.None, bool checkIfAlreadyUsed = true) { List <string> list = NamesFor(slot, gender); int num = 0; if (list.Count == 0) { Log.Error(string.Concat("Name list for gender=", gender, " slot=", slot, " is empty.")); return("Errorname"); } string text; do { text = list.RandomElement(); if (checkIfAlreadyUsed && !NameUseChecker.NameWordIsUsed(text)) { return(text); } num++; }while (num <= 50); return(text); }
public void AddNamesFromFile(PawnNameSlot slot, Gender gender, string fileName) { AddNames(slot, gender, GenFile.LinesFromFile("Names/" + fileName)); }
private List <string> NamesFor(PawnNameSlot slot, Gender gender) { return(names[(uint)gender, (uint)slot]); }
public static List <string> NamesFor(this NameBank nameBank, PawnNameSlot slot, Gender gender) { return(nameBank.AllNames()[(int)gender, (int)slot]); }