From cd09802a37097694dbc45a364f558fce0e4c1ce5 Mon Sep 17 00:00:00 2001 From: Adubbz Date: Tue, 14 Jan 2014 19:33:34 +1100 Subject: [PATCH] Added an attempt at making the beach the only biome that can be spawned on, will have to revisit it --- .../biomesoplenty/common/core/BOPBiomes.java | 49 ++++++++++++++----- 1 file changed, 38 insertions(+), 11 deletions(-) diff --git a/src/main/java/biomesoplenty/common/core/BOPBiomes.java b/src/main/java/biomesoplenty/common/core/BOPBiomes.java index 774217aee..7f8eea586 100644 --- a/src/main/java/biomesoplenty/common/core/BOPBiomes.java +++ b/src/main/java/biomesoplenty/common/core/BOPBiomes.java @@ -1,6 +1,13 @@ package biomesoplenty.common.core; +import static biomesoplenty.api.BOPBiomeHelper.get; + +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.text.WordUtils; + import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.biome.WorldChunkManager; +import net.minecraftforge.common.BiomeManager; import biomesoplenty.api.BOPBiomeHelper; import biomesoplenty.api.BOPBiomeHelper.BOPBiomeListEntry; import biomesoplenty.api.BOPBiomeHelper.BOPBiomeTemperatureType; @@ -76,6 +83,7 @@ public class BOPBiomes { registerBiomes(); useOnlyBiome(); + addSpawnBiomes(); } private static void registerBiomes() @@ -165,16 +173,13 @@ public class BOPBiomes registerBiome(new BOPBiomeListEntry(new BiomeGenWoodland(BOPConfigurationIDs.woodlandID).setBiomeName("Woodland"), BOPBiomeTemperatureType.WARM)); } - private static void useOnlyBiome() + private static void addSpawnBiomes() { - if (onlyBiome != null) - { - for (BOPBiomeTemperatureType temperatureType : BOPBiomeHelper.BOPBiomeTemperatureType.values()) - { - BOPBiomeHelper.getCorrespondingTemperatureTypeList(temperatureType).clear(); - addBiomeToList(new BOPBiomeListEntry(onlyBiome, temperatureType)); - } - } + //TODO: Spawn only on beaches. + + clearAllSpawnBiomes(); + + addSpawnBiome(BiomeGenBase.beach); } public static void registerOnlyBiome(BOPBiomeListEntry biome) @@ -184,12 +189,34 @@ public class BOPBiomes public static void registerBiome(BOPBiomeListEntry biome) { - BOPBiomeHelper.registerBiome(biome.biome, biome.biome.biomeName); + BOPBiomeHelper.registerBiome(biome.biome, StringUtils.remove(StringUtils.uncapitalize(WordUtils.capitalize(biome.biome.biomeName)), " ")); addBiomeToList(biome); } public static void addBiomeToList(BOPBiomeListEntry biome) - { + { BOPBiomeHelper.getCorrespondingTemperatureTypeList(biome.temperatureType).add(biome.biome); } + + public static void addSpawnBiome(BiomeGenBase biome) + { + BiomeManager.addSpawnBiome(biome); + } + + public static void clearAllSpawnBiomes() + { + WorldChunkManager.allowedBiomes.clear(); + } + + private static void useOnlyBiome() + { + if (onlyBiome != null) + { + for (BOPBiomeTemperatureType temperatureType : BOPBiomeHelper.BOPBiomeTemperatureType.values()) + { + BOPBiomeHelper.getCorrespondingTemperatureTypeList(temperatureType).clear(); + addBiomeToList(new BOPBiomeListEntry(onlyBiome, temperatureType)); + } + } + } }