Releases: kesac/Syllabore
Releases · kesac/Syllabore
v2.3.3
Changes
- Generator classes that simulate randomness now implement
IRandomizable
- The instance of
System.Random
within generator classes is now accessible through theRandom
property- This affects
NameGenerator
,SyllableGenerator
,SyllableSet
, andTransformerSet
- This affects
- In addition, a new fluent-style method has been added to each generator class to set the
Random
instance during configuration - These changes addresses proposal #14 which asks for control over random seeds
See the new wiki page here for code examples on controlling random seeds.
v2.3.2
Changes
- API documentation now ships with the nuget package: they should appear as tool tips in your favourite IDE when you hover over a class name or method
- API documentation now covers all classes and methods
- More unit tests and improved test organization (thanks @monerofglory)
- The example project and the unit test project have moved to .NET 8 (LTS)
- Note: You do need to use to .NET 8 to use the class library. The library itself targets .NET Standard 2.0 which remains compatible with anything from .NET Framework 4.6.2 through to .NET 8
v2.3.1
v2.3
Changes
- Simplified
DefaultSyllableGenerator
used in vanillaNameGenerators
- Added way to control the final consonant of a name
- Simplified way for controlling sequence probabilities
Example
var syllables = new SyllableGenerator();
syllables.WithLeadingConsonants("bdlmprst");
syllables.WithVowels("aeio");
syllables.WithFinalConsonants("dlmnrstx"); // These consonants only appear at the end of a name
syllables.WithProbability(x => x
.OfLeadingConsonants(0.95, 0.25) // The second value is the probability of a sequence
.OfFinalConsonants(0.50, 0.25));
v2.2.1
Changes
- Class
SyllableProvider
deprecated in favor forSyllableGenerator
- Class
SyllableProviderProbability
removed. New classGeneratorProbability
replaces it. NameGenerator.UsingProbability()
can be used to modify syllable probabilitiesSyllableGenerator.WithProbability()
can be used to modify syllable probabilities- New
Of()
methods added to classGeneratorProbability
to control probabilities - Transformations are now defined by calling method
UsingTransform(INameTransformer)
orUsingTransform(double, INameTransformer)
NameGenerator.UsingTransformer()
is now deprecated in favor ofNameGenerator.UsingTransform()
- Class
NameGenerator
now has a new(string, string)
constructor for simple customization of vowels and consonants - Method
NameGenerator.UsingProvider(ISyllableGenerator)
is now deprecated in favor of.UsingSyllables(ISyllableGenerator)
- Added method
DoNotAllow()
to classNameGenerator
to simplify name filtering
Changes to Wiki
- Every single page in the wiki was updated for this version
v2.0.2
- Improvements to
SyllableSet
- Added method for specifying starter, middle, or ending syllables
- Specifying syllables or a
SyllableProvider
can be done in any order
- Deprecated
DefaultNameTransformer
- Minor update to generators and transformers
-The check against transform probability has been moved directly in to NameTransformer. It was in NameGenerator originally.
v2.0.1
v2.0.1 Changelog
Provider Changes
- Grapheme positioning and clustering probabilities are now set by calling
WithProbability()
on aSyllableProvider
var g = new NameGenerator()
.UsingProvider(x => x
.WithVowels("ae")
.WithLeadingConsonants("str")
.WithTrailingConsonants("mnl")
.WithProbability(x => x
.LeadingConsonantExists(1.0)
.TrailingConsonantExists(0.20)));
- Weights can now be assigned directly to consonants and vowels to influence their frequency of use
var g = new NameGenerator()
.UsingProvider(x => x
.WithVowels("a").Weight(5) // This vowel will now occur 2.5 times more often than other vowels
.WithVowels("ei").Weight(2)
.WithConsonants("trs"));
Mutator (Transformer) Changes
- Name mutators have been reimplemented and are now called name
Transformers
. Similarly, Mutations are nowTransforms
and MutationSteps areTransformSteps
. - Transformation frequency is now set by calling
Select()
andChance()
directly on aTransformer
- Weights can now be assigned to transforms to influence their frequency
var g = new NameGenerator()
.UsingProvider(x => x
.WithVowels("ae")
.WithLeadingConsonants("str"))
.UsingTransformer(x => x
.Select(1).Chance(0.5)
.WithTransform(x => x.AppendSyllable("gard")).Weight(2)
.WithTransform(x => x.AppendSyllable("dar")))
.UsingSyllableCount(3);
- Additionally, all
Transforms
are now serializable unless usingExecuteUnserializableAction()
Validator (Filter) Changes
- Name validators are now name
Filters
DoNotAllow()
,DoNotAllowEnding()
,DoNotAlllowBeginning()
methods have been added to filters as an alternative to providing regular expressions
var g = new NameGenerator()
.UsingFilter(x => x
.DoNotAllowEnding("j","p","q","w") // Invalidate these awkward endings
.DoNotAllowPattern(@"(\w)\1\1") // Invalidate any sequence of 3 or more identical letters
.DoNotAllowPattern(@"([^aeiouAEIOU])\1\1\1")); // Invalidate any sequence of 4 or more consonants
Serialization Changes
ConfigurationFile
has been replaced with classNameGeneratorSerializer
Minor changes
NameGenerator
LimitSyllableCount()
is nowUsingSyllableCount()
- Added
SyllableSet
as first alternative toSyllableProvider
- Syllabore now uses Archigen
v2.0-alpha5
Bump to version 2.0-alpha5
v2.0-alpha4
Increment version to v2.0.0.0-alpha4
v2.0-alpha3
Increment version to 2.0.0.0-alpha3