diff --git a/common/addons/biome-provider-extrusion/src/main/java/com/dfsek/terra/addons/biome/extrusion/BiomeExtrusionProvider.java b/common/addons/biome-provider-extrusion/src/main/java/com/dfsek/terra/addons/biome/extrusion/BiomeExtrusionProvider.java index 5c5007612..e5865e7f9 100644 --- a/common/addons/biome-provider-extrusion/src/main/java/com/dfsek/terra/addons/biome/extrusion/BiomeExtrusionProvider.java +++ b/common/addons/biome-provider-extrusion/src/main/java/com/dfsek/terra/addons/biome/extrusion/BiomeExtrusionProvider.java @@ -61,9 +61,4 @@ public class BiomeExtrusionProvider implements BiomeProvider { public BiomeProvider getDelegate() { return delegate; } - - @Override - public Column getColumn(int x, int z, long seed, int min, int max) { - return new ExtrusionColumn(min, max, this, x, z, seed); - } } diff --git a/common/addons/biome-provider-extrusion/src/main/java/com/dfsek/terra/addons/biome/extrusion/ExtrusionColumn.java b/common/addons/biome-provider-extrusion/src/main/java/com/dfsek/terra/addons/biome/extrusion/ExtrusionColumn.java deleted file mode 100644 index 52b5a6300..000000000 --- a/common/addons/biome-provider-extrusion/src/main/java/com/dfsek/terra/addons/biome/extrusion/ExtrusionColumn.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.dfsek.terra.addons.biome.extrusion; - -import com.dfsek.terra.api.util.Column; -import com.dfsek.terra.api.util.function.IntIntObjConsumer; -import com.dfsek.terra.api.world.biome.Biome; -import com.dfsek.terra.api.world.info.WorldProperties; - - -public class ExtrusionColumn implements Column { - private final int min; - private final int max; - private final BiomeExtrusionProvider provider; - private final int x, z; - private final long seed; - private final Column delegate; - - public ExtrusionColumn(int min, int max, BiomeExtrusionProvider provider, int x, int z, long seed) { - this.min = min; - this.max = max; - this.provider = provider; - this.x = x; - this.z = z; - this.seed = seed; - this.delegate = provider.getDelegate().getColumn(x, z, seed, min, max); - } - - @Override - public int getMinY() { - return min; - } - - @Override - public int getMaxY() { - return max; - } - - @Override - public int getX() { - return x; - } - - @Override - public int getZ() { - return z; - } - - @Override - public Biome get(int y) { - return provider.getBiome(x, y, z, seed, delegate.get(y)); - } - - @Override - public void forRanges(IntIntObjConsumer consumer) { - int min = getMinY(); - - int y = min; - - Biome runningObj = get(y); - - int runningMin = min; - - int max = getMaxY() - 1; - - while(y < max) { - y += provider.getResolution(); - Biome current = get(y); - - if(!current.equals(runningObj)) { - consumer.accept(runningMin, y, runningObj); - runningMin = y; - runningObj = current; - } - } - consumer.accept(runningMin, ++y, runningObj); - } -} diff --git a/common/api/src/main/java/com/dfsek/terra/api/world/biome/generation/CachingBiomeProvider.java b/common/api/src/main/java/com/dfsek/terra/api/world/biome/generation/CachingBiomeProvider.java index bf954f2cd..ea40118a3 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/world/biome/generation/CachingBiomeProvider.java +++ b/common/api/src/main/java/com/dfsek/terra/api/world/biome/generation/CachingBiomeProvider.java @@ -53,7 +53,7 @@ public class CachingBiomeProvider implements BiomeProvider, Handle { @Override public Column getColumn(int x, int z, long seed, int min, int max) { - return columnCache.computeIfAbsent(MathUtil.squash(x, z), k -> delegate.getColumn(x, z, seed, min, max)); + return columnCache.computeIfAbsent(MathUtil.squash(x, z), k -> new BiomeColumn(this, min, max, x, z, seed)); } @Override diff --git a/common/api/src/main/java/com/dfsek/terra/api/world/biome/generation/ChunkLocalCachingBiomeProvider.java b/common/api/src/main/java/com/dfsek/terra/api/world/biome/generation/ChunkLocalCachingBiomeProvider.java index 9e73f3825..dead2dfaa 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/world/biome/generation/ChunkLocalCachingBiomeProvider.java +++ b/common/api/src/main/java/com/dfsek/terra/api/world/biome/generation/ChunkLocalCachingBiomeProvider.java @@ -75,7 +75,7 @@ public class ChunkLocalCachingBiomeProvider extends CachingBiomeProvider { int index = (x & 15) + (16 * (z & 15)); Column column = columnCache[index]; if(column == null) { - column = delegate.getColumn(x, z, seed, min, max); + column = new BiomeColumn(this, min, max, x, z, seed); columnCache[index] = column; } return column;