Lizard name datasets (#7890)
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
This commit is contained in:
@@ -29,9 +29,8 @@ namespace Content.Client.Preferences.UI
|
||||
private void RandomizeName()
|
||||
{
|
||||
if (Profile == null) return;
|
||||
var firstName = _random.Pick(Profile.Sex.FirstNames(_prototypeManager).Values);
|
||||
var lastName = _random.Pick(_prototypeManager.Index<DatasetPrototype>("names_last"));
|
||||
SetName($"{firstName} {lastName}");
|
||||
var name = Profile.Sex.GetName(Profile.Species, _prototypeManager, _random);
|
||||
SetName(name);
|
||||
UpdateNameEdit();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
using System;
|
||||
using Content.Shared.Dataset;
|
||||
using Content.Shared.Species;
|
||||
using Robust.Shared.IoC;
|
||||
using Robust.Shared.Prototypes;
|
||||
using Robust.Shared.Random;
|
||||
|
||||
namespace Content.Shared.CharacterAppearance
|
||||
{
|
||||
public enum Sex
|
||||
public enum Sex : byte
|
||||
{
|
||||
Male,
|
||||
Female
|
||||
@@ -13,19 +15,50 @@ namespace Content.Shared.CharacterAppearance
|
||||
|
||||
public static class SexExtensions
|
||||
{
|
||||
public static DatasetPrototype FirstNames(this Sex sex, IPrototypeManager? prototypeManager = null)
|
||||
public static string GetName(this Sex sex, string species, IPrototypeManager? prototypeManager = null, IRobustRandom? random = null)
|
||||
{
|
||||
prototypeManager ??= IoCManager.Resolve<IPrototypeManager>();
|
||||
IoCManager.Resolve(ref prototypeManager);
|
||||
IoCManager.Resolve(ref random);
|
||||
|
||||
// if they have an old species or whatever just fall back to human I guess?
|
||||
// Some downstream is probably gonna have this eventually but then they can deal with fallbacks.
|
||||
if (!prototypeManager.TryIndex(species, out SpeciesPrototype? speciesProto))
|
||||
{
|
||||
speciesProto = prototypeManager.Index<SpeciesPrototype>("Human");
|
||||
Logger.Warning($"Unable to find species {species} for name, falling back to Human");
|
||||
}
|
||||
|
||||
switch (speciesProto.Naming)
|
||||
{
|
||||
case SpeciesNaming.FirstDashFirst:
|
||||
return $"{GetFirstName(sex, speciesProto, prototypeManager, random)}-{GetFirstName(sex, speciesProto, prototypeManager, random)}";
|
||||
case SpeciesNaming.FirstLast:
|
||||
default:
|
||||
return $"{GetFirstName(sex, speciesProto, prototypeManager, random)} {GetLastName(sex, speciesProto, prototypeManager, random)}";
|
||||
}
|
||||
}
|
||||
|
||||
public static string GetFirstName(this Sex sex, SpeciesPrototype speciesProto, IPrototypeManager? protoManager = null, IRobustRandom? random = null)
|
||||
{
|
||||
IoCManager.Resolve(ref protoManager);
|
||||
IoCManager.Resolve(ref random);
|
||||
|
||||
switch (sex)
|
||||
{
|
||||
case Sex.Male:
|
||||
return prototypeManager.Index<DatasetPrototype>("names_first_male");
|
||||
return random.Pick(protoManager.Index<DatasetPrototype>(speciesProto.MaleFirstNames).Values);
|
||||
case Sex.Female:
|
||||
return prototypeManager.Index<DatasetPrototype>("names_first_female");
|
||||
return random.Pick(protoManager.Index<DatasetPrototype>(speciesProto.FemaleFirstNames).Values);
|
||||
default:
|
||||
throw new ArgumentOutOfRangeException(nameof(sex), sex, null);
|
||||
throw new ArgumentOutOfRangeException();
|
||||
}
|
||||
}
|
||||
|
||||
public static string GetLastName(this Sex sex, SpeciesPrototype speciesProto, IPrototypeManager? protoManager = null, IRobustRandom? random = null)
|
||||
{
|
||||
IoCManager.Resolve(ref protoManager);
|
||||
IoCManager.Resolve(ref random);
|
||||
return random.Pick(protoManager.Index<DatasetPrototype>(speciesProto.LastNames).Values);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -112,17 +112,15 @@ namespace Content.Shared.Preferences
|
||||
|
||||
public static HumanoidCharacterProfile Random()
|
||||
{
|
||||
var prototypeManager = IoCManager.Resolve<IPrototypeManager>();
|
||||
var random = IoCManager.Resolve<IRobustRandom>();
|
||||
|
||||
var species = random.Pick(IoCManager.Resolve<IPrototypeManager>()
|
||||
var species = random.Pick(prototypeManager
|
||||
.EnumeratePrototypes<SpeciesPrototype>().Where(x => x.RoundStart).ToArray()).ID;
|
||||
var sex = random.Prob(0.5f) ? Sex.Male : Sex.Female;
|
||||
var gender = sex == Sex.Male ? Gender.Male : Gender.Female;
|
||||
|
||||
var prototypeManager = IoCManager.Resolve<IPrototypeManager>();
|
||||
var firstName = random.Pick(sex.FirstNames(prototypeManager).Values);
|
||||
var lastName = random.Pick(prototypeManager.Index<DatasetPrototype>("names_last"));
|
||||
var name = $"{firstName} {lastName}";
|
||||
var name = sex.GetName(species, prototypeManager, random);
|
||||
var age = random.Next(MinimumAge, MaximumAge);
|
||||
|
||||
return new HumanoidCharacterProfile(name, species, age, sex, gender, HumanoidCharacterAppearance.Random(sex), ClothingPreference.Jumpsuit, BackpackPreference.Backpack,
|
||||
@@ -279,7 +277,7 @@ namespace Content.Shared.Preferences
|
||||
string name;
|
||||
if (string.IsNullOrEmpty(Name))
|
||||
{
|
||||
name = RandomName();
|
||||
name = Sex.GetName(Species);
|
||||
}
|
||||
else if (Name.Length > MaxNameLength)
|
||||
{
|
||||
@@ -299,7 +297,7 @@ namespace Content.Shared.Preferences
|
||||
|
||||
if (string.IsNullOrEmpty(name))
|
||||
{
|
||||
name = RandomName();
|
||||
name = Sex.GetName(Species);
|
||||
}
|
||||
|
||||
var appearance = HumanoidCharacterAppearance.EnsureValid(Appearance, Species);
|
||||
@@ -361,15 +359,6 @@ namespace Content.Shared.Preferences
|
||||
|
||||
_antagPreferences.Clear();
|
||||
_antagPreferences.AddRange(antags);
|
||||
|
||||
string RandomName()
|
||||
{
|
||||
var random = IoCManager.Resolve<IRobustRandom>();
|
||||
var protoMan = IoCManager.Resolve<IPrototypeManager>();
|
||||
var firstName = random.Pick(Sex.FirstNames(protoMan).Values);
|
||||
var lastName = random.Pick(protoMan.Index<DatasetPrototype>("names_last"));
|
||||
return $"{firstName} {lastName}";
|
||||
}
|
||||
}
|
||||
|
||||
public override bool Equals(object? obj)
|
||||
|
||||
@@ -43,11 +43,29 @@ public sealed class SpeciesPrototype : IPrototype
|
||||
/// </summary>
|
||||
[DataField("skinColoration", required: true)]
|
||||
public SpeciesSkinColor SkinColoration { get; }
|
||||
|
||||
[DataField("maleFirstNames")]
|
||||
public string MaleFirstNames { get; } = "names_first_male";
|
||||
|
||||
[DataField("femaleFirstNames")]
|
||||
public string FemaleFirstNames { get; } = "names_first_female";
|
||||
|
||||
[DataField("lastNames")]
|
||||
public string LastNames { get; } = "names_last";
|
||||
|
||||
[DataField("naming")]
|
||||
public SpeciesNaming Naming { get; } = SpeciesNaming.FirstLast;
|
||||
}
|
||||
|
||||
public enum SpeciesSkinColor
|
||||
public enum SpeciesSkinColor : byte
|
||||
{
|
||||
HumanToned,
|
||||
Hues,
|
||||
TintedHues, //This gives a color tint to a humanoid's skin (10% saturation with full hue range).
|
||||
}
|
||||
|
||||
public enum SpeciesNaming : byte
|
||||
{
|
||||
FirstLast,
|
||||
FirstDashFirst,
|
||||
}
|
||||
|
||||
166
Resources/Prototypes/Datasets/Names/reptilian_female.yml
Normal file
166
Resources/Prototypes/Datasets/Names/reptilian_female.yml
Normal file
@@ -0,0 +1,166 @@
|
||||
- type: dataset
|
||||
id: names_reptilian_female
|
||||
values:
|
||||
- Adzi
|
||||
- Ah
|
||||
- Ahaht
|
||||
- Ajim
|
||||
- Akeenus
|
||||
- Akish
|
||||
- Akishan
|
||||
- Aleeto
|
||||
- Am
|
||||
- Amussa
|
||||
- An
|
||||
- Anozz
|
||||
- Asheemar
|
||||
- Asska
|
||||
- Awas
|
||||
- Azala
|
||||
- Azbai
|
||||
- Azeez
|
||||
- Azum
|
||||
- Banalz
|
||||
- Bar
|
||||
- Baseenar
|
||||
- Beek
|
||||
- Beekatan
|
||||
- Beekus
|
||||
- Beela
|
||||
- Beelei
|
||||
- Beem
|
||||
- Beewos
|
||||
- Bejeen
|
||||
- Ber
|
||||
- Betzi
|
||||
- Bishalus
|
||||
- Bokeeus
|
||||
- Bur
|
||||
- Bura
|
||||
- Chalaree
|
||||
- Chana
|
||||
- Chanil
|
||||
- Chee
|
||||
- Cheesh
|
||||
- Chimatei
|
||||
- Chirurgeon
|
||||
- Cholasistu
|
||||
- Chuna
|
||||
- Churasu
|
||||
- Crath
|
||||
- Dar
|
||||
- Deeja
|
||||
- Deesei
|
||||
- Deesh
|
||||
- Deetsan
|
||||
- Deetwos
|
||||
- Dooka
|
||||
- Druja
|
||||
- Eepa
|
||||
- Ei
|
||||
- Eix
|
||||
- El
|
||||
- Ereel
|
||||
- Eutei
|
||||
- Gai
|
||||
- Gih
|
||||
- Gilm
|
||||
- Gish
|
||||
- Go
|
||||
- Hal
|
||||
- Hul
|
||||
- Ja
|
||||
- Jaseen
|
||||
- Jasuda
|
||||
- Jeed
|
||||
- Jeen
|
||||
- Kajul
|
||||
- Kal
|
||||
- Kasa
|
||||
- Keel
|
||||
- Keerava
|
||||
- Kiurz
|
||||
- Kud
|
||||
- La
|
||||
- Lee
|
||||
- Lei
|
||||
- Lifts
|
||||
- Liurz
|
||||
- Lurasha
|
||||
- Ma
|
||||
- Mach
|
||||
- Marz
|
||||
- Meedish
|
||||
- Meeh
|
||||
- Meema
|
||||
- Meen
|
||||
- Meena
|
||||
- Meenus
|
||||
- Meerana
|
||||
- Meesei
|
||||
- Meeus
|
||||
- Mei
|
||||
- Milah
|
||||
- Mim
|
||||
- Mota
|
||||
- Mudeska
|
||||
- Muz
|
||||
- Na
|
||||
- Nakuma
|
||||
- Nam
|
||||
- Nassa
|
||||
- Natoo
|
||||
- Neesha
|
||||
- Neetizei
|
||||
- Neetra
|
||||
- Neeus
|
||||
- Niima
|
||||
- Numeen
|
||||
- Nuralg
|
||||
- Nush
|
||||
- Ocheeva
|
||||
- Okur
|
||||
- Olank
|
||||
- On
|
||||
- Onasha
|
||||
- Osheeka
|
||||
- Pasha
|
||||
- Ra
|
||||
- Rana
|
||||
- Raniur
|
||||
- Ree
|
||||
- Reesa
|
||||
- Rei
|
||||
- Sa
|
||||
- Saak
|
||||
- Sanax
|
||||
- Seeba
|
||||
- Seed
|
||||
- Seen
|
||||
- Shah
|
||||
- Shahvee
|
||||
- Shaleez
|
||||
- Shatalg
|
||||
- Sheer
|
||||
- Shei
|
||||
- Sigerthe
|
||||
- Skaleel
|
||||
- Sudie
|
||||
- Tail
|
||||
- Tar
|
||||
- Tasha
|
||||
- Tei
|
||||
- Telixith
|
||||
- Tumma
|
||||
- Veek
|
||||
- Wan
|
||||
- Wazei
|
||||
- Weedum
|
||||
- Weewish
|
||||
- Witseidutsei
|
||||
- Wuja
|
||||
- Wujeeta
|
||||
- Wusha
|
||||
- Xil
|
||||
- Zish
|
||||
- Zollassa
|
||||
331
Resources/Prototypes/Datasets/Names/reptilian_male.yml
Normal file
331
Resources/Prototypes/Datasets/Names/reptilian_male.yml
Normal file
@@ -0,0 +1,331 @@
|
||||
- type: dataset
|
||||
id: names_reptilian_male
|
||||
values:
|
||||
- Abijoo
|
||||
- Ah
|
||||
- Ajum
|
||||
- Am
|
||||
- Amusei
|
||||
- An
|
||||
- Anoo
|
||||
- Aojee
|
||||
- Asum
|
||||
- Az
|
||||
- Azeel
|
||||
- Azinar
|
||||
- Azjai
|
||||
- Baar
|
||||
- Banka
|
||||
- Bar
|
||||
- Barnaxi
|
||||
- Batar
|
||||
- Batuus
|
||||
- Beem
|
||||
- Beshnus
|
||||
- Betu
|
||||
- Bex
|
||||
- Bijot
|
||||
- Bimee
|
||||
- Binyaar
|
||||
- Bosekus
|
||||
- Brand
|
||||
- Bun
|
||||
- Bunach
|
||||
- Bunish
|
||||
- Busheeus
|
||||
- Buujhan
|
||||
- Chakuk
|
||||
- Chalish
|
||||
- Chalureel
|
||||
- Chath
|
||||
- Chee
|
||||
- Cheedal
|
||||
- Chilwir
|
||||
- Chitakus
|
||||
- Chiwish
|
||||
- Chulz
|
||||
- Chuna
|
||||
- Da
|
||||
- Dakee
|
||||
- Dan
|
||||
- Dar
|
||||
- Darasken
|
||||
- DarJee
|
||||
- Debameel
|
||||
- Deed
|
||||
- Deegeeta
|
||||
- Deeh
|
||||
- Deekonus
|
||||
- Deekum
|
||||
- Deekus
|
||||
- Deerkaza
|
||||
- Deetum
|
||||
- Demeepa
|
||||
- Depasa
|
||||
- Derkeethus
|
||||
- Deroh
|
||||
- Dezanu
|
||||
- Dreet
|
||||
- Drumarz
|
||||
- Dum
|
||||
- Dunaxith
|
||||
- Effe
|
||||
- Ei
|
||||
- Eidu
|
||||
- Eius
|
||||
- Eiuus
|
||||
- Eix
|
||||
- Eleedal
|
||||
- Er
|
||||
- Esqoo
|
||||
- Etaku
|
||||
- Gah
|
||||
- Gajul
|
||||
- Gam
|
||||
- Geeh
|
||||
- Geel
|
||||
- Geem
|
||||
- Geh
|
||||
- Gei
|
||||
- Gih
|
||||
- Gin
|
||||
- Goh
|
||||
- Gulum
|
||||
- Haj
|
||||
- Han
|
||||
- Haran
|
||||
- Hareeya
|
||||
- Hathei
|
||||
- Heedul
|
||||
- Heem
|
||||
- Hei
|
||||
- Heir
|
||||
- Hixeeh
|
||||
- Huleeya
|
||||
- Huzei
|
||||
- Ilas
|
||||
- Im
|
||||
- Inee
|
||||
- Itan
|
||||
- J'Ram
|
||||
- Ja
|
||||
- Jah
|
||||
- Jaraleet
|
||||
- Jaree
|
||||
- Jas
|
||||
- Jasaiin
|
||||
- Jaseen
|
||||
- Jat
|
||||
- Jee
|
||||
- Jeela
|
||||
- Jeelius
|
||||
- Jeelus
|
||||
- Jeen
|
||||
- Jeer
|
||||
- Jeetum
|
||||
- Jei
|
||||
- Jilux
|
||||
- Jin
|
||||
- Jon
|
||||
- Jul
|
||||
- Julan
|
||||
- Junal
|
||||
- Jush
|
||||
- Juunei
|
||||
- Kai
|
||||
- Kajin
|
||||
- Kamax
|
||||
- Kas
|
||||
- Keema
|
||||
- Keer
|
||||
- Keerasa
|
||||
- Kepanuu
|
||||
- Kia
|
||||
- Kiameed
|
||||
- Kilaya
|
||||
- Kiurz
|
||||
- Kur
|
||||
- Kuz
|
||||
- La
|
||||
- Lah
|
||||
- Lai
|
||||
- Lan
|
||||
- Lara
|
||||
- Leem
|
||||
- Lei
|
||||
- Loh
|
||||
- Lotash
|
||||
- Luh
|
||||
- Lurz
|
||||
- Luteema
|
||||
- Maahi
|
||||
- Madesi
|
||||
- Maheelius
|
||||
- Mahei
|
||||
- Maht
|
||||
- Malz
|
||||
- Marz
|
||||
- Mathei
|
||||
- Maxath
|
||||
- Meej
|
||||
- Meejapa
|
||||
- Meensuda
|
||||
- Meer
|
||||
- Mema
|
||||
- Mere
|
||||
- Metaku
|
||||
- Miharil
|
||||
- Milos
|
||||
- Miun
|
||||
- Mobareed
|
||||
- Mohimeem
|
||||
- Mopakuz
|
||||
- Motuu
|
||||
- Mujeen
|
||||
- Muranatepa
|
||||
- Mush
|
||||
- Muz
|
||||
- Na
|
||||
- Napetui
|
||||
- Nazuux
|
||||
- Nebutil
|
||||
- Neeti
|
||||
- Neetinei
|
||||
- Neetrenaza
|
||||
- Neetzara
|
||||
- Neeus
|
||||
- Nema
|
||||
- Neposh
|
||||
- Netapatuu
|
||||
- Nexith
|
||||
- Nodeeus
|
||||
- Nomu
|
||||
- Nosaleeth
|
||||
- Nowajeem
|
||||
- Noyei
|
||||
- Nulaz
|
||||
- Nur
|
||||
- Obaxith
|
||||
- Okan
|
||||
- Okaw
|
||||
- Okeeh
|
||||
- Oleed
|
||||
- Oleen
|
||||
- Olik
|
||||
- Olink
|
||||
- Onuja
|
||||
- Onurai
|
||||
- Opatieel
|
||||
- Otumeel
|
||||
- Owai
|
||||
- Pachat
|
||||
- Pacheeva
|
||||
- Pad
|
||||
- Paduxi
|
||||
- Pajeen
|
||||
- Parash
|
||||
- Peeradeeh
|
||||
- Pejureel
|
||||
- Petaxai
|
||||
- Pideelus
|
||||
- Pimaxi
|
||||
- Pojeel
|
||||
- Ra
|
||||
- Radithax
|
||||
- Raj
|
||||
- Rareel
|
||||
- Rasha
|
||||
- Redieeus
|
||||
- Ree
|
||||
- Reeh
|
||||
- Reemukeeus
|
||||
- Reenum
|
||||
- Reesa
|
||||
- Reet
|
||||
- Reezal
|
||||
- Resari
|
||||
- Riker
|
||||
- Ru
|
||||
- Rupah
|
||||
- Sakeepa
|
||||
- Sakeeus
|
||||
- Sakka
|
||||
- Saliith
|
||||
- Sar
|
||||
- Schiavas
|
||||
- Seek
|
||||
- Seewul
|
||||
- Sei
|
||||
- Sejaijilax
|
||||
- Shakiis
|
||||
- Shehs
|
||||
- Shei
|
||||
- Silm
|
||||
- Skee
|
||||
- Skeetul
|
||||
- Sureeus
|
||||
- Ta
|
||||
- Taeed
|
||||
- Tah
|
||||
- Taleel
|
||||
- Talen
|
||||
- Tan
|
||||
- Tanaka
|
||||
- Tanan
|
||||
- Tee
|
||||
- Teeba
|
||||
- Teegla
|
||||
- Teeka
|
||||
- Teekeeus
|
||||
- Teemeeta
|
||||
- Teeus
|
||||
- Tehat
|
||||
- Tei
|
||||
- Teinaava
|
||||
- Teineeja
|
||||
- Terezeeus
|
||||
- Tikaasi
|
||||
- Tim
|
||||
- Topeeth
|
||||
- Topith
|
||||
- Tsleeixth
|
||||
- Tul
|
||||
- Tulm
|
||||
- Tun
|
||||
- Ukatsei
|
||||
- Ukawei
|
||||
- Ula
|
||||
- Ulawa
|
||||
- Ullis
|
||||
- Usha
|
||||
- Usheeja
|
||||
- Utadeek
|
||||
- Utamukeeus
|
||||
- Utatul
|
||||
- Uxith
|
||||
- Vara
|
||||
- Veekas
|
||||
- Veenaza
|
||||
- Veezara
|
||||
- Vistha
|
||||
- Vudeelal
|
||||
- Wanan
|
||||
- Wanum
|
||||
- Wayiteh
|
||||
- Weebam
|
||||
- Weeltul
|
||||
- Weer
|
||||
- Wih
|
||||
- Wud
|
||||
- Wuleen
|
||||
- Wulm
|
||||
- Wumeek
|
||||
- Xal
|
||||
- Xemo
|
||||
- Yinz
|
||||
- Yinz'r
|
||||
- Zaw
|
||||
- Ze
|
||||
- Zeen
|
||||
- Zeeus
|
||||
- Zish
|
||||
@@ -21,6 +21,9 @@
|
||||
prototype: MobReptilian
|
||||
dollPrototype: MobReptilianDummy
|
||||
skinColoration: Hues
|
||||
maleFirstNames: names_reptilian_male
|
||||
femaleFirstNames: names_reptilian_female
|
||||
naming: FirstDashFirst
|
||||
|
||||
- type: species
|
||||
id: SlimePerson
|
||||
|
||||
Reference in New Issue
Block a user