I started adding support for climate. Instead of just querying a single noise value for the height and then deciding on the Tile
to use,
I now use another noise with larger scale for the temperature as well as further reducing its value near the poles. Depending on scale and temperatur a fitting Tile
is then chosen.
...
let t = self.temperature_at(pos);
let h = self.height_at(pos);
if h < 0.05 {
if t < 0.0 {
Some(Tile::Ice)
} else {
Some(Tile::Water)
}
} else if h < 0.1 {
if t < 0.0 {
Some(Tile::Snow)
} else {
Some(Tile::Sand)
}
} else if h < 0.5 {
if t < 0.0 {
Some(Tile::Snow)
} else {
Some(Tile::Ground)
}
...
I also added some more Tile
s. Images of the new Tile
s and the effect of temperature or climate: