mirror of
https://gitlab.com/veloren/veloren.git
synced 2024-08-30 18:12:32 +00:00
create fn generate_biome in namegen
This commit is contained in:
parent
dd612a9473
commit
d5f0ee2fc5
@ -548,7 +548,7 @@ impl Civs {
|
||||
let size_parameter = ((chords[2] + chords[3]) + (chords[0] + chords[1]) / 4) as u32;
|
||||
let lake = PointOfInterest {
|
||||
name: {
|
||||
let name = NameGen::location(rng).generate();
|
||||
let name = NameGen::location(rng).generate_biome();
|
||||
if size_parameter > 30 {
|
||||
format!("{} Sea", name)
|
||||
} else if (water_alt - alt) < 30 {
|
||||
|
@ -49,4 +49,38 @@ impl<'a, R: Rng> NameGen<'a, R> {
|
||||
.map(|(i, c)| if i == 0 { c.to_ascii_uppercase() } else { c })
|
||||
.collect()
|
||||
}
|
||||
|
||||
pub fn generate_biome(self) -> String {
|
||||
let cons = vec![
|
||||
"d", "f", "ph", "r", "st", "t", "s", "p", "sh", "th", "br", "tr", "m", "k", "st", "w",
|
||||
"y", "cr", "fr", "dr", "pl", "wr", "sn", "g", "qu", "l",
|
||||
];
|
||||
let mut start = cons.clone();
|
||||
start.extend(vec![
|
||||
"cr", "thr", "str", "br", "iv", "est", "ost", "ing", "kr", "in", "on", "tr", "tw",
|
||||
"wh", "eld", "ar", "or", "ear", "irr", "mi", "en", "ed", "et", "ow", "fr", "shr", "wr",
|
||||
"gr", "pr",
|
||||
]);
|
||||
let mut middle = cons.clone();
|
||||
middle.extend(vec!["tt"]);
|
||||
let vowel = vec!["o", "e", "a", "i", "u", "au", "ee", "ow", "ay", "ey", "oe"];
|
||||
let end = vec![
|
||||
"a", "ia", "ium", "ist", "en", "on", "og", "end", "ind", "ock", "een", "edge", "ed",
|
||||
"est", "ean", "ead", "eon", "ow", "in", "on", "id", "ir", "or", "in", "en",
|
||||
];
|
||||
|
||||
let mut name = String::new();
|
||||
|
||||
name += start.choose(self.rng).unwrap();
|
||||
for _ in 0..self.approx_syllables.saturating_sub(2) {
|
||||
name += vowel.choose(self.rng).unwrap();
|
||||
name += middle.choose(self.rng).unwrap();
|
||||
}
|
||||
name += end.choose(self.rng).unwrap();
|
||||
|
||||
name.chars()
|
||||
.enumerate()
|
||||
.map(|(i, c)| if i == 0 { c.to_ascii_uppercase() } else { c })
|
||||
.collect()
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user