Class NameGenerator
- Namespace
- FishMMO.Shared.NameGeneration
- Assembly
- FishMMO.Shared.dll
Public facade for the name-generation system: characters, cities, dungeons, points of interest and legendary items, all built from the naming templates registered in RaceRegistry, BiomeRegistry, ModifierRegistry and NameGrammar.
Determinism: when a request carries a RegionSeed (and
optionally ObjectSeed / Index) the result is reproducible on
every peer — the same inputs derive the same DeterministicRNG.
Without a seed the instance's own RNG drives the output.
Thread safety: an instance is not thread-safe when its own RNG is used (no RegionSeed). For multi-threaded use construct one instance per thread, or always supply a RegionSeed so each call derives its own RNG.
public class NameGenerator
- Inheritance
-
NameGenerator
- Inherited Members
Constructors
NameGenerator(int?)
Construct a generator. With no seed the RNG is
time-based; with one it is fixed, so unseeded requests replay too.
public NameGenerator(int? seed = null)
Parameters
seedint?
Properties
IsReady
True once a grammar and at least one race are registered.
public static bool IsReady { get; }
Property Value
SupportedBiomes
public static IReadOnlyList<string> SupportedBiomes { get; }
Property Value
SupportedModifiers
public static IReadOnlyList<string> SupportedModifiers { get; }
Property Value
SupportedRaces
public static IReadOnlyList<string> SupportedRaces { get; }
Property Value
Methods
Generate(CityRequest)
public CityNameEntry Generate(CityRequest req)
Parameters
reqCityRequest
Returns
Generate(DungeonRequest)
public DungeonNameEntry Generate(DungeonRequest req)
Parameters
reqDungeonRequest
Returns
Generate(HybridRequest)
public CharacterEntry Generate(HybridRequest req)
Parameters
reqHybridRequest
Returns
Generate(ItemRequest)
Generate a single legendary item name.
public ItemNameEntry Generate(ItemRequest req)
Parameters
reqItemRequest
Returns
Generate(NameRequest)
public CharacterEntry Generate(NameRequest req)
Parameters
reqNameRequest
Returns
Generate(POIRequest)
public POINameEntry Generate(POIRequest req)
Parameters
reqPOIRequest
Returns
GenerateBatch(CityRequest, int)
public List<CityNameEntry> GenerateBatch(CityRequest req, int count)
Parameters
reqCityRequestcountint
Returns
GenerateBatch(DungeonRequest, int)
public List<DungeonNameEntry> GenerateBatch(DungeonRequest req, int count)
Parameters
reqDungeonRequestcountint
Returns
GenerateBatch(ItemRequest, int)
public List<ItemNameEntry> GenerateBatch(ItemRequest req, int count)
Parameters
reqItemRequestcountint
Returns
GenerateBatch(NameRequest, int)
public List<CharacterEntry> GenerateBatch(NameRequest req, int count)
Parameters
reqNameRequestcountint
Returns
GenerateBatch(POIRequest, int)
public List<POINameEntry> GenerateBatch(POIRequest req, int count)
Parameters
reqPOIRequestcountint
Returns
GenerateCharacter(string, CharacterGender, TitleType, string, string)
public CharacterEntry GenerateCharacter(string race, CharacterGender gender = CharacterGender.Unspecified, TitleType titleType = TitleType.Any, string culture = null, string regionSeed = null)
Parameters
racestringgenderCharacterGendertitleTypeTitleTypeculturestringregionSeedstring
Returns
GenerateCharacters(string, int, CharacterGender, TitleType, string, string)
public List<CharacterEntry> GenerateCharacters(string race, int count, CharacterGender gender = CharacterGender.Unspecified, TitleType titleType = TitleType.Any, string culture = null, string regionSeed = null)
Parameters
Returns
GenerateCityName(string, CityType, string, string, string, string)
public CityNameEntry GenerateCityName(string race, CityType cityType = CityType.Any, string culture = null, string regionSeed = null, string biome = null, string climateVariant = null)
Parameters
racestringcityTypeCityTypeculturestringregionSeedstringbiomestringBiome key the settlement sits in; null draws one of the race's home biomes.
climateVariantstringKey of one of the biome's climate variants ("frozen"); null for none.
Returns
GenerateCityNames(string, int, CityType, string, string, string, string)
public List<CityNameEntry> GenerateCityNames(string race, int count, CityType cityType = CityType.Any, string culture = null, string regionSeed = null, string biome = null, string climateVariant = null)
Parameters
racestringcountintcityTypeCityTypeculturestringregionSeedstringbiomestringclimateVariantstring
Returns
GenerateDungeonName(string, string, string)
public DungeonNameEntry GenerateDungeonName(string biome, string regionSeed = null, string climateVariant = null)
Parameters
biomestringregionSeedstringclimateVariantstringKey of one of the biome's climate variants ("frozen"); null for none.
Returns
GenerateDungeonNames(string, int, string, string)
public List<DungeonNameEntry> GenerateDungeonNames(string biome, int count, string regionSeed = null, string climateVariant = null)
Parameters
Returns
GenerateHybrid(string, string, CharacterGender, TitleType, double)
public CharacterEntry GenerateHybrid(string raceA, string raceB, CharacterGender gender = CharacterGender.Unspecified, TitleType titleType = TitleType.Any, double dominance = 0.5)
Parameters
raceAstringraceBstringgenderCharacterGendertitleTypeTitleTypedominancedouble
Returns
GenerateItemName(string, ItemType, string, string)
public ItemNameEntry GenerateItemName(string race, ItemType itemType = ItemType.Any, string culture = null, string regionSeed = null)
Parameters
Returns
GenerateItemNames(string, int, ItemType, string, string)
public List<ItemNameEntry> GenerateItemNames(string race, int count, ItemType itemType = ItemType.Any, string culture = null, string regionSeed = null)
Parameters
Returns
GenerateName(string, CharacterGender, string, string)
public string GenerateName(string race, CharacterGender gender = CharacterGender.Unspecified, string culture = null, string regionSeed = null)
Parameters
racestringgenderCharacterGenderculturestringregionSeedstring
Returns
GenerateNames(string, int, CharacterGender, string, string)
public List<string> GenerateNames(string race, int count, CharacterGender gender = CharacterGender.Unspecified, string culture = null, string regionSeed = null)
Parameters
racestringcountintgenderCharacterGenderculturestringregionSeedstring
Returns
GeneratePOIName(string, POIType, string, string)
public POINameEntry GeneratePOIName(string biome, POIType poiType = POIType.Any, string regionSeed = null, string climateVariant = null)
Parameters
Returns
GeneratePOINames(string, int, POIType, string, string)
public List<POINameEntry> GeneratePOINames(string biome, int count, POIType poiType = POIType.Any, string regionSeed = null, string climateVariant = null)
Parameters
Returns
GenerateTitle(string, TitleType)
public string GenerateTitle(string race, TitleType titleType = TitleType.Any)
Parameters
Returns
GenerateUnique(CityRequest, int, int)
public UniqueResult<CityNameEntry> GenerateUnique(CityRequest req, int count, int maxAttempts = 10000)
Parameters
reqCityRequestcountintmaxAttemptsint
Returns
GenerateUnique(DungeonRequest, int, int)
public UniqueResult<DungeonNameEntry> GenerateUnique(DungeonRequest req, int count, int maxAttempts = 10000)
Parameters
reqDungeonRequestcountintmaxAttemptsint
Returns
GenerateUnique(ItemRequest, int, int)
public UniqueResult<ItemNameEntry> GenerateUnique(ItemRequest req, int count, int maxAttempts = 10000)
Parameters
reqItemRequestcountintmaxAttemptsint
Returns
GenerateUnique(NameRequest, int, int)
public UniqueResult<CharacterEntry> GenerateUnique(NameRequest req, int count, int maxAttempts = 10000)
Parameters
reqNameRequestcountintmaxAttemptsint
Returns
GenerateUnique(POIRequest, int, int)
public UniqueResult<POINameEntry> GenerateUnique(POIRequest req, int count, int maxAttempts = 10000)
Parameters
reqPOIRequestcountintmaxAttemptsint
Returns
GenerateUniqueCharacters(string, int, CharacterGender, TitleType, int, string, string)
public List<CharacterEntry> GenerateUniqueCharacters(string race, int count, CharacterGender gender = CharacterGender.Unspecified, TitleType titleType = TitleType.Any, int maxAttempts = 10000, string culture = null, string regionSeed = null)
Parameters
racestringcountintgenderCharacterGendertitleTypeTitleTypemaxAttemptsintculturestringregionSeedstring
Returns
GenerateUniqueCityNames(string, int, CityType, int, string, string, string, string)
public List<CityNameEntry> GenerateUniqueCityNames(string race, int count, CityType cityType = CityType.Any, int maxAttempts = 10000, string culture = null, string regionSeed = null, string biome = null, string climateVariant = null)
Parameters
racestringcountintcityTypeCityTypemaxAttemptsintculturestringregionSeedstringbiomestringclimateVariantstring
Returns
GenerateUniqueDungeonNames(string, int, int, string, string)
public List<DungeonNameEntry> GenerateUniqueDungeonNames(string biome, int count, int maxAttempts = 10000, string regionSeed = null, string climateVariant = null)
Parameters
Returns
GenerateUniqueItemNames(string, int, ItemType, int, string, string)
public List<ItemNameEntry> GenerateUniqueItemNames(string race, int count, ItemType itemType = ItemType.Any, int maxAttempts = 10000, string culture = null, string regionSeed = null)
Parameters
Returns
GenerateUniqueNames(string, int, CharacterGender, int, string, string)
public List<string> GenerateUniqueNames(string race, int count, CharacterGender gender = CharacterGender.Unspecified, int maxAttempts = 10000, string culture = null, string regionSeed = null)
Parameters
Returns
GenerateUniquePOINames(string, int, POIType, int, string, string)
public List<POINameEntry> GenerateUniquePOINames(string biome, int count, POIType poiType = POIType.Any, int maxAttempts = 10000, string regionSeed = null, string climateVariant = null)
Parameters
Returns
GetCultures(string)
public static IReadOnlyList<string> GetCultures(string race)
Parameters
racestring