public static class WorldMapGenerator.DetailedBiomeMapper extends java.lang.Object implements WorldMapGenerator.BiomeMapper
makeBiomes(WorldMapGenerator)
with a WorldMapGenerator that has already produced at least one world map.
3, get biome codes from the biomeCodeData
field, where a code is an int that can be used with the
extract methods in this class to get various information from it (these are extractBiomeA(int)
,
extractBiomeB(int)
, extractPartA(int)
, extractPartB(int)
, and
extractMixAmount(int)
). You can get predefined names for biomes using the extractBiome methods (these
names can be changed in biomeTable
), or raw indices into some (usually 61-element) collection or array
with the extractPart methods. The extractMixAmount() method gets a float that is the amount by which biome B
affects biome A; if this is higher than 0.5, then biome B is the "dominant" biome in the area.Modifier and Type | Field and Description |
---|---|
int[][] |
biomeCodeData
The heat codes for the analyzed map, from 0 to 5 inclusive, with 0 coldest and 5 hottest.
|
static java.lang.String[] |
biomeTable
The default biome table to use with parts of biome codes from
biomeCodeData . |
static double |
colderValueLower |
static double |
colderValueUpper |
static double |
coldestValueLower |
static double |
coldestValueUpper |
static double |
coldValueLower |
static double |
coldValueUpper |
static double |
drierValueLower |
static double |
drierValueUpper |
static double |
driestValueLower |
static double |
driestValueUpper |
static double |
dryValueLower |
static double |
dryValueUpper |
int[][] |
heatCodeData
The heat codes for the analyzed map, from 0 to 5 inclusive, with 0 coldest and 5 hottest.
|
int[][] |
moistureCodeData
The heat codes for the analyzed map, from 0 to 5 inclusive, with 0 coldest and 5 hottest.
|
static double |
warmerValueLower |
static double |
warmerValueUpper |
static double |
warmestValueLower |
static double |
warmestValueUpper |
static double |
warmValueLower |
static double |
warmValueUpper |
static double |
wetterValueLower |
static double |
wetterValueUpper |
static double |
wettestValueLower |
static double |
wettestValueUpper |
static double |
wetValueLower |
static double |
wetValueUpper |
Constructor and Description |
---|
DetailedBiomeMapper()
Simple constructor; pretty much does nothing.
|
Modifier and Type | Method and Description |
---|---|
java.lang.String |
extractBiomeA(int biomeCode)
Gets a String from
biomeTable that names the appropriate biome in part A of the given biome code. |
java.lang.String |
extractBiomeB(int biomeCode)
Gets a String from
biomeTable that names the appropriate biome in part B of the given biome code. |
float |
extractMixAmount(int biomeCode)
This gets the portion of a biome code that represents the amount of mixing between two biomes.
|
int |
extractPartA(int biomeCode)
Gets the int stored in part A of the given biome code, which can be used as an index into other collections.
|
int |
extractPartB(int biomeCode)
Gets the int stored in part B of the given biome code, which can be used as an index into other collections.
|
int |
getBiomeCode(int x,
int y)
Gets the biome code for the dominant biome at a given x,y position.
|
java.lang.String[] |
getBiomeNameTable()
Gets a String array where biome codes can be used as indices to look up a name for the biome they refer to.
|
int |
getHeatCode(int x,
int y)
Gets a heat code for a given x,y point on a map, usually as an int between 0 and 5 inclusive.
|
int |
getMoistureCode(int x,
int y)
Gets a moisture code for a given x,y point on a map, usually as an int between 0 and 5 inclusive.
|
void |
makeBiomes(WorldMapGenerator world)
Analyzes the last world produced by the given WorldMapGenerator and uses all of its generated information to
assign biome codes for each cell (along with heat and moisture codes).
|
public int[][] heatCodeData
public int[][] moistureCodeData
public int[][] biomeCodeData
public static final double coldestValueLower
public static final double coldestValueUpper
public static final double colderValueLower
public static final double colderValueUpper
public static final double coldValueLower
public static final double coldValueUpper
public static final double warmValueLower
public static final double warmValueUpper
public static final double warmerValueLower
public static final double warmerValueUpper
public static final double warmestValueLower
public static final double warmestValueUpper
public static final double driestValueLower
public static final double driestValueUpper
public static final double drierValueLower
public static final double drierValueUpper
public static final double dryValueLower
public static final double dryValueUpper
public static final double wetValueLower
public static final double wetValueUpper
public static final double wetterValueLower
public static final double wetterValueUpper
public static final double wettestValueLower
public static final double wettestValueUpper
public static final java.lang.String[] biomeTable
biomeCodeData
. Biomes are assigned by
heat and moisture for the first 36 of 61 elements (coldest to warmest for each group of 6, with the first
group as the dryest and the last group the wettest), then the next 6 are for coastlines (coldest to warmest),
then rivers (coldest to warmest), then lakes (coldest to warmest). The last is reserved for empty space.
WorldMapGenerator.SimpleBiomeMapper
, you cannot use a biome code directly from biomeCodeData as an index
into this in almost any case; you should pass the biome code to one of the extract methods.
extractBiomeA(int)
or extractBiomeB(int)
will work if you want a biome name, or
extractPartA(int)
or extractPartB(int)
should be used if you want a non-coded int that
represents one of the biomes' indices into something like this. You can also get the amount by which biome B
is affecting biome A with extractMixAmount(int)
.public DetailedBiomeMapper()
makeBiomes(WorldMapGenerator)
before
using fields like biomeCodeData
.public int getBiomeCode(int x, int y)
biomeCodeData
, calling extractMixAmount(int)
on that raw biome code, and
chooosing whether to call extractPartA(int)
or extractPartB(int)
based on whether the mix
amount is lower than 0.5 (yielding part A) or higher (yielding part B).getBiomeCode
in interface WorldMapGenerator.BiomeMapper
x
- the x-coordinate on the mapy
- the y-coordinate on the mappublic int getHeatCode(int x, int y)
WorldMapGenerator.BiomeMapper
getHeatCode
in interface WorldMapGenerator.BiomeMapper
x
- the x-coordinate on the mapy
- the y-coordinate on the mappublic int getMoistureCode(int x, int y)
WorldMapGenerator.BiomeMapper
getMoistureCode
in interface WorldMapGenerator.BiomeMapper
x
- the x-coordinate on the mapy
- the y-coordinate on the mappublic java.lang.String[] getBiomeNameTable()
getBiomeCode(int, int)
.
This method returns a direct reference to biomeTable
, so modifying the returned array is discouraged
(you should implement WorldMapGenerator.BiomeMapper
using this class as a basis if you want to change its size).getBiomeNameTable
in interface WorldMapGenerator.BiomeMapper
biomeTable
, a String array containing names of biomespublic int extractPartA(int biomeCode)
biomeCode
- a biome code that was probably received from biomeCodeData
public java.lang.String extractBiomeA(int biomeCode)
biomeTable
that names the appropriate biome in part A of the given biome code.biomeCode
- a biome code that was probably received from biomeCodeData
public int extractPartB(int biomeCode)
biomeCode
- a biome code that was probably received from biomeCodeData
public java.lang.String extractBiomeB(int biomeCode)
biomeTable
that names the appropriate biome in part B of the given biome code.biomeCode
- a biome code that was probably received from biomeCodeData
public float extractMixAmount(int biomeCode)
biomeCodeData
field, and aren't very usable on their own
without calling methods like this, extractBiomeA(int)
, and extractBiomeB(int)
. This returns
a float between 0.0f (inclusive) and 1.0f (exclusive), with 0.0f meaning biome B has no effect on an area and
biome A is the only one used, 0.5f meaning biome A and biome B have equal effect, and 0.75f meaning biome B
has most of the effect, three-fourths of the area, and biome A has less, one-fourth of the area.biomeCode
- a biome code that was probably received from biomeCodeData
public void makeBiomes(WorldMapGenerator world)
biomeCodeData
and used with methods in this class like extractBiomeA(int)
,
extractBiomeB(int)
, and extractMixAmount(int)
to find the two dominant biomes in an area,
called biome A and biome B, and the mix amount, for finding how much biome B affects biome A.makeBiomes
in interface WorldMapGenerator.BiomeMapper
world
- a WorldMapGenerator that should have generated at least one map; it may be at any zoomCopyright © Eben Howard 2012–2022. All rights reserved.