Added enumerators for organizing biome information.
Currently unused.
This commit is contained in:
parent
9d77fe3bb6
commit
ce4a5899cc
@ -9,8 +9,151 @@ import org.bukkit.block.Biome;
|
|||||||
import org.bukkit.util.noise.SimplexOctaveGenerator;
|
import org.bukkit.util.noise.SimplexOctaveGenerator;
|
||||||
|
|
||||||
import ca.recrown.islandsurvivalcraft.utilities.GeneralUtilities;
|
import ca.recrown.islandsurvivalcraft.utilities.GeneralUtilities;
|
||||||
|
import ca.recrown.islandsurvivalcraft.world.TemperatureMap.TemperatureRegion;
|
||||||
|
|
||||||
public class BiomeMap {
|
public class BiomeMap {
|
||||||
|
public enum MainBiomes {
|
||||||
|
SNOWY_TUNDRA(0.0f, TemperatureRegion.SNOWY, ShoreBiomes.SNOWY_BEACH),
|
||||||
|
ICE_SPIKES(0.0f, TemperatureRegion.SNOWY, ShoreBiomes.SNOWY_BEACH),
|
||||||
|
SNOWY_TAIGA(-0.5f, TemperatureRegion.SNOWY, ShoreBiomes.SNOWY_BEACH),
|
||||||
|
SNOWY_TAIGA_MOUNTAINS(-0.5f, TemperatureRegion.SNOWY, ShoreBiomes.SNOWY_BEACH),
|
||||||
|
MOUNTAINS(0.2f, TemperatureRegion.COLD, ShoreBiomes.STONE_SHORE),
|
||||||
|
GRAVELLY_MOUNTAINS(0.2f, TemperatureRegion.COLD),
|
||||||
|
WOODED_MOUNTAINS(0.2f, TemperatureRegion.COLD, ShoreBiomes.STONE_SHORE),
|
||||||
|
MODIFIED_GRAVELLY_MOUNTAINS(0.2f, TemperatureRegion.COLD),
|
||||||
|
TAIGA(0.25f, TemperatureRegion.COLD),
|
||||||
|
TAIGA_MOUNTAINS(0.25f, TemperatureRegion.COLD),
|
||||||
|
GIANT_TREE_TAIGA(0.3f, TemperatureRegion.COLD),
|
||||||
|
GIANT_SPRUCE_TAIGA(0.25f, TemperatureRegion.COLD),
|
||||||
|
PLAINS(0.8f, TemperatureRegion.LUSH),
|
||||||
|
SUNFLOWER_PLAINS(0.8f, TemperatureRegion.LUSH),
|
||||||
|
FOREST(0.7f, TemperatureRegion.LUSH),
|
||||||
|
FLOWER_FOREST(0.7f, TemperatureRegion.LUSH),
|
||||||
|
BIRCH_FOREST(0.6f, TemperatureRegion.LUSH),
|
||||||
|
TALL_BIRCH_FOREST(0.7f, TemperatureRegion.LUSH),
|
||||||
|
DARK_FOREST(0.7f, TemperatureRegion.LUSH),
|
||||||
|
DARK_FOREST_HILLS(0.7f, TemperatureRegion.LUSH),
|
||||||
|
SWAMP(0.8f, TemperatureRegion.LUSH),
|
||||||
|
SWAMP_HILLS(0.8f, TemperatureRegion.LUSH),
|
||||||
|
JUNGLE(0.95f, TemperatureRegion.LUSH),
|
||||||
|
MODIFIED_JUNGLE(0.95f, TemperatureRegion.LUSH),
|
||||||
|
JUNGLE_EDGE(0.95f, TemperatureRegion.LUSH),
|
||||||
|
MODIFIED_JUNGLE_EDGE(0.95f, TemperatureRegion.LUSH),
|
||||||
|
BAMBOO_JUNGLE(0.95f, TemperatureRegion.LUSH),
|
||||||
|
MUSHROOM_FIELDS(0.9f, TemperatureRegion.LUSH, ShoreBiomes.MUSHROOM_SHORE),
|
||||||
|
DESERT(2.0f, TemperatureRegion.WARM),
|
||||||
|
SAVANNA(1.2f, TemperatureRegion.WARM),
|
||||||
|
SHATTERED_SAVANNA(1.1f, TemperatureRegion.WARM),
|
||||||
|
BADLANDS(2.0f, TemperatureRegion.WARM),
|
||||||
|
ERODED_BADLANDS(2.0f, TemperatureRegion.WARM),
|
||||||
|
WOODED_BADLANDS_PLATEAU(2.0f, TemperatureRegion.WARM),
|
||||||
|
MODIFIED_WOODED_BADLANDS_PLATEAU(2.0f, TemperatureRegion.WARM),
|
||||||
|
BADLANDS_PLATEAU(2.0f, TemperatureRegion.WARM),
|
||||||
|
SAVANNA_PLATEAU(1.0f, TemperatureRegion.WARM),
|
||||||
|
MODIFIED_BADLANDS_PLATEAU(2.0f, TemperatureRegion.WARM),
|
||||||
|
SHATTERED_SAVANNA_PLATEAU(1.0f, TemperatureRegion.WARM),
|
||||||
|
;
|
||||||
|
private final float temperature;
|
||||||
|
private final TemperatureRegion temperatureRegion;
|
||||||
|
private final ShoreBiomes[] preferredShores;
|
||||||
|
|
||||||
|
private MainBiomes(float temperature, TemperatureRegion temperatureRegion, ShoreBiomes... preferredShore) {
|
||||||
|
this.temperature = temperature;
|
||||||
|
this.preferredShores = preferredShore;
|
||||||
|
this.temperatureRegion = temperatureRegion;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the temperature
|
||||||
|
*/
|
||||||
|
public float getTemperature() {
|
||||||
|
return temperature;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the preferredShore
|
||||||
|
*/
|
||||||
|
public ShoreBiomes[] getPreferredShores() {
|
||||||
|
return preferredShores;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the temperatureRegion
|
||||||
|
*/
|
||||||
|
public TemperatureRegion getTemperatureRegion() {
|
||||||
|
return temperatureRegion;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum OceanBiomes {
|
||||||
|
WARM_OCEAN(0.5f, TemperatureRegion.WARM),
|
||||||
|
LUKEWARM_OCEAN(0.5f, TemperatureRegion.LUSH),
|
||||||
|
OCEAN(0.5f, TemperatureRegion.LUSH),
|
||||||
|
COLD_OCEAN(0.5f, TemperatureRegion.COLD),
|
||||||
|
FROZEN_OCEAN(0.0f, TemperatureRegion.SNOWY);
|
||||||
|
|
||||||
|
private final float temperature;
|
||||||
|
private final TemperatureRegion temperatureRegion;
|
||||||
|
|
||||||
|
private OceanBiomes(float temperature, TemperatureRegion temperatureRegion) {
|
||||||
|
this.temperature = temperature;
|
||||||
|
this.temperatureRegion = temperatureRegion;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the temperature
|
||||||
|
*/
|
||||||
|
public float getTemperature() {
|
||||||
|
return temperature;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the temperatureRegion
|
||||||
|
*/
|
||||||
|
public TemperatureRegion getTemperatureRegion() {
|
||||||
|
return temperatureRegion;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum ShoreBiomes {
|
||||||
|
BEACH(0.8f, TemperatureRegion.LUSH),
|
||||||
|
SNOWY_BEACH(0.05f, TemperatureRegion.SNOWY),
|
||||||
|
MUSHROOM_SHORE(0.05f, TemperatureRegion.LUSH, true),
|
||||||
|
STONE_SHORE(0.2f, TemperatureRegion.COLD);
|
||||||
|
|
||||||
|
private final float temperature;
|
||||||
|
private final TemperatureRegion temperatureRegion;
|
||||||
|
private final boolean special;
|
||||||
|
private ShoreBiomes(float temperature, TemperatureRegion associatedTemperatureRegion, boolean special) {
|
||||||
|
this.temperature = temperature;
|
||||||
|
this.temperatureRegion = associatedTemperatureRegion;
|
||||||
|
this.special = special;
|
||||||
|
}
|
||||||
|
private ShoreBiomes(float temperature, TemperatureRegion associatedTemperatureRegion) {
|
||||||
|
this(temperature, associatedTemperatureRegion, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the temperature
|
||||||
|
*/
|
||||||
|
public float getTemperature() {
|
||||||
|
return temperature;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the temperatureRegion
|
||||||
|
*/
|
||||||
|
public TemperatureRegion getTemperatureRegion() {
|
||||||
|
return temperatureRegion;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the special
|
||||||
|
*/
|
||||||
|
public boolean isSpecial() {
|
||||||
|
return special;
|
||||||
|
}
|
||||||
|
}
|
||||||
private final SimplexOctaveGenerator noise;
|
private final SimplexOctaveGenerator noise;
|
||||||
private final HashMap<Biome, Float> landBiomeTemperatures = new HashMap<>();
|
private final HashMap<Biome, Float> landBiomeTemperatures = new HashMap<>();
|
||||||
private volatile HashMap<Float, ArrayList<Biome>> temperaturesForLand = new HashMap<>();
|
private volatile HashMap<Float, ArrayList<Biome>> temperaturesForLand = new HashMap<>();
|
||||||
|
@ -8,6 +8,12 @@ import ca.recrown.islandsurvivalcraft.utilities.caching.Cache;
|
|||||||
import ca.recrown.islandsurvivalcraft.utilities.datatypes.Point2;
|
import ca.recrown.islandsurvivalcraft.utilities.datatypes.Point2;
|
||||||
|
|
||||||
public class TemperatureMap {
|
public class TemperatureMap {
|
||||||
|
public enum TemperatureRegion {
|
||||||
|
SNOWY,
|
||||||
|
COLD,
|
||||||
|
LUSH,
|
||||||
|
WARM,
|
||||||
|
}
|
||||||
private final Cache<Point2, Float> temperatureCache;
|
private final Cache<Point2, Float> temperatureCache;
|
||||||
private final double frequency = 0.5D;
|
private final double frequency = 0.5D;
|
||||||
private final double amplitude = 0.5D;
|
private final double amplitude = 0.5D;
|
||||||
|
Loading…
Reference in New Issue
Block a user