mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2026-04-06 15:56:14 +00:00
Change layer class method signatures
This commit is contained in:
@@ -1,8 +1,9 @@
|
||||
package com.dfsek.terra.addons.chunkgenerator.api;
|
||||
|
||||
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;
|
||||
|
||||
|
||||
public interface LayerPredicate {
|
||||
boolean test(long seed, Biome biome, int x, int y, int z);
|
||||
boolean test(int x, int y, int z, WorldProperties properties, BiomeProvider provider);
|
||||
}
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
package com.dfsek.terra.addons.chunkgenerator.api;
|
||||
|
||||
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;
|
||||
|
||||
|
||||
public interface LayerResolver {
|
||||
LayerPalette resolve(long seed, Biome biome, int x, int y, int z);
|
||||
LayerPalette resolve(int x, int y, int z, WorldProperties world, BiomeProvider biomeProvider);
|
||||
}
|
||||
|
||||
@@ -1,11 +1,9 @@
|
||||
package com.dfsek.terra.addons.chunkgenerator.api;
|
||||
|
||||
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||
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;
|
||||
|
||||
|
||||
public interface LayerSampler {
|
||||
double sample(long seed, Biome biome, int x, int y, int z);
|
||||
|
||||
NoiseSampler getSampler();
|
||||
double sample(int x, int y, int z, WorldProperties world, BiomeProvider biomeProvider);
|
||||
}
|
||||
|
||||
@@ -48,7 +48,7 @@ public class LayeredChunkGenerator implements ChunkGenerator {
|
||||
|
||||
Biome biome = biomeColumn.get(y);
|
||||
|
||||
LayerPalette layerPalette = resolver.resolve(seed, biome, cx, y, cz);
|
||||
LayerPalette layerPalette = resolver.resolve(cx, y, cz, world, biomeProvider);
|
||||
|
||||
if (previousLayerPalette == layerPalette) {
|
||||
paletteLevel++;
|
||||
@@ -60,11 +60,9 @@ public class LayeredChunkGenerator implements ChunkGenerator {
|
||||
paletteLevel = 0;
|
||||
}
|
||||
previousLayerPalette = layerPalette;
|
||||
|
||||
Palette palette = layerPalette.get(seed, biome, cx, y, cz);
|
||||
|
||||
chunk.setBlock(cx, y, cz, palette.get(paletteLevel, cx, y, cz, seed));
|
||||
|
||||
chunk.setBlock(cx, y, cz, layerPalette.get(seed, biome, cx, y, cz)
|
||||
.get(paletteLevel, cx, y, cz, seed));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -77,7 +75,7 @@ public class LayeredChunkGenerator implements ChunkGenerator {
|
||||
long seed = world.getSeed();
|
||||
Biome biome = biomeProvider.getBiome(x, y, z, seed);
|
||||
int layer = 0; // Default to layer 0 for now
|
||||
return resolver.resolve(seed, biome, x, y, z)
|
||||
return resolver.resolve(x, y, z, world, biomeProvider)
|
||||
.get(seed, biome, x, y, z)
|
||||
.get(layer, x, y, z, seed);
|
||||
}
|
||||
@@ -86,7 +84,7 @@ public class LayeredChunkGenerator implements ChunkGenerator {
|
||||
public Palette getPalette(int x, int y, int z, WorldProperties world, BiomeProvider biomeProvider) {
|
||||
long seed = world.getSeed();
|
||||
Biome biome = biomeProvider.getBiome(x, y, z, seed);
|
||||
return resolver.resolve(seed, biome, x, y, z)
|
||||
return resolver.resolve(x, y, z, world, biomeProvider)
|
||||
.get(seed, biome, x, y, z);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
package com.dfsek.terra.addons.chunkgenerator.layer.predicate;
|
||||
|
||||
import com.dfsek.terra.addons.chunkgenerator.api.LayerPredicate;
|
||||
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;
|
||||
|
||||
|
||||
public class BelowLayerPredicate implements LayerPredicate {
|
||||
@@ -13,7 +14,7 @@ public class BelowLayerPredicate implements LayerPredicate {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean test(long seed, Biome biome, int x, int y, int z) {
|
||||
public boolean test(int x, int y, int z, WorldProperties properties, BiomeProvider biomeProvider) {
|
||||
return y < this.y;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,7 +2,8 @@ package com.dfsek.terra.addons.chunkgenerator.layer.predicate;
|
||||
|
||||
import com.dfsek.terra.addons.chunkgenerator.api.LayerPredicate;
|
||||
import com.dfsek.terra.api.util.Range;
|
||||
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;
|
||||
|
||||
|
||||
public class RangeLayerPredicate implements LayerPredicate {
|
||||
@@ -13,7 +14,7 @@ public class RangeLayerPredicate implements LayerPredicate {
|
||||
this.range = range;
|
||||
}
|
||||
@Override
|
||||
public boolean test(long seed, Biome biome, int x, int y, int z) {
|
||||
public boolean test(int x, int y, int z, WorldProperties world, BiomeProvider provider) {
|
||||
return range.isInRange(y);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,7 +2,8 @@ package com.dfsek.terra.addons.chunkgenerator.layer.predicate;
|
||||
|
||||
import com.dfsek.terra.addons.chunkgenerator.api.LayerPredicate;
|
||||
import com.dfsek.terra.addons.chunkgenerator.api.LayerSampler;
|
||||
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;
|
||||
|
||||
|
||||
public class SamplerLayerPredicate implements LayerPredicate {
|
||||
@@ -20,8 +21,8 @@ public class SamplerLayerPredicate implements LayerPredicate {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean test(long seed, Biome biome, int x, int y, int z) {
|
||||
return operator.evaluate(sampler.sample(seed, biome, x, y, z), threshold);
|
||||
public boolean test(int x, int y, int z, WorldProperties world, BiomeProvider biomeProvider) {
|
||||
return operator.evaluate(sampler.sample(x, y, z, world, biomeProvider), threshold);
|
||||
}
|
||||
|
||||
public enum Operator {
|
||||
|
||||
@@ -9,7 +9,8 @@ import java.util.List;
|
||||
import com.dfsek.terra.addons.chunkgenerator.api.LayerPredicate;
|
||||
import com.dfsek.terra.addons.chunkgenerator.api.LayerSampler;
|
||||
import com.dfsek.terra.addons.chunkgenerator.layer.predicate.SamplerLayerPredicate.Operator;
|
||||
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;
|
||||
|
||||
|
||||
public class SamplerListLayerPredicate implements LayerPredicate {
|
||||
@@ -25,9 +26,9 @@ public class SamplerListLayerPredicate implements LayerPredicate {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean test(long seed, Biome biome, int x, int y, int z) {
|
||||
public boolean test(int x, int y, int z, WorldProperties world, BiomeProvider biomeProvider) {
|
||||
for (CoordinateTest test : tests) {
|
||||
if (operator.evaluate(sampler.sample(seed, biome, x + test.x, y + test.y, z + test.z), test.threshold)) return true;
|
||||
if (operator.evaluate(sampler.sample(x + test.x, y + test.y, z + test.z, world, biomeProvider), test.threshold)) return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -2,7 +2,9 @@ package com.dfsek.terra.addons.chunkgenerator.layer.resolve;
|
||||
|
||||
import com.dfsek.terra.addons.chunkgenerator.api.LayerPalette;
|
||||
import com.dfsek.terra.addons.chunkgenerator.api.LayerResolver;
|
||||
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;
|
||||
|
||||
|
||||
public class PaletteLayerResolver implements LayerResolver {
|
||||
|
||||
@@ -13,7 +15,7 @@ public class PaletteLayerResolver implements LayerResolver {
|
||||
}
|
||||
|
||||
@Override
|
||||
public LayerPalette resolve(long seed, Biome biome, int x, int y, int z) {
|
||||
public LayerPalette resolve(int x, int y, int z, WorldProperties world, BiomeProvider biomeProvider) {
|
||||
return palette;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,7 +3,8 @@ package com.dfsek.terra.addons.chunkgenerator.layer.resolve;
|
||||
import com.dfsek.terra.addons.chunkgenerator.api.LayerPalette;
|
||||
import com.dfsek.terra.addons.chunkgenerator.api.LayerPredicate;
|
||||
import com.dfsek.terra.addons.chunkgenerator.api.LayerResolver;
|
||||
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;
|
||||
|
||||
|
||||
public class PredicateLayerResolver implements LayerResolver {
|
||||
@@ -21,7 +22,7 @@ public class PredicateLayerResolver implements LayerResolver {
|
||||
}
|
||||
|
||||
@Override
|
||||
public LayerPalette resolve(long seed, Biome biome, int x, int y, int z) {
|
||||
return predicate.test(seed, biome, x, y, z) ? trueResolver.resolve(seed, biome, x, y, z) : falseResolver.resolve(seed, biome, x, y, z);
|
||||
public LayerPalette resolve(int x, int y, int z, WorldProperties world, BiomeProvider biomeProvider) {
|
||||
return predicate.test(x, y, z, world, biomeProvider) ? trueResolver.resolve(x, y, z, world, biomeProvider) : falseResolver.resolve(x, y, z, world, biomeProvider);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,7 +2,8 @@ package com.dfsek.terra.addons.chunkgenerator.layer.sampler;
|
||||
|
||||
import com.dfsek.terra.addons.chunkgenerator.api.LayerSampler;
|
||||
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||
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;
|
||||
|
||||
|
||||
public class SimpleLayerSampler implements LayerSampler {
|
||||
@@ -14,12 +15,7 @@ public class SimpleLayerSampler implements LayerSampler {
|
||||
}
|
||||
|
||||
@Override
|
||||
public double sample(long seed, Biome biome, int x, int y, int z) {
|
||||
return sampler.noise(seed, x, y, z);
|
||||
}
|
||||
|
||||
@Override
|
||||
public NoiseSampler getSampler() {
|
||||
return sampler;
|
||||
public double sample(int x, int y, int z, WorldProperties world, BiomeProvider biomeProvider) {
|
||||
return sampler.noise(world.getSeed(), x, y, z);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user