From c94b15971bc27f5a8663821e71dfdcc8be9d32a1 Mon Sep 17 00:00:00 2001 From: not-nocturnal Date: Sun, 26 May 2024 14:06:56 +0100 Subject: [PATCH 1/2] re-add 0.6.x BoP sub-biome generation --- .../customGenLayer/GenLayerSubBiome.java | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) 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]); + } + } } } From 0ddbdf46b5a9376336cd5508ff32eebf2bcab069 Mon Sep 17 00:00:00 2001 From: not-nocturnal Date: Sun, 26 May 2024 14:07:21 +0100 Subject: [PATCH 2/2] prevent BoP sub-biome generation in deep ocean --- .../climateControl/biomeSettings/BoPSubBiomeReplacer.java | 5 +++++ 1 file changed, 5 insertions(+) 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;