Table of Contents

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

seed int?

Properties

IsReady

True once a grammar and at least one race are registered.

public static bool IsReady { get; }

Property Value

bool

SupportedBiomes

public static IReadOnlyList<string> SupportedBiomes { get; }

Property Value

IReadOnlyList<string>

SupportedModifiers

public static IReadOnlyList<string> SupportedModifiers { get; }

Property Value

IReadOnlyList<string>

SupportedRaces

public static IReadOnlyList<string> SupportedRaces { get; }

Property Value

IReadOnlyList<string>

Methods

Generate(CityRequest)

public CityNameEntry Generate(CityRequest req)

Parameters

req CityRequest

Returns

CityNameEntry

Generate(DungeonRequest)

public DungeonNameEntry Generate(DungeonRequest req)

Parameters

req DungeonRequest

Returns

DungeonNameEntry

Generate(HybridRequest)

public CharacterEntry Generate(HybridRequest req)

Parameters

req HybridRequest

Returns

CharacterEntry

Generate(ItemRequest)

Generate a single legendary item name.

public ItemNameEntry Generate(ItemRequest req)

Parameters

req ItemRequest

Returns

ItemNameEntry

Generate(NameRequest)

public CharacterEntry Generate(NameRequest req)

Parameters

req NameRequest

Returns

CharacterEntry

Generate(POIRequest)

public POINameEntry Generate(POIRequest req)

Parameters

req POIRequest

Returns

POINameEntry

GenerateBatch(CityRequest, int)

public List<CityNameEntry> GenerateBatch(CityRequest req, int count)

Parameters

req CityRequest
count int

Returns

List<CityNameEntry>

GenerateBatch(DungeonRequest, int)

public List<DungeonNameEntry> GenerateBatch(DungeonRequest req, int count)

Parameters

req DungeonRequest
count int

Returns

List<DungeonNameEntry>

GenerateBatch(ItemRequest, int)

public List<ItemNameEntry> GenerateBatch(ItemRequest req, int count)

Parameters

req ItemRequest
count int

Returns

List<ItemNameEntry>

GenerateBatch(NameRequest, int)

public List<CharacterEntry> GenerateBatch(NameRequest req, int count)

Parameters

req NameRequest
count int

Returns

List<CharacterEntry>

GenerateBatch(POIRequest, int)

public List<POINameEntry> GenerateBatch(POIRequest req, int count)

Parameters

req POIRequest
count int

Returns

List<POINameEntry>

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

race string
gender CharacterGender
titleType TitleType
culture string
regionSeed string

Returns

CharacterEntry

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

race string
count int
gender CharacterGender
titleType TitleType
culture string
regionSeed string

Returns

List<CharacterEntry>

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

race string
cityType CityType
culture string
regionSeed string
biome string

Biome key the settlement sits in; null draws one of the race's home biomes.

climateVariant string

Key of one of the biome's climate variants ("frozen"); null for none.

Returns

CityNameEntry

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

race string
count int
cityType CityType
culture string
regionSeed string
biome string
climateVariant string

Returns

List<CityNameEntry>

GenerateDungeonName(string, string, string)

public DungeonNameEntry GenerateDungeonName(string biome, string regionSeed = null, string climateVariant = null)

Parameters

biome string
regionSeed string
climateVariant string

Key of one of the biome's climate variants ("frozen"); null for none.

Returns

DungeonNameEntry

GenerateDungeonNames(string, int, string, string)

public List<DungeonNameEntry> GenerateDungeonNames(string biome, int count, string regionSeed = null, string climateVariant = null)

Parameters

biome string
count int
regionSeed string
climateVariant string

Returns

List<DungeonNameEntry>

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

raceA string
raceB string
gender CharacterGender
titleType TitleType
dominance double

Returns

CharacterEntry

GenerateItemName(string, ItemType, string, string)

public ItemNameEntry GenerateItemName(string race, ItemType itemType = ItemType.Any, string culture = null, string regionSeed = null)

Parameters

race string
itemType ItemType
culture string
regionSeed string

Returns

ItemNameEntry

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

race string
count int
itemType ItemType
culture string
regionSeed string

Returns

List<ItemNameEntry>

GenerateName(string, CharacterGender, string, string)

public string GenerateName(string race, CharacterGender gender = CharacterGender.Unspecified, string culture = null, string regionSeed = null)

Parameters

race string
gender CharacterGender
culture string
regionSeed string

Returns

string

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

race string
count int
gender CharacterGender
culture string
regionSeed string

Returns

List<string>

GeneratePOIName(string, POIType, string, string)

public POINameEntry GeneratePOIName(string biome, POIType poiType = POIType.Any, string regionSeed = null, string climateVariant = null)

Parameters

biome string
poiType POIType
regionSeed string
climateVariant string

Returns

POINameEntry

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

biome string
count int
poiType POIType
regionSeed string
climateVariant string

Returns

List<POINameEntry>

GenerateTitle(string, TitleType)

public string GenerateTitle(string race, TitleType titleType = TitleType.Any)

Parameters

race string
titleType TitleType

Returns

string

GenerateUnique(CityRequest, int, int)

public UniqueResult<CityNameEntry> GenerateUnique(CityRequest req, int count, int maxAttempts = 10000)

Parameters

req CityRequest
count int
maxAttempts int

Returns

UniqueResult<CityNameEntry>

GenerateUnique(DungeonRequest, int, int)

public UniqueResult<DungeonNameEntry> GenerateUnique(DungeonRequest req, int count, int maxAttempts = 10000)

Parameters

req DungeonRequest
count int
maxAttempts int

Returns

UniqueResult<DungeonNameEntry>

GenerateUnique(ItemRequest, int, int)

public UniqueResult<ItemNameEntry> GenerateUnique(ItemRequest req, int count, int maxAttempts = 10000)

Parameters

req ItemRequest
count int
maxAttempts int

Returns

UniqueResult<ItemNameEntry>

GenerateUnique(NameRequest, int, int)

public UniqueResult<CharacterEntry> GenerateUnique(NameRequest req, int count, int maxAttempts = 10000)

Parameters

req NameRequest
count int
maxAttempts int

Returns

UniqueResult<CharacterEntry>

GenerateUnique(POIRequest, int, int)

public UniqueResult<POINameEntry> GenerateUnique(POIRequest req, int count, int maxAttempts = 10000)

Parameters

req POIRequest
count int
maxAttempts int

Returns

UniqueResult<POINameEntry>

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

race string
count int
gender CharacterGender
titleType TitleType
maxAttempts int
culture string
regionSeed string

Returns

List<CharacterEntry>

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

race string
count int
cityType CityType
maxAttempts int
culture string
regionSeed string
biome string
climateVariant string

Returns

List<CityNameEntry>

GenerateUniqueDungeonNames(string, int, int, string, string)

public List<DungeonNameEntry> GenerateUniqueDungeonNames(string biome, int count, int maxAttempts = 10000, string regionSeed = null, string climateVariant = null)

Parameters

biome string
count int
maxAttempts int
regionSeed string
climateVariant string

Returns

List<DungeonNameEntry>

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

race string
count int
itemType ItemType
maxAttempts int
culture string
regionSeed string

Returns

List<ItemNameEntry>

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

race string
count int
gender CharacterGender
maxAttempts int
culture string
regionSeed string

Returns

List<string>

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

biome string
count int
poiType POIType
maxAttempts int
regionSeed string
climateVariant string

Returns

List<POINameEntry>

GetCultures(string)

public static IReadOnlyList<string> GetCultures(string race)

Parameters

race string

Returns

IReadOnlyList<string>