make BiomeSource use biome delegates

This commit is contained in:
dfsek 2021-12-05 17:07:23 -07:00
parent 3afc9d2c5d
commit 9416e2fbaa
3 changed files with 11 additions and 7 deletions

View File

@ -9,6 +9,7 @@ package com.dfsek.terra.addons.biome.pipeline.config;
import com.dfsek.tectonic.annotations.Value;
import com.dfsek.terra.addons.biome.pipeline.api.BiomeDelegate;
import com.dfsek.terra.addons.biome.pipeline.source.BiomeSource;
import com.dfsek.terra.addons.biome.pipeline.source.NoiseSource;
import com.dfsek.terra.api.config.meta.Meta;
@ -22,7 +23,7 @@ public class NoiseSourceTemplate extends SourceTemplate {
private @Meta NoiseSampler noise;
@Value("biomes")
private @Meta ProbabilityCollection<@Meta Biome> biomes;
private @Meta ProbabilityCollection<@Meta BiomeDelegate> biomes;
@Override
public BiomeSource get() {

View File

@ -7,11 +7,12 @@
package com.dfsek.terra.addons.biome.pipeline.source;
import com.dfsek.terra.addons.biome.pipeline.api.BiomeDelegate;
import com.dfsek.terra.api.world.biome.Biome;
public interface BiomeSource {
Biome getBiome(double x, double z, long seed);
BiomeDelegate getBiome(double x, double z, long seed);
Iterable<Biome> getBiomes();
Iterable<BiomeDelegate> getBiomes();
}

View File

@ -7,27 +7,29 @@
package com.dfsek.terra.addons.biome.pipeline.source;
import com.dfsek.terra.addons.biome.pipeline.api.BiomeDelegate;
import com.dfsek.terra.addons.biome.pipeline.config.BiomeDelegateLoader;
import com.dfsek.terra.api.noise.NoiseSampler;
import com.dfsek.terra.api.util.collection.ProbabilityCollection;
import com.dfsek.terra.api.world.biome.Biome;
public class NoiseSource implements BiomeSource {
private final ProbabilityCollection<Biome> biomes;
private final ProbabilityCollection<BiomeDelegate> biomes;
private final NoiseSampler sampler;
public NoiseSource(ProbabilityCollection<Biome> biomes, NoiseSampler sampler) {
public NoiseSource(ProbabilityCollection<BiomeDelegate> biomes, NoiseSampler sampler) {
this.biomes = biomes;
this.sampler = sampler;
}
@Override
public Biome getBiome(double x, double z, long seed) {
public BiomeDelegate getBiome(double x, double z, long seed) {
return biomes.get(sampler, x, z, seed);
}
@Override
public Iterable<Biome> getBiomes() {
public Iterable<BiomeDelegate> getBiomes() {
return biomes.getContents();
}
}