diff --git a/src/main/java/climateControl/biomeSettings/BoPSubBiomeReplacer.java b/src/main/java/climateControl/biomeSettings/BoPSubBiomeReplacer.java index 35ad88c..648d2c3 100644 --- a/src/main/java/climateControl/biomeSettings/BoPSubBiomeReplacer.java +++ b/src/main/java/climateControl/biomeSettings/BoPSubBiomeReplacer.java @@ -32,6 +32,11 @@ public BoPSubBiomeReplacer(IntRandomizer randomizer) { public int replacement(int currentBiomeId, IntRandomizer randomizer, int x, int z) { List currentSubBiomes = BOPBiomeManager.overworldSubBiomes[currentBiomeId]; + + if (currentBiomeId == 24) { // maybe make this be toggleable with a setting in future + currentSubBiomes = null; // prevents BoP sub-biomes generating in deep ocean + } + BOPSubBiome selectedSubBiome = currentSubBiomes != null ? (BOPSubBiome) currentSubBiomes.get(randomizer.nextInt(currentSubBiomes.size())).biome : null; diff --git a/src/main/java/climateControl/customGenLayer/GenLayerSubBiome.java b/src/main/java/climateControl/customGenLayer/GenLayerSubBiome.java index 9c68b59..13f2bc1 100644 --- a/src/main/java/climateControl/customGenLayer/GenLayerSubBiome.java +++ b/src/main/java/climateControl/customGenLayer/GenLayerSubBiome.java @@ -11,6 +11,8 @@ import net.minecraft.world.gen.layer.GenLayer; import net.minecraft.world.gen.layer.IntCache; +import climateControl.biomeSettings.BiomeReplacer; +import climateControl.biomeSettings.BoPSubBiomeReplacer; import climateControl.genLayerPack.GenLayerPack; import climateControl.generator.BiomeSwapper; import climateControl.generator.SubBiomeChooser; @@ -23,6 +25,7 @@ public class GenLayerSubBiome extends GenLayerPack { private GenLayer rivers; private final SubBiomeChooser subBiomeChooser; private final BiomeSwapper mBiomes; + private BiomeReplacer BoPSubBiomeReplacer; private IntRandomizer randomCallback = new IntRandomizer() { @@ -39,6 +42,15 @@ public GenLayerSubBiome(long p_i45479_1_, GenLayer biomes, GenLayer rivers, SubB this.subBiomeChooser = subBiomeChooser; this.mBiomes = mBiomes; this.initChunkSeed(0, 0); + try { + if (doBoP) { + BoPSubBiomeReplacer = new BoPSubBiomeReplacer(randomCallback); + logger.info("Bop set up"); + } + } catch (java.lang.NoClassDefFoundError e) { + BoPSubBiomeReplacer = null; + logger.info("no bop "); + } } /** @@ -110,6 +122,16 @@ public int[] getInts(int par1, int par2, int par3, int par4) { } } } + // now the GenLayerHills stuff is done so run BoP subbiome replacements if it's on + if (this.BoPSubBiomeReplacer != null) { + this.initChunkSeed((long) (j1 + par1), (long) (i1 + par2)); + int old = aint2[j1 + i1 * par3]; + aint2[j1 + i1 * par3] = BoPSubBiomeReplacer + .replacement(aint2[j1 + i1 * par3], randomCallback, j1 + par1, i1 + par2); + if (aint2[j1 + i1 * par3] != old) { + // logger.info("BoP subbiome :"+old + " to "+aint2[j1 + i1 * par3]); + } + } } }