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

View File

@ -7,11 +7,12 @@
package com.dfsek.terra.addons.biome.pipeline.source; 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; import com.dfsek.terra.api.world.biome.Biome;
public interface BiomeSource { 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; 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.noise.NoiseSampler;
import com.dfsek.terra.api.util.collection.ProbabilityCollection; import com.dfsek.terra.api.util.collection.ProbabilityCollection;
import com.dfsek.terra.api.world.biome.Biome; import com.dfsek.terra.api.world.biome.Biome;
public class NoiseSource implements BiomeSource { public class NoiseSource implements BiomeSource {
private final ProbabilityCollection<Biome> biomes; private final ProbabilityCollection<BiomeDelegate> biomes;
private final NoiseSampler sampler; private final NoiseSampler sampler;
public NoiseSource(ProbabilityCollection<Biome> biomes, NoiseSampler sampler) { public NoiseSource(ProbabilityCollection<BiomeDelegate> biomes, NoiseSampler sampler) {
this.biomes = biomes; this.biomes = biomes;
this.sampler = sampler; this.sampler = sampler;
} }
@Override @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); return biomes.get(sampler, x, z, seed);
} }
@Override @Override
public Iterable<Biome> getBiomes() { public Iterable<BiomeDelegate> getBiomes() {
return biomes.getContents(); return biomes.getContents();
} }
} }