From 9cddcf1b75d946046cd67b41fcce5f653f0dfd65 Mon Sep 17 00:00:00 2001 From: Blue Staggo Date: Mon, 26 May 2025 14:43:19 +0100 Subject: [PATCH] Accurate Beta 1.8 biome gen --- .../settings/ModernBetaSettingsPresets.java | 2 +- .../fractal/layers/AddBetaLandLayer.java | 9 +++++---- .../fractal/layers/BaseZoomLayer.java | 19 +++++++++++-------- 3 files changed, 17 insertions(+), 13 deletions(-) diff --git a/common/src/main/java/mod/bluestaggo/modernerbeta/settings/ModernBetaSettingsPresets.java b/common/src/main/java/mod/bluestaggo/modernerbeta/settings/ModernBetaSettingsPresets.java index c317fde6..4464218d 100644 --- a/common/src/main/java/mod/bluestaggo/modernerbeta/settings/ModernBetaSettingsPresets.java +++ b/common/src/main/java/mod/bluestaggo/modernerbeta/settings/ModernBetaSettingsPresets.java @@ -1428,7 +1428,7 @@ public class ModernBetaSettingsPresets { AddBetaLandLayer.forIslandScale("land", 3, "land"), new InitRiverLayer("river", 100, "land", false), new StackedZoomLayer("river", 1000, "river", 6, StackedZoomLayer.Type.MODAL), - new ComputeRiverLayer("river", 0, "river", false), + new ComputeRiverLayer("river", 0, "river", true), new SmoothLayer("river", 1000, "river"), new RandomBiomeLayer("biome_pool", 200, ExtendedBiomeId.listOf( "minecraft:desert", diff --git a/common/src/main/java/mod/bluestaggo/modernerbeta/world/biome/provider/fractal/layers/AddBetaLandLayer.java b/common/src/main/java/mod/bluestaggo/modernerbeta/world/biome/provider/fractal/layers/AddBetaLandLayer.java index e0467341..b93ed51c 100644 --- a/common/src/main/java/mod/bluestaggo/modernerbeta/world/biome/provider/fractal/layers/AddBetaLandLayer.java +++ b/common/src/main/java/mod/bluestaggo/modernerbeta/world/biome/provider/fractal/layers/AddBetaLandLayer.java @@ -58,12 +58,13 @@ public class AddBetaLandLayer extends SingleParentLayer { ExtendedBiomeId[] neighbors = this.parentLayer.sampleDiagonalNeighbors(x, z); boolean addLand; - if (base.equals(this.ocean) && !allNeighborsEqual(neighbors, this.ocean)) { - addLand = this.getRandom(x, z).nextInt(3) / 2 > 0; - } else if (!base.equals(this.ocean) && neighborsContain(neighbors, this.ocean)) { + if (!base.equals(this.ocean) || allNeighborsEqual(neighbors, this.ocean)) { + if (!base.equals(this.land) || allNeighborsEqual(neighbors, this.land)) { + return base; + } addLand = 1 - this.getRandom(x, z).nextInt(5) / 4 > 0; } else { - return base; + addLand = this.getRandom(x, z).nextInt(3) / 2 > 0; } if (addLand) { diff --git a/common/src/main/java/mod/bluestaggo/modernerbeta/world/biome/provider/fractal/layers/BaseZoomLayer.java b/common/src/main/java/mod/bluestaggo/modernerbeta/world/biome/provider/fractal/layers/BaseZoomLayer.java index 17739d27..2c913c88 100644 --- a/common/src/main/java/mod/bluestaggo/modernerbeta/world/biome/provider/fractal/layers/BaseZoomLayer.java +++ b/common/src/main/java/mod/bluestaggo/modernerbeta/world/biome/provider/fractal/layers/BaseZoomLayer.java @@ -15,24 +15,27 @@ public abstract class BaseZoomLayer extends SingleParentLayer { int halfX = x >> 1; int halfZ = z >> 1; + ExtendedBiomeId biome00 = this.parentLayer.sample(halfX, halfZ); if (xHalf == 0 && zHalf == 0) { return biome00; } LayerRandom random = this.getRandom(halfX << 1, halfZ << 1); - if (xHalf == 1 && zHalf == 0) { - ExtendedBiomeId biome10 = this.parentLayer.sample(halfX + 1, halfZ); - return this.interpolate(random, biome00, biome10); - } else if (xHalf == 0) { - ExtendedBiomeId biome01 = this.parentLayer.sample(halfX, halfZ + 1); - return this.interpolate(random, biome00, biome01); + ExtendedBiomeId biome01 = this.parentLayer.sample(halfX, halfZ + 1); + ExtendedBiomeId interpolationResult = this.interpolate(random, biome00, biome01); + if (xHalf == 0) { + return interpolationResult; } - ExtendedBiomeId biome01 = this.parentLayer.sample(halfX, halfZ + 1); ExtendedBiomeId biome10 = this.parentLayer.sample(halfX + 1, halfZ); + interpolationResult = this.interpolate(random, biome00, biome10); + if (zHalf == 0) { + return interpolationResult; + } + ExtendedBiomeId biome11 = this.parentLayer.sample(halfX + 1, halfZ + 1); - return this.interpolate(random, biome00, biome01, biome10, biome11); + return this.interpolate(random, biome00, biome10, biome01, biome11); } protected abstract ExtendedBiomeId interpolate(LayerRandom random, ExtendedBiomeId a, ExtendedBiomeId b); -- knotmirror 0.0.1