Package squidpony
Class FakeLanguageGen.Modifier
java.lang.Object
squidpony.FakeLanguageGen.Modifier
- All Implemented Interfaces:
Serializable
- Enclosing class:
- FakeLanguageGen
public static class FakeLanguageGen.Modifier extends Object implements Serializable
- See Also:
- Serialized Form
-
Field Summary
Fields Modifier and Type Field Description FakeLanguageGen.Alteration[]
alterations
static FakeLanguageGen.Modifier
DOUBLE_CONSONANTS
For a language that has a 50% chance to repeat a single consonant.static FakeLanguageGen.Modifier
DOUBLE_VOWELS
For a language that has a 40% chance to repeat a single Latin vowel (a, e, o, or a variant on one of them like å or ö, but not merged letters like æ and œ).static FakeLanguageGen.Modifier
GENERAL_CLEANUP
Some changes that can be applied when sanity checks (which force re-generating a new word) aren't appropriate for fixing a word that isn't pronounceable.static FakeLanguageGen.Modifier
HISS
For a character who always lengthens 's' and 'z' sounds not starting a word.static FakeLanguageGen.Modifier
LIGATURES
Simple changes to merge "ae" into "æ", "oe" into "œ", and any of "aé", "áe", or "áé" into "ǽ".static FakeLanguageGen.Modifier
LISP
For a character who always pronounces 's', 'ss', and 'sh' as 'th'.static FakeLanguageGen.Modifier
NO_DOUBLES
For a language that never repeats the same letter twice in a row.static FakeLanguageGen.Modifier
REDUCE_ACCENTS
Replaces any characters this can produce that aren't in ASCII or Latin-1 with Latin-script stand-ins; this will often use accented characters, but will only use those present in Latin-1 (which many fonts support).static FakeLanguageGen.Modifier
SIMPLIFY_NORSE
Removes accented letters and the two non-English consonants from text generated withFakeLanguageGen.NORSE
.static FakeLanguageGen.Modifier
STUTTER
For a character who has a 20% chance to repeat a starting consonant or vowel. -
Constructor Summary
-
Method Summary
Modifier and Type Method Description static FakeLanguageGen.Modifier
charReplacementTable(String initial, String change)
Creates a Modifier that will replace the nth char in initial with the nth char in change.static FakeLanguageGen.Modifier
deserializeFromString(String data)
boolean
equals(Object o)
int
hashCode()
static FakeLanguageGen.Modifier
insertClosingConsonant(String insertion, double chance)
Adds the potential for the Stringinsertion
to be used as a consonant in addition to the consonants that the language already uses; insertion will replace an existing consonant at the end of a word with a probability ofchance
, so chance should be low (0.2 at most) unless you want the newly-inserted consonant to be likely to end every word of some sentences.static FakeLanguageGen.Modifier
insertClosingVowel(String insertion, double chance)
Adds the potential for the Stringinsertion
to be used as a vowel in addition to the vowels that the language already uses; insertion will replace an existing vowel at the end of a word with a probability ofchance
, so chance should be low (0.2 at most) unless you want the newly-inserted vowel to be likely to end every word of some sentences.static FakeLanguageGen.Modifier
insertConsonant(String insertion, double chance)
Adds the potential for the Stringinsertion
to be used as a consonant in addition to the consonants that the language already uses; insertion will replace an existing consonant (at any point in a word that had a consonant generated) with a probability ofchance
, so chance should be low (0.1 at most) unless you want the newly-inserted consonant to be likely to be present in every word of some sentences.static FakeLanguageGen.Modifier
insertOpeningConsonant(String insertion, double chance)
Adds the potential for the Stringinsertion
to be used as a consonant in addition to the consonants that the language already uses; insertion will replace an existing consonant at the start of a word with a probability ofchance
, so chance should be low (0.2 at most) unless you want the newly-inserted consonant to be likely to start every word of some sentences.static FakeLanguageGen.Modifier
insertOpeningVowel(String insertion, double chance)
Adds the potential for the Stringinsertion
to be used as a vowel in addition to the vowels that the language already uses; insertion will replace an existing vowel at the start of a word with a probability ofchance
, so chance should be low (0.2 at most) unless you want the newly-inserted vowel to be likely to start every word of some sentences.static FakeLanguageGen.Modifier
insertVowel(String insertion, double chance)
Adds the potential for the Stringinsertion
to be used as a vowel in addition to the vowels that the language already uses; insertion will replace an existing vowel (at any point in a word that had a vowel generated) with a probability ofchance
, so chance should be low (0.1 at most) unless you want the newly-inserted vowel to be likely to be present in every word of some sentences.StringBuilder
modify(IRNG rng, StringBuilder sb)
static FakeLanguageGen.Modifier
replacementTable(String... pairs)
Creates a Modifier that will replace the (n*2)th String in pairs with the (n*2+1)th value in pairs.static FakeLanguageGen.Modifier
replacementTable(OrderedMap<String,String> map)
Creates a Modifier that will replace the nth String key in map with the nth value.String
serializeToString()
String
toString()
-
Field Details
-
alterations
-
LISP
For a character who always pronounces 's', 'ss', and 'sh' as 'th'. -
HISS
For a character who always lengthens 's' and 'z' sounds not starting a word. -
STUTTER
For a character who has a 20% chance to repeat a starting consonant or vowel. -
DOUBLE_VOWELS
For a language that has a 40% chance to repeat a single Latin vowel (a, e, o, or a variant on one of them like å or ö, but not merged letters like æ and œ). -
DOUBLE_CONSONANTS
For a language that has a 50% chance to repeat a single consonant. -
NO_DOUBLES
For a language that never repeats the same letter twice in a row. -
SIMPLIFY_NORSE
Removes accented letters and the two non-English consonants from text generated withFakeLanguageGen.NORSE
. Replaces á, é, í, ý, ó, æ, ú, and ö with a, e, i, y, o, ae, and ou. In some instances, replaces j with y. Replaces ð and þ with th and th, except for when preceded by s (then it replaces sð or sþ with st or st) or when the start of a word is fð or fþ, where it replaces with fr or fr. -
LIGATURES
Simple changes to merge "ae" into "æ", "oe" into "œ", and any of "aé", "áe", or "áé" into "ǽ". -
GENERAL_CLEANUP
Some changes that can be applied when sanity checks (which force re-generating a new word) aren't appropriate for fixing a word that isn't pronounceable. -
REDUCE_ACCENTS
Replaces any characters this can produce that aren't in ASCII or Latin-1 with Latin-script stand-ins; this will often use accented characters, but will only use those present in Latin-1 (which many fonts support).
The rationale for this Modifier is to allow users of FakeLanguageGen who don't display with the wide-ranging fonts in the display module to still be able to display something reasonable for generated text.
-
-
Constructor Details
-
Method Details
-
modify
-
charReplacementTable
Creates a Modifier that will replace the nth char in initial with the nth char in change. Expects initial and change to be the same length, but will use the lesser length if they are not equal-length. Because of the state of the text at the time modifiers are run, only lower-case letters need to be searched for.- Parameters:
initial
- a String containing lower-case letters or other symbols to be swapped out of a textchange
- a String containing characters that will replace occurrences of characters in initial- Returns:
- a Modifier that can be added to a FakeLanguageGen with its addModifiers() method
-
replacementTable
Creates a Modifier that will replace the nth String key in map with the nth value. Because of the state of the text at the time modifiers are run, only lower-case letters need to be searched for. This overload of replacementTable allows full regex pattern strings as keys and replacement syntax, such as searching for "([aeiou])\\1+" to find repeated occurrences of the same vowel, and "$1" in this example to replace the repeated section with only the first vowel. The ordering of map matters if a later key contains an earlier key (the earlier one will be replaced first, possibly making the later key not match), or if an earlier replacement causes a later one to become valid.- Parameters:
map
- containing String keys to replace and String values to use instead; replacements happen in order- Returns:
- a Modifier that can be added to a FakeLanguageGen with its addModifiers() method
-
replacementTable
Creates a Modifier that will replace the (n*2)th String in pairs with the (n*2+1)th value in pairs. Because of the state of the text at the time modifiers are run, only lower-case letters need to be searched for. This overload of replacementTable allows full regex syntax for search and replacement Strings, such as searching for "([aeiou])\\1+" to find repeated occurrences of the same vowel, and "$1" in this example to replace the repeated section with only the first vowel. The ordering of pairs matters if a later search contains an earlier search (the earlier one will be replaced first, possibly making the later search not match), or if an earlier replacement causes a later one to become valid.- Parameters:
pairs
- array or vararg of alternating Strings to search for and Strings to replace with; replacements happen in order- Returns:
- a Modifier that can be added to a FakeLanguageGen with its addModifiers() method
-
insertVowel
Adds the potential for the Stringinsertion
to be used as a vowel in addition to the vowels that the language already uses; insertion will replace an existing vowel (at any point in a word that had a vowel generated) with a probability ofchance
, so chance should be low (0.1 at most) unless you want the newly-inserted vowel to be likely to be present in every word of some sentences.- Parameters:
insertion
- the String to use as an additional vowelchance
- the chance for a vowel cluster to be replaced with insertion; normally 0.1 or less- Returns:
- a Modifier that can be added to a FakeLanguageGen with its addModifiers() method
-
insertConsonant
Adds the potential for the Stringinsertion
to be used as a consonant in addition to the consonants that the language already uses; insertion will replace an existing consonant (at any point in a word that had a consonant generated) with a probability ofchance
, so chance should be low (0.1 at most) unless you want the newly-inserted consonant to be likely to be present in every word of some sentences.- Parameters:
insertion
- the String to use as an additional consonantchance
- the chance for a consonant cluster to be replaced with insertion; normally 0.1 or less- Returns:
- a Modifier that can be added to a FakeLanguageGen with its addModifiers() method
-
insertOpeningVowel
Adds the potential for the Stringinsertion
to be used as a vowel in addition to the vowels that the language already uses; insertion will replace an existing vowel at the start of a word with a probability ofchance
, so chance should be low (0.2 at most) unless you want the newly-inserted vowel to be likely to start every word of some sentences. Not all languages can start words with vowels, or do that very rarely, so this might not do anything.- Parameters:
insertion
- the String to use as an additional opening vowelchance
- the chance for a vowel cluster at the start of a word to be replaced with insertion; normally 0.2 or less- Returns:
- a Modifier that can be added to a FakeLanguageGen with its addModifiers() method
-
insertOpeningConsonant
Adds the potential for the Stringinsertion
to be used as a consonant in addition to the consonants that the language already uses; insertion will replace an existing consonant at the start of a word with a probability ofchance
, so chance should be low (0.2 at most) unless you want the newly-inserted consonant to be likely to start every word of some sentences. Not all languages can start words with consonants, or do that very rarely, so this might not do anything.- Parameters:
insertion
- the String to use as an additional opening consonantchance
- the chance for a consonant cluster at the start of a word to be replaced with insertion; normally 0.2 or less- Returns:
- a Modifier that can be added to a FakeLanguageGen with its addModifiers() method
-
insertClosingVowel
Adds the potential for the Stringinsertion
to be used as a vowel in addition to the vowels that the language already uses; insertion will replace an existing vowel at the end of a word with a probability ofchance
, so chance should be low (0.2 at most) unless you want the newly-inserted vowel to be likely to end every word of some sentences. Not all languages can end words with vowels, or do that very rarely, so this might not do anything.- Parameters:
insertion
- the String to use as an additional closing vowelchance
- the chance for a vowel cluster at the end of a word to be replaced with insertion; normally 0.2 or less- Returns:
- a Modifier that can be added to a FakeLanguageGen with its addModifiers() method
-
insertClosingConsonant
Adds the potential for the Stringinsertion
to be used as a consonant in addition to the consonants that the language already uses; insertion will replace an existing consonant at the end of a word with a probability ofchance
, so chance should be low (0.2 at most) unless you want the newly-inserted consonant to be likely to end every word of some sentences. Not all languages can end words with consonants, or do that very rarely, so this might not do anything.- Parameters:
insertion
- the String to use as an additional closing consonantchance
- the chance for a consonant cluster at the end of a word to be replaced with insertion; normally 0.2 or less- Returns:
- a Modifier that can be added to a FakeLanguageGen with its addModifiers() method
-
equals
-
hashCode
-
toString
-
serializeToString
-
deserializeFromString
-