mirror of
https://github.com/smartcmd/MinecraftConsoles.git
synced 2026-04-27 01:17:19 +00:00
110 lines
3.5 KiB
C#
110 lines
3.5 KiB
C#
namespace Minecraft.Server.FourKit.Block;
|
|
|
|
|
|
public enum Biome
|
|
{
|
|
OCEAN = 0,
|
|
PLAINS = 1,
|
|
DESERT = 2,
|
|
EXTREME_HILLS = 3,
|
|
FOREST = 4,
|
|
TAIGA = 5,
|
|
SWAMPLAND = 6,
|
|
RIVER = 7,
|
|
HELL = 8,
|
|
SKY = 9,
|
|
FROZEN_OCEAN = 10,
|
|
FROZEN_RIVER = 11,
|
|
ICE_PLAINS = 12,
|
|
ICE_MOUNTAINS = 13,
|
|
MUSHROOM_ISLAND = 14,
|
|
MUSHROOM_SHORE = 15,
|
|
BEACH = 16,
|
|
DESERT_HILLS = 17,
|
|
FOREST_HILLS = 18,
|
|
TAIGA_HILLS = 19,
|
|
SMALL_MOUNTAINS = 20,
|
|
JUNGLE = 21,
|
|
JUNGLE_HILLS = 22,
|
|
}
|
|
|
|
|
|
// more for internal
|
|
// eliminates unnecessary overhead
|
|
internal static class BiomeHelper
|
|
{
|
|
private static readonly double[] _temperatures = new double[23];
|
|
private static readonly double[] _rainfalls = new double[23];
|
|
|
|
static BiomeHelper()
|
|
{
|
|
_temperatures[(int)Biome.OCEAN] = 0.5;
|
|
_temperatures[(int)Biome.PLAINS] = 0.8;
|
|
_temperatures[(int)Biome.DESERT] = 2.0;
|
|
_temperatures[(int)Biome.EXTREME_HILLS] = 0.2;
|
|
_temperatures[(int)Biome.FOREST] = 0.7;
|
|
_temperatures[(int)Biome.TAIGA] = 0.05;
|
|
_temperatures[(int)Biome.SWAMPLAND] = 0.8;
|
|
_temperatures[(int)Biome.RIVER] = 0.5;
|
|
_temperatures[(int)Biome.HELL] = 2.0;
|
|
_temperatures[(int)Biome.SKY] = 0.5;
|
|
_temperatures[(int)Biome.FROZEN_OCEAN] = 0.0;
|
|
_temperatures[(int)Biome.FROZEN_RIVER] = 0.0;
|
|
_temperatures[(int)Biome.ICE_PLAINS] = 0.0;
|
|
_temperatures[(int)Biome.ICE_MOUNTAINS] = 0.0;
|
|
_temperatures[(int)Biome.MUSHROOM_ISLAND] = 0.9;
|
|
_temperatures[(int)Biome.MUSHROOM_SHORE] = 0.9;
|
|
_temperatures[(int)Biome.BEACH] = 0.8;
|
|
_temperatures[(int)Biome.DESERT_HILLS] = 2.0;
|
|
_temperatures[(int)Biome.FOREST_HILLS] = 0.7;
|
|
_temperatures[(int)Biome.TAIGA_HILLS] = 0.05;
|
|
_temperatures[(int)Biome.SMALL_MOUNTAINS] = 0.2;
|
|
_temperatures[(int)Biome.JUNGLE] = 1.2;
|
|
_temperatures[(int)Biome.JUNGLE_HILLS] = 1.2;
|
|
|
|
_rainfalls[(int)Biome.OCEAN] = 0.5;
|
|
_rainfalls[(int)Biome.PLAINS] = 0.4;
|
|
_rainfalls[(int)Biome.DESERT] = 0.0;
|
|
_rainfalls[(int)Biome.EXTREME_HILLS] = 0.3;
|
|
_rainfalls[(int)Biome.FOREST] = 0.8;
|
|
_rainfalls[(int)Biome.TAIGA] = 0.8;
|
|
_rainfalls[(int)Biome.SWAMPLAND] = 0.9;
|
|
_rainfalls[(int)Biome.RIVER] = 0.5;
|
|
_rainfalls[(int)Biome.HELL] = 0.0;
|
|
_rainfalls[(int)Biome.SKY] = 0.5;
|
|
_rainfalls[(int)Biome.FROZEN_OCEAN] = 0.5;
|
|
_rainfalls[(int)Biome.FROZEN_RIVER] = 0.5;
|
|
_rainfalls[(int)Biome.ICE_PLAINS] = 0.5;
|
|
_rainfalls[(int)Biome.ICE_MOUNTAINS] = 0.5;
|
|
_rainfalls[(int)Biome.MUSHROOM_ISLAND] = 1.0;
|
|
_rainfalls[(int)Biome.MUSHROOM_SHORE] = 1.0;
|
|
_rainfalls[(int)Biome.BEACH] = 0.4;
|
|
_rainfalls[(int)Biome.DESERT_HILLS] = 0.0;
|
|
_rainfalls[(int)Biome.FOREST_HILLS] = 0.8;
|
|
_rainfalls[(int)Biome.TAIGA_HILLS] = 0.8;
|
|
_rainfalls[(int)Biome.SMALL_MOUNTAINS] = 0.3;
|
|
_rainfalls[(int)Biome.JUNGLE] = 0.9;
|
|
_rainfalls[(int)Biome.JUNGLE_HILLS] = 0.9;
|
|
}
|
|
|
|
public static double getTemperature(this Biome biome)
|
|
{
|
|
int id = (int)biome;
|
|
if (id >= 0 && id < _temperatures.Length) return _temperatures[id];
|
|
return 0.5;
|
|
}
|
|
|
|
public static double getRainfall(this Biome biome)
|
|
{
|
|
int id = (int)biome;
|
|
if (id >= 0 && id < _rainfalls.Length) return _rainfalls[id];
|
|
return 0.5;
|
|
}
|
|
|
|
public static Biome fromId(int id)
|
|
{
|
|
if (Enum.IsDefined(typeof(Biome), id)) return (Biome)id;
|
|
return Biome.PLAINS;
|
|
}
|
|
}
|