fully implement resolution in BiomeExtrusionProvider

This commit is contained in:
dfsek
2022-06-15 21:54:47 -07:00
parent c31925f383
commit cfeeb432ea
2 changed files with 16 additions and 17 deletions

View File

@@ -1,16 +1,14 @@
package com.dfsek.terra.addons.biome.extrusion;
import com.dfsek.terra.addons.biome.extrusion.api.Extrusion;
import com.dfsek.terra.api.util.Column;
import com.dfsek.terra.api.world.biome.Biome;
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
import com.dfsek.terra.api.world.info.WorldProperties;
import java.util.List;
import java.util.Optional;
import java.util.Set;
import java.util.stream.Collectors;
import com.dfsek.terra.addons.biome.extrusion.api.Extrusion;
import com.dfsek.terra.api.world.biome.Biome;
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
public class BiomeExtrusionProvider implements BiomeProvider {
private final BiomeProvider delegate;
@@ -28,6 +26,14 @@ public class BiomeExtrusionProvider implements BiomeProvider {
@Override
public Biome getBiome(int x, int y, int z, long seed) {
x /= resolution;
y /= resolution;
z /= resolution;
x *= resolution;
y *= resolution;
z *= resolution;
Biome delegated = delegate.getBiome(x, y, z, seed);
for(Extrusion extrusion : extrusions) {
@@ -42,19 +48,13 @@ public class BiomeExtrusionProvider implements BiomeProvider {
return delegate.getBaseBiome(x, z, seed);
}
public Biome getBiome(int x, int y, int z, long seed, Biome biome) {
for(Extrusion extrusion : extrusions) {
biome = extrusion.extrude(biome, x, y, z, seed);
}
return biome;
}
@Override
public Iterable<Biome> getBiomes() {
return biomes;
}
public int getResolution() {
@Override
public int resolution() {
return resolution;
}

View File

@@ -86,9 +86,8 @@ public class BiomePipelineProvider implements BiomeProvider {
z += mutator.noise(seed + 2, x, z) * noiseAmp;
x = FastMath.floorDiv(x, resolution);
z = FastMath.floorDiv(z, resolution);
x /= resolution;
z /= resolution;
int fdX = FastMath.floorDiv(x, pipeline.getSize());
int fdZ = FastMath.floorDiv(z, pipeline.getSize());