package net.glowstone.constants; import net.glowstone.GlowServer; import org.bukkit.block.Biome; import java.text.MessageFormat; import java.util.Arrays; import static com.google.common.base.Preconditions.checkNotNull; import static org.bukkit.block.Biome.*; /** * Mappings for Biome id values. */ public final class GlowBiome { private static final int[] ids = new int[values().length]; private static final Biome[] biomes = new Biome[256]; static { Arrays.fill(ids, -1); set(0, OCEAN); set(1, PLAINS); set(2, DESERT); set(3, EXTREME_HILLS); set(4, FOREST); set(5, TAIGA); set(6, SWAMPLAND); set(7, RIVER); set(8, HELL); set(9, SKY); set(10, FROZEN_OCEAN); set(11, FROZEN_RIVER); set(12, ICE_FLATS); set(13, ICE_MOUNTAINS); set(14, MUSHROOM_ISLAND); set(15, MUSHROOM_ISLAND_SHORE); set(16, BEACHES); set(17, DESERT_HILLS); set(18, FOREST_HILLS); set(19, TAIGA_HILLS); set(20, SMALLER_EXTREME_HILLS); set(21, JUNGLE); set(22, JUNGLE_HILLS); set(23, JUNGLE_EDGE); set(24, DEEP_OCEAN); set(25, STONE_BEACH); set(26, COLD_BEACH); set(27, BIRCH_FOREST); set(28, BIRCH_FOREST_HILLS); set(29, ROOFED_FOREST); set(30, TAIGA_COLD); set(31, TAIGA_COLD_HILLS); set(32, REDWOOD_TAIGA); set(33, REDWOOD_TAIGA_HILLS); set(34, EXTREME_HILLS_WITH_TREES); set(35, SAVANNA); set(36, SAVANNA_ROCK); set(37, MESA); set(38, MESA_ROCK); set(39, MESA_CLEAR_ROCK); set(127, VOID); set(129, MUTATED_PLAINS); set(130, MUTATED_DESERT); set(131, MUTATED_EXTREME_HILLS); set(132, MUTATED_FOREST); set(133, MUTATED_TAIGA); set(134, MUTATED_SWAMPLAND); set(140, MUTATED_ICE_FLATS); set(149, MUTATED_JUNGLE); set(151, MUTATED_JUNGLE_EDGE); set(155, MUTATED_BIRCH_FOREST); set(156, MUTATED_BIRCH_FOREST_HILLS); set(157, MUTATED_ROOFED_FOREST); set(158, MUTATED_TAIGA_COLD); set(160, MUTATED_REDWOOD_TAIGA); set(161, MUTATED_REDWOOD_TAIGA_HILLS); set(162, MUTATED_EXTREME_HILLS_WITH_TREES); set(163, MUTATED_SAVANNA); set(164, MUTATED_SAVANNA_ROCK); set(165, MUTATED_MESA); set(166, MUTATED_MESA_ROCK); set(167, MUTATED_MESA_CLEAR_ROCK); } private GlowBiome() { } /** * Get the biome ID for a specified Biome. * * @param biome the Biome. * @return the biome id, or -1 */ public static int getId(Biome biome) { checkNotNull(biome, "Biome cannot be null"); return ids[biome.ordinal()]; } /** * Get the Biome for a specified id. * * @param id the id. * @return the Biome, or null */ public static Biome getBiome(int id) { if (id < biomes.length) { return biomes[id]; } else { GlowServer.logger.severe(MessageFormat.format("Unknown biome id: {0}!", id)); return null; } } private static void set(int id, Biome biome) { ids[biome.ordinal()] = id; biomes[id] = biome; } }