package net.minecraftforge.common; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; import java.util.List; import net.minecraft.util.WeightedRandom; import net.minecraft.world.WorldType; import net.minecraft.world.biome.BiomeGenBase; import net.minecraft.world.gen.structure.MapGenVillage; import net.minecraft.world.biome.WorldChunkManager; public class BiomeManager { public static List desertBiomes = new ArrayList(); public static List warmBiomes = new ArrayList(); public static List coolBiomes = new ArrayList(); public static List icyBiomes = new ArrayList(); public static List oceanBiomes = new ArrayList(); public static ArrayList strongHoldBiomes = new ArrayList(); public static ArrayList strongHoldBiomesBlackList = new ArrayList(); static { warmBiomes.add(new BiomeEntry(BiomeGenBase.forest, 10)); warmBiomes.add(new BiomeEntry(BiomeGenBase.roofedForest, 10)); warmBiomes.add(new BiomeEntry(BiomeGenBase.extremeHills, 10)); warmBiomes.add(new BiomeEntry(BiomeGenBase.plains, 10)); warmBiomes.add(new BiomeEntry(BiomeGenBase.birchForest, 10)); warmBiomes.add(new BiomeEntry(BiomeGenBase.swampland, 10)); coolBiomes.add(new BiomeEntry(BiomeGenBase.forest, 10)); coolBiomes.add(new BiomeEntry(BiomeGenBase.extremeHills, 10)); coolBiomes.add(new BiomeEntry(BiomeGenBase.taiga, 10)); coolBiomes.add(new BiomeEntry(BiomeGenBase.plains, 10)); icyBiomes.add(new BiomeEntry(BiomeGenBase.icePlains, 30)); icyBiomes.add(new BiomeEntry(BiomeGenBase.coldTaiga, 10)); oceanBiomes.add(BiomeGenBase.ocean); oceanBiomes.add(BiomeGenBase.deepOcean); oceanBiomes.add(BiomeGenBase.frozenOcean); } @SuppressWarnings("unchecked") public static void addVillageBiome(BiomeGenBase biome, boolean canSpawn) { if (!MapGenVillage.villageSpawnBiomes.contains(biome)) { ArrayList biomes = new ArrayList(MapGenVillage.villageSpawnBiomes); biomes.add(biome); MapGenVillage.villageSpawnBiomes = biomes; } } @SuppressWarnings("unchecked") public static void removeVillageBiome(BiomeGenBase biome) { if (MapGenVillage.villageSpawnBiomes.contains(biome)) { ArrayList biomes = new ArrayList(MapGenVillage.villageSpawnBiomes); biomes.remove(biome); MapGenVillage.villageSpawnBiomes = biomes; } } public static void addStrongholdBiome(BiomeGenBase biome) { if (!strongHoldBiomes.contains(biome)) { strongHoldBiomes.add(biome); } } public static void removeStrongholdBiome(BiomeGenBase biome) { if (!strongHoldBiomesBlackList.contains(biome)) { strongHoldBiomesBlackList.add(biome); } } public static void addSpawnBiome(BiomeGenBase biome) { if (!WorldChunkManager.allowedBiomes.contains(biome)) { WorldChunkManager.allowedBiomes.add(biome); } } public static void removeSpawnBiome(BiomeGenBase biome) { if (WorldChunkManager.allowedBiomes.contains(biome)) { WorldChunkManager.allowedBiomes.remove(biome); } } public static class BiomeEntry extends WeightedRandom.Item { public final BiomeGenBase biome; public BiomeEntry(BiomeGenBase biome, int weight) { super(weight); this.biome = biome; } } }