diff --git a/common/src/main/java/com/dfsek/terra/api/util/collections/ProbabilityCollection.java b/common/src/main/java/com/dfsek/terra/api/util/collections/ProbabilityCollection.java index f9ec64992..7907482b7 100644 --- a/common/src/main/java/com/dfsek/terra/api/util/collections/ProbabilityCollection.java +++ b/common/src/main/java/com/dfsek/terra/api/util/collections/ProbabilityCollection.java @@ -58,6 +58,10 @@ public class ProbabilityCollection implements Collection { return newCollection; } + public ProbabilityCollection map(Function mapper) { + return map(mapper, true); + } + public int getTotalProbability() { return array.length; } diff --git a/common/src/main/java/com/dfsek/terra/config/loaders/config/biome/templates/source/NoiseSourceTemplate.java b/common/src/main/java/com/dfsek/terra/config/loaders/config/biome/templates/source/NoiseSourceTemplate.java index 7df6255d0..3a88ff78a 100644 --- a/common/src/main/java/com/dfsek/terra/config/loaders/config/biome/templates/source/NoiseSourceTemplate.java +++ b/common/src/main/java/com/dfsek/terra/config/loaders/config/biome/templates/source/NoiseSourceTemplate.java @@ -1,21 +1,23 @@ package com.dfsek.terra.config.loaders.config.biome.templates.source; import com.dfsek.tectonic.annotations.Value; +import com.dfsek.terra.api.config.meta.MetaValue; import com.dfsek.terra.api.util.collections.ProbabilityCollection; import com.dfsek.terra.api.util.seeded.NoiseSeeded; import com.dfsek.terra.api.world.biome.pipeline.source.BiomeSource; import com.dfsek.terra.api.world.biome.pipeline.source.RandomSource; import com.dfsek.terra.config.builder.BiomeBuilder; +@SuppressWarnings("unused") public class NoiseSourceTemplate extends SourceTemplate { @Value("noise") - private NoiseSeeded noise; + private MetaValue noise; @Value("biomes") - private ProbabilityCollection biomes; + private ProbabilityCollection> biomes; @Override public BiomeSource apply(Long seed) { - return new RandomSource(biomes.map((biome) -> biome.apply(seed), false), noise.apply(seed)); + return new RandomSource(biomes.map((biome) -> biome.get().apply(seed), false), noise.get().apply(seed)); } }