public static bool NameSingleIsUsed(string candidate) { foreach (Pawn item in PawnsFinder.AllMapsWorldAndTemporary_AliveOrDead) { NameSingle nameSingle = item.Name as NameSingle; if (nameSingle != null && nameSingle.Name == candidate) { return(true); } } return(false); }
public override bool ConfusinglySimilarTo(Name other) { NameSingle nameSingle = other as NameSingle; if (nameSingle != null && nameSingle.nameInt == this.nameInt) { return(true); } NameTriple nameTriple = other as NameTriple; return(nameTriple != null && nameTriple.Nick == this.nameInt); }
static private void nameAnimals() { //get all pawns on the map that are wild animals IEnumerable <Pawn> pawns = from p in Verse.Find.CurrentMap.mapPawns.AllPawnsSpawned where p.RaceProps.Animal && !Find.CurrentMap.fogGrid.IsFogged(p.Position) && p.Faction == null || p.Faction == Faction.OfInsects || p.Faction == Faction.OfMechanoids && (p.mindState.Active || p.Dead) orderby(p.Name != null && !p.Name.Numerical) ? p.Name.ToStringShort : p.Label select p; //construct a name //RimWorld.JobGiver_Nuzzle jobg = new RimWorld.JobGiver_Nuzzle(); //jobg. //Verse.JobDef //Job job = new Job(DefDatabase<JobDef>.GetNamed("GotoCellAndDraft"), thing); //workPawn.playerController.TakeOrderedJob(job); //give name to all //Pawn wild_animal = null; for (int i = 0; i < pawns.Count(); i++) { try { if (pawns.ElementAt(i).Name == null) { string one_name_str = getNameFromList(); if (one_name_str == null || one_name_str.Length == 0) { Verse.Log.Message("NO NAMES FOR ANIMALS"); return; } Verse.NameSingle name = new Verse.NameSingle(one_name_str); Verse.Log.Message("GIVE NAME (ANIMAL): " + one_name_str); //Verse.Log.Message("named a schmatteo at " + i.ToString()); pawns.ElementAt(i).Name = name; //TODO: write to list to make api call and notify server about new animals } //else { // wild_animal = pawns.ElementAt(i); //} } catch (System.Exception e) { Verse.Log.Message("RENAME EXCEPTION " + e.ToString()); } } } // NAME ANIMALS END
public override bool Equals(object obj) { if (obj == null) { return(false); } if (!(obj is NameSingle)) { return(false); } NameSingle nameSingle = (NameSingle)obj; return(this.nameInt == nameSingle.nameInt); }
public override bool ConfusinglySimilarTo(Name other) { NameSingle nameSingle = other as NameSingle; bool result; if (nameSingle != null && nameSingle.nameInt == this.nameInt) { result = true; } else { NameTriple nameTriple = other as NameTriple; result = (nameTriple != null && nameTriple.Nick == this.nameInt); } return(result); }
public static bool NameWordIsUsed(string singleName) { foreach (Name item in NameUseChecker.AllPawnsNamesEverUsed) { NameTriple nameTriple = item as NameTriple; if (nameTriple != null && (singleName == nameTriple.First || singleName == nameTriple.Nick || singleName == nameTriple.Last)) { return(true); } NameSingle nameSingle = item as NameSingle; if (nameSingle != null && nameSingle.Name == singleName) { return(true); } } return(false); }
public override bool Equals(object obj) { bool result; if (obj == null) { result = false; } else if (!(obj is NameSingle)) { result = false; } else { NameSingle nameSingle = (NameSingle)obj; result = (this.nameInt == nameSingle.nameInt); } return(result); }
public override bool ConfusinglySimilarTo(Name other) { NameTriple nameTriple = other as NameTriple; if (nameTriple != null) { if (this.Nick != null && this.Nick == nameTriple.Nick) { return(true); } if (this.First == nameTriple.First && this.Last == nameTriple.Last) { return(true); } } NameSingle nameSingle = other as NameSingle; return(nameSingle != null && nameSingle.Name == this.Nick); }
public static bool NameWordIsUsed(string singleName) { foreach (Name current in NameUseChecker.AllPawnsNamesEverUsed) { NameTriple nameTriple = current as NameTriple; if (nameTriple != null && (singleName == nameTriple.First || singleName == nameTriple.Nick || singleName == nameTriple.Last)) { bool result = true; return(result); } NameSingle nameSingle = current as NameSingle; if (nameSingle != null && nameSingle.Name == singleName) { bool result = true; return(result); } } return(false); }
private void CheckChangePawnKindName() { NameSingle nameSingle = this.pawn.Name as NameSingle; if (nameSingle != null && nameSingle.Numerical) { string kindLabel = this.pawn.KindLabel; if (!(nameSingle.NameWithoutNumber == kindLabel)) { int number = nameSingle.Number; string text = this.pawn.KindLabel + " " + number; if (!NameUseChecker.NameSingleIsUsed(text)) { this.pawn.Name = new NameSingle(text, true); } else { this.pawn.Name = PawnBioAndNameGenerator.GeneratePawnName(this.pawn, NameStyle.Numeric, null); } } } }
private void CheckChangePawnKindName() { NameSingle nameSingle = pawn.Name as NameSingle; if (nameSingle == null || !nameSingle.Numerical) { return; } string kindLabel = pawn.KindLabel; if (!(nameSingle.NameWithoutNumber == kindLabel)) { int number = nameSingle.Number; string text = pawn.KindLabel + " " + number; if (!NameUseChecker.NameSingleIsUsed(text)) { pawn.Name = new NameSingle(text, numerical: true); } else { pawn.Name = PawnBioAndNameGenerator.GeneratePawnName(pawn, NameStyle.Numeric); } } }
static private void nameAnimals() { //get all pawns on the map that are wild animals IEnumerable <Pawn> pawns = from p in Verse.Find.CurrentMap.mapPawns.AllPawnsSpawned where p.RaceProps.Animal && !Find.CurrentMap.fogGrid.IsFogged(p.Position) && p.Faction == null || p.Faction == Faction.OfInsects && (p.mindState.Active || p.Dead) orderby(p.Name != null && !p.Name.Numerical) ? p.Name.ToStringShort : p.Label select p; //construct a name //RimWorld.JobGiver_Nuzzle jobg = new RimWorld.JobGiver_Nuzzle(); //jobg. //Verse.JobDef //Job job = new Job(DefDatabase<JobDef>.GetNamed("GotoCellAndDraft"), thing); //workPawn.playerController.TakeOrderedJob(job); //give name to all //Pawn wild_animal = null; for (int i = 0; i < pawns.Count(); i++) { if (pawns.ElementAt(i).Name == null) { string one_name_str = namePool.RandomElement(); if (one_name_str == null || one_name_str.Length == 0) { Verse.Log.Message("no names in pool"); continue; } //try to get a name that does not already exist. //finding a name may fail, since we try to get random elements from the pool bool name_exists = false; for (int f = 0; f < namePool.Count(); f++) { name_exists = false; for (int j = 0; j < pawns.Count(); j++) { if (pawns.ElementAt(j).Name != null) { if (pawns.ElementAt(j).Name.ToString() == one_name_str) { name_exists = true; break; } } } if (name_exists) { //Verse.Log.Message("name exists - pick new"); one_name_str = namePool.RandomElement(); } if (!name_exists) { break; } } if (name_exists) { Verse.Log.Message("NO UNUSED NAMES - WILL TRY AGAIN"); break; } Verse.NameSingle name = new Verse.NameSingle(one_name_str); Verse.Log.Message("GIVE NAME: " + one_name_str); //Verse.Log.Message("named a schmatteo at " + i.ToString()); pawns.ElementAt(i).Name = name; //TODO: write to list to make api call and notify server about new animals } //else { // wild_animal = pawns.ElementAt(i); //} } } // NAME ANIMALS END