diff --git a/common/addons/biome-provider-pipeline/README.md b/common/addons/biome-provider-pipeline/README.md deleted file mode 100644 index 9e55109a7..000000000 --- a/common/addons/biome-provider-pipeline/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# biome-provider-pipeline - -Implements the Biome Pipeline, a procedural biome provider that uses a series -of "stages" to apply "mutations" to a 2D grid of biomes. - -This addon registers the `PIPELINE` biome provider type, and all associated -configurations. \ No newline at end of file diff --git a/common/addons/biome-provider-pipeline/build.gradle.kts b/common/addons/biome-provider-pipeline/build.gradle.kts deleted file mode 100644 index 7d82dc72f..000000000 --- a/common/addons/biome-provider-pipeline/build.gradle.kts +++ /dev/null @@ -1,2 +0,0 @@ -dependencies { -} diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/BiomeHolderImpl.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/BiomeHolderImpl.java deleted file mode 100644 index b00939095..000000000 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/BiomeHolderImpl.java +++ /dev/null @@ -1,87 +0,0 @@ -package com.dfsek.terra.addons.biome.pipeline; - -import com.dfsek.terra.addons.biome.pipeline.api.BiomeExpander; -import com.dfsek.terra.addons.biome.pipeline.api.BiomeHolder; -import com.dfsek.terra.addons.biome.pipeline.api.BiomeMutator; -import com.dfsek.terra.addons.biome.pipeline.source.BiomeSource; -import com.dfsek.terra.api.util.vector.Vector2; -import com.dfsek.terra.api.world.biome.TerraBiome; - - -public class BiomeHolderImpl implements BiomeHolder { - private final Vector2 origin; - private final int width; - private final int offset; - private TerraBiome[][] biomes; - - public BiomeHolderImpl(int width, Vector2 origin) { - width += 4; - this.width = width; - biomes = new TerraBiome[width][width]; - this.origin = origin; - this.offset = 2; - } - - private BiomeHolderImpl(TerraBiome[][] biomes, Vector2 origin, int width, int offset) { - this.biomes = biomes; - this.origin = origin; - this.width = width; - this.offset = 2 * offset; - } - - @Override - public BiomeHolder expand(BiomeExpander expander, long seed) { - TerraBiome[][] old = biomes; - int newWidth = width * 2 - 1; - - biomes = new TerraBiome[newWidth][newWidth]; - - for(int x = 0; x < width; x++) { - for(int z = 0; z < width; z++) { - biomes[x * 2][z * 2] = old[x][z]; - if(z != width - 1) - biomes[x * 2][z * 2 + 1] = expander.getBetween(x + origin.getX(), z + 1 + origin.getZ(), seed, old[x][z], - old[x][z + 1]); - if(x != width - 1) - biomes[x * 2 + 1][z * 2] = expander.getBetween(x + 1 + origin.getX(), z + origin.getZ(), seed, old[x][z], - old[x + 1][z]); - if(x != width - 1 && z != width - 1) - biomes[x * 2 + 1][z * 2 + 1] = expander.getBetween(x + 1 + origin.getX(), z + 1 + origin.getZ(), seed, old[x][z], - old[x + 1][z + 1], old[x][z + 1], old[x + 1][z]); - } - } - return new BiomeHolderImpl(biomes, origin.setX(origin.getX() * 2 - 1).setZ(origin.getZ() * 2 - 1), newWidth, offset); - } - - @Override - public void mutate(BiomeMutator mutator, long seed) { - for(int x = 0; x < width; x++) { - for(int z = 0; z < width; z++) { - BiomeMutator.ViewPoint viewPoint = new BiomeMutator.ViewPoint(this, x, z); - biomes[x][z] = mutator.mutate(viewPoint, x + origin.getX(), z + origin.getZ(), seed); - } - } - } - - @Override - public void fill(BiomeSource source, long seed) { - for(int x = 0; x < width; x++) { - for(int z = 0; z < width; z++) { - biomes[x][z] = source.getBiome(origin.getX() + x, origin.getZ() + z, seed); - } - } - } - - @Override - public TerraBiome getBiome(int x, int z) { - x += offset; - z += offset; - return getBiomeRaw(x, z); - } - - @Override - public TerraBiome getBiomeRaw(int x, int z) { - if(x >= width || z >= width || x < 0 || z < 0) return null; - return biomes[x][z]; - } -} diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/BiomePipeline.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/BiomePipeline.java deleted file mode 100644 index a9c013fbc..000000000 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/BiomePipeline.java +++ /dev/null @@ -1,67 +0,0 @@ -package com.dfsek.terra.addons.biome.pipeline; - -import java.util.ArrayList; -import java.util.List; - -import com.dfsek.terra.addons.biome.pipeline.api.BiomeHolder; -import com.dfsek.terra.addons.biome.pipeline.api.Stage; -import com.dfsek.terra.addons.biome.pipeline.source.BiomeSource; -import com.dfsek.terra.api.util.vector.Vector2; - - -public class BiomePipeline { - private final BiomeSource source; - private final List stages; - private final int size; - private final int init; - - private BiomePipeline(BiomeSource source, List stages, int size, int init) { - this.source = source; - this.stages = stages; - this.size = size; - this.init = init; - } - - /** - * Get biomes in a chunk - * - * @param x Chunk X coord - * @param z Chunk Z coord - * - * @return BiomeHolder containing biomes. - */ - public BiomeHolder getBiomes(int x, int z, long seed) { - BiomeHolder holder = new BiomeHolderImpl(init, new Vector2(x * (init - 1), z * (init - 1))); - holder.fill(source, seed); - for(Stage stage : stages) holder = stage.apply(holder, seed); - return holder; - } - - public int getSize() { - return size; - } - - public static final class BiomePipelineBuilder { - private final int init; - private final List stages = new ArrayList<>(); - private int expand; - - public BiomePipelineBuilder(int init) { - this.init = init; - expand = init; - } - - public BiomePipeline build(BiomeSource source) { - for(Stage stage : stages) { - if(stage.isExpansion()) expand = expand * 2 - 1; - } - - return new BiomePipeline(source, stages, expand, init); - } - - public BiomePipelineBuilder addStage(Stage stage) { - stages.add(stage); - return this; - } - } -} diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/BiomePipelineAddon.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/BiomePipelineAddon.java deleted file mode 100644 index 6b32bd6f9..000000000 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/BiomePipelineAddon.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.dfsek.terra.addons.biome.pipeline; - -import com.dfsek.tectonic.loading.object.ObjectTemplate; - -import java.util.function.Supplier; - -import com.dfsek.terra.addons.biome.pipeline.api.Stage; -import com.dfsek.terra.addons.biome.pipeline.config.BiomePipelineTemplate; -import com.dfsek.terra.addons.biome.pipeline.config.NoiseSourceTemplate; -import com.dfsek.terra.addons.biome.pipeline.config.stage.expander.ExpanderStageTemplate; -import com.dfsek.terra.addons.biome.pipeline.config.stage.mutator.BorderListMutatorTemplate; -import com.dfsek.terra.addons.biome.pipeline.config.stage.mutator.BorderMutatorTemplate; -import com.dfsek.terra.addons.biome.pipeline.config.stage.mutator.ReplaceListMutatorTemplate; -import com.dfsek.terra.addons.biome.pipeline.config.stage.mutator.ReplaceMutatorTemplate; -import com.dfsek.terra.addons.biome.pipeline.config.stage.mutator.SmoothMutatorTemplate; -import com.dfsek.terra.addons.biome.pipeline.source.BiomeSource; -import com.dfsek.terra.api.Platform; -import com.dfsek.terra.api.addon.TerraAddon; -import com.dfsek.terra.api.addon.annotations.Addon; -import com.dfsek.terra.api.addon.annotations.Author; -import com.dfsek.terra.api.addon.annotations.Version; -import com.dfsek.terra.api.event.events.config.pack.ConfigPackPreLoadEvent; -import com.dfsek.terra.api.event.functional.FunctionalEventHandler; -import com.dfsek.terra.api.inject.annotations.Inject; -import com.dfsek.terra.api.registry.CheckedRegistry; -import com.dfsek.terra.api.util.reflection.TypeKey; -import com.dfsek.terra.api.world.biome.generation.BiomeProvider; - - -@Addon("biome-provider-pipeline") -@Author("Terra") -@Version("1.0.0") -public class BiomePipelineAddon extends TerraAddon { - - public static final TypeKey>> SOURCE_REGISTRY_KEY = new TypeKey<>() { - }; - - public static final TypeKey>> STAGE_REGISTRY_KEY = new TypeKey<>() { - }; - public static final TypeKey>> PROVIDER_REGISTRY_KEY = new TypeKey<>() { - }; - @Inject - private Platform platform; - - @Override - public void initialize() { - platform.getEventManager() - .getHandler(FunctionalEventHandler.class) - .register(this, ConfigPackPreLoadEvent.class) - .then(event -> { - CheckedRegistry>> providerRegistry = event.getPack().getOrCreateRegistry( - PROVIDER_REGISTRY_KEY); - providerRegistry.register("PIPELINE", () -> new BiomePipelineTemplate(platform)); - }) - .then(event -> { - CheckedRegistry>> sourceRegistry = event.getPack().getOrCreateRegistry( - SOURCE_REGISTRY_KEY); - sourceRegistry.register("NOISE", NoiseSourceTemplate::new); - }) - .then(event -> { - CheckedRegistry>> stageRegistry = event.getPack().getOrCreateRegistry(STAGE_REGISTRY_KEY); - stageRegistry.register("FRACTAL_EXPAND", ExpanderStageTemplate::new); - stageRegistry.register("SMOOTH", SmoothMutatorTemplate::new); - stageRegistry.register("REPLACE", ReplaceMutatorTemplate::new); - stageRegistry.register("REPLACE_LIST", ReplaceListMutatorTemplate::new); - stageRegistry.register("BORDER", BorderMutatorTemplate::new); - stageRegistry.register("BORDER_LIST", BorderListMutatorTemplate::new); - }) - .failThrough(); - } -} diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/BiomePipelineProvider.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/BiomePipelineProvider.java deleted file mode 100644 index 64fbeed18..000000000 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/BiomePipelineProvider.java +++ /dev/null @@ -1,84 +0,0 @@ -package com.dfsek.terra.addons.biome.pipeline; - -import com.google.common.cache.CacheBuilder; -import com.google.common.cache.CacheLoader; -import com.google.common.cache.LoadingCache; -import net.jafama.FastMath; -import org.jetbrains.annotations.NotNull; - -import com.dfsek.terra.addons.biome.pipeline.api.BiomeHolder; -import com.dfsek.terra.api.Platform; -import com.dfsek.terra.api.noise.NoiseSampler; -import com.dfsek.terra.api.world.biome.TerraBiome; -import com.dfsek.terra.api.world.biome.generation.BiomeProvider; - - -public class BiomePipelineProvider implements BiomeProvider { - private final LoadingCache holderCache; - private final BiomePipeline pipeline; - private final int resolution; - private final NoiseSampler mutator; - private final double noiseAmp; - - public BiomePipelineProvider(BiomePipeline pipeline, Platform platform, int resolution, NoiseSampler mutator, double noiseAmp) { - this.resolution = resolution; - this.mutator = mutator; - this.noiseAmp = noiseAmp; - holderCache = CacheBuilder.newBuilder() - .maximumSize(platform == null ? 32 : platform.getTerraConfig().getProviderCache()) - .build( - new CacheLoader<>() { - @Override - public BiomeHolder load(@NotNull SeededVector key) { - return pipeline.getBiomes(key.x, key.z, key.seed); - } - } - ); - this.pipeline = pipeline; - } - - @Override - public TerraBiome getBiome(int x, int z, long seed) { - x += mutator.getNoiseSeeded(seed + 1, x, z) * noiseAmp; - z += mutator.getNoiseSeeded(seed + 2, x, z) * noiseAmp; - - - x = FastMath.floorToInt(FastMath.floorDiv(x, resolution)); - - z = FastMath.floorToInt(FastMath.floorDiv(z, resolution)); - - int fdX = FastMath.floorDiv(x, pipeline.getSize()); - int fdZ = FastMath.floorDiv(z, pipeline.getSize()); - return holderCache.getUnchecked(new SeededVector(fdX, fdZ, seed)).getBiome(x - fdX * pipeline.getSize(), - z - fdZ * pipeline.getSize()); - } - - private static final class SeededVector { - private final int x; - private final int z; - private final long seed; - - private SeededVector(int x, int z, long seed) { - this.x = x; - this.z = z; - this.seed = seed; - } - - @Override - public int hashCode() { - int result = 0; - result = 31 * result + ((int) (seed ^ (seed >>> 32))); - result = 31 * result + x; - result = 31 * result + z; - return result; - } - - @Override - public boolean equals(Object obj) { - if(!(obj instanceof SeededVector)) return false; - SeededVector that = (SeededVector) obj; - - return this.seed == that.seed && this.x == that.x && this.z == that.z; - } - } -} diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/api/BiomeExpander.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/api/BiomeExpander.java deleted file mode 100644 index 462f8ebec..000000000 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/api/BiomeExpander.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.dfsek.terra.addons.biome.pipeline.api; - -import com.dfsek.terra.api.world.biome.TerraBiome; - - -public interface BiomeExpander { - TerraBiome getBetween(double x, double z, long seed, TerraBiome... others); -} diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/api/BiomeHolder.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/api/BiomeHolder.java deleted file mode 100644 index bf88c46e2..000000000 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/api/BiomeHolder.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.dfsek.terra.addons.biome.pipeline.api; - -import com.dfsek.terra.addons.biome.pipeline.source.BiomeSource; -import com.dfsek.terra.api.world.biome.TerraBiome; - - -public interface BiomeHolder { - BiomeHolder expand(BiomeExpander expander, long seed); - - void mutate(BiomeMutator mutator, long seed); - - void fill(BiomeSource source, long seed); - - TerraBiome getBiome(int x, int z); - - TerraBiome getBiomeRaw(int x, int z); -} diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/api/BiomeMutator.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/api/BiomeMutator.java deleted file mode 100644 index fab417815..000000000 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/api/BiomeMutator.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.dfsek.terra.addons.biome.pipeline.api; - -import com.dfsek.terra.api.world.biome.TerraBiome; - - -public interface BiomeMutator { - TerraBiome mutate(ViewPoint viewPoint, double x, double z, long seed); - - class ViewPoint { - private final BiomeHolder biomes; - private final int offX; - private final int offZ; - - public ViewPoint(BiomeHolder biomes, int offX, int offZ) { - this.biomes = biomes; - this.offX = offX; - this.offZ = offZ; - } - - - public TerraBiome getBiome(int x, int z) { - return biomes.getBiomeRaw(x + offX, z + offZ); - } - } -} diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/api/Stage.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/api/Stage.java deleted file mode 100644 index af00308c3..000000000 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/api/Stage.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.dfsek.terra.addons.biome.pipeline.api; - -public interface Stage { - BiomeHolder apply(BiomeHolder in, long seed); - - boolean isExpansion(); - -} diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/BiomePipelineTemplate.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/BiomePipelineTemplate.java deleted file mode 100644 index 84548fbef..000000000 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/BiomePipelineTemplate.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.dfsek.terra.addons.biome.pipeline.config; - -import com.dfsek.tectonic.annotations.Default; -import com.dfsek.tectonic.annotations.Value; - -import java.util.List; - -import com.dfsek.terra.addons.biome.pipeline.BiomePipeline; -import com.dfsek.terra.addons.biome.pipeline.BiomePipelineProvider; -import com.dfsek.terra.addons.biome.pipeline.api.Stage; -import com.dfsek.terra.addons.biome.pipeline.source.BiomeSource; -import com.dfsek.terra.api.Platform; -import com.dfsek.terra.api.config.meta.Meta; -import com.dfsek.terra.api.world.biome.generation.BiomeProvider; - - -@SuppressWarnings({ "FieldMayBeFinal", "unused" }) -public class BiomePipelineTemplate extends BiomeProviderTemplate { - private final Platform platform; - @Value("pipeline.initial-size") - @Default - private @Meta int initialSize = 2; - - @Value("pipeline.stages") - private @Meta List<@Meta Stage> stages; - - @Value("pipeline.source") - private @Meta BiomeSource source; - - public BiomePipelineTemplate(Platform platform) { - this.platform = platform; - } - - @Override - public BiomeProvider get() { - BiomePipeline.BiomePipelineBuilder biomePipelineBuilder = new BiomePipeline.BiomePipelineBuilder(initialSize); - stages.forEach(biomePipelineBuilder::addStage); - BiomePipeline pipeline = biomePipelineBuilder.build(source); - return new BiomePipelineProvider(pipeline, platform, resolution, blend, blendAmp); - } -} diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/BiomeProviderLoader.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/BiomeProviderLoader.java deleted file mode 100644 index a254082ca..000000000 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/BiomeProviderLoader.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.dfsek.terra.addons.biome.pipeline.config; - -import com.dfsek.tectonic.exception.LoadException; -import com.dfsek.tectonic.loading.ConfigLoader; -import com.dfsek.tectonic.loading.TypeLoader; - -import java.lang.reflect.AnnotatedType; - -import com.dfsek.terra.addons.biome.pipeline.BiomePipelineProvider; -import com.dfsek.terra.api.world.biome.generation.BiomeProvider; - - -public class BiomeProviderLoader implements TypeLoader { - @Override - public BiomeProvider load(AnnotatedType t, Object c, ConfigLoader loader) throws LoadException { - return loader.loadType(BiomePipelineProvider.class, c); // TODO: actually implement this lol - } -} diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/BiomeProviderTemplate.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/BiomeProviderTemplate.java deleted file mode 100644 index c1aa496cb..000000000 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/BiomeProviderTemplate.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.dfsek.terra.addons.biome.pipeline.config; - -import com.dfsek.tectonic.annotations.Default; -import com.dfsek.tectonic.annotations.Value; -import com.dfsek.tectonic.loading.object.ObjectTemplate; - -import com.dfsek.terra.api.config.meta.Meta; -import com.dfsek.terra.api.noise.NoiseSampler; -import com.dfsek.terra.api.world.biome.generation.BiomeProvider; - - -public abstract class BiomeProviderTemplate implements ObjectTemplate { - @Value("resolution") - @Default - protected @Meta int resolution = 1; - @Value("blend.noise") - @Default - protected @Meta NoiseSampler blend = NoiseSampler.zero(); - @Value("blend.amplitude") - @Default - protected @Meta double blendAmp = 0d; -} diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/NoiseSourceTemplate.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/NoiseSourceTemplate.java deleted file mode 100644 index 627146800..000000000 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/NoiseSourceTemplate.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.dfsek.terra.addons.biome.pipeline.config; - -import com.dfsek.tectonic.annotations.Value; - -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; -import com.dfsek.terra.api.noise.NoiseSampler; -import com.dfsek.terra.api.util.collection.ProbabilityCollection; -import com.dfsek.terra.api.world.biome.TerraBiome; - - -public class NoiseSourceTemplate extends SourceTemplate { - @Value("noise") - private @Meta NoiseSampler noise; - - @Value("biomes") - private @Meta ProbabilityCollection<@Meta TerraBiome> biomes; - - @Override - public BiomeSource get() { - return new NoiseSource(biomes, noise); - } -} diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/SourceTemplate.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/SourceTemplate.java deleted file mode 100644 index 831ca3d88..000000000 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/SourceTemplate.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.dfsek.terra.addons.biome.pipeline.config; - -import com.dfsek.tectonic.loading.object.ObjectTemplate; - -import com.dfsek.terra.addons.biome.pipeline.source.BiomeSource; - - -public abstract class SourceTemplate implements ObjectTemplate { - -} diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/stage/StageTemplate.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/stage/StageTemplate.java deleted file mode 100644 index 4b491e482..000000000 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/stage/StageTemplate.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.dfsek.terra.addons.biome.pipeline.config.stage; - -import com.dfsek.tectonic.annotations.Value; -import com.dfsek.tectonic.loading.object.ObjectTemplate; - -import com.dfsek.terra.addons.biome.pipeline.api.Stage; -import com.dfsek.terra.api.config.meta.Meta; -import com.dfsek.terra.api.noise.NoiseSampler; - - -public abstract class StageTemplate implements ObjectTemplate { - @Value("noise") - protected @Meta NoiseSampler noise; -} diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/stage/expander/ExpanderStageTemplate.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/stage/expander/ExpanderStageTemplate.java deleted file mode 100644 index ea74a303a..000000000 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/stage/expander/ExpanderStageTemplate.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.dfsek.terra.addons.biome.pipeline.config.stage.expander; - -import com.dfsek.terra.addons.biome.pipeline.api.Stage; -import com.dfsek.terra.addons.biome.pipeline.config.stage.StageTemplate; -import com.dfsek.terra.addons.biome.pipeline.expand.FractalExpander; -import com.dfsek.terra.addons.biome.pipeline.stages.ExpanderStage; - - -public class ExpanderStageTemplate extends StageTemplate { - @Override - public Stage get() { - return new ExpanderStage(new FractalExpander(noise)); - } -} diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/stage/mutator/BorderListMutatorTemplate.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/stage/mutator/BorderListMutatorTemplate.java deleted file mode 100644 index 136243bc2..000000000 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/stage/mutator/BorderListMutatorTemplate.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.dfsek.terra.addons.biome.pipeline.config.stage.mutator; - -import com.dfsek.tectonic.annotations.Value; - -import java.util.Map; - -import com.dfsek.terra.addons.biome.pipeline.api.Stage; -import com.dfsek.terra.addons.biome.pipeline.config.stage.StageTemplate; -import com.dfsek.terra.addons.biome.pipeline.mutator.BorderListMutator; -import com.dfsek.terra.addons.biome.pipeline.stages.MutatorStage; -import com.dfsek.terra.api.config.meta.Meta; -import com.dfsek.terra.api.util.collection.ProbabilityCollection; -import com.dfsek.terra.api.world.biome.TerraBiome; - - -@SuppressWarnings("unused") -public class BorderListMutatorTemplate extends StageTemplate { - @Value("from") - private @Meta String from; - - @Value("default-replace") - private @Meta String defaultReplace; - - @Value("default-to") - private @Meta ProbabilityCollection<@Meta TerraBiome> defaultTo; - - @Value("replace") - private @Meta Map<@Meta TerraBiome, @Meta ProbabilityCollection<@Meta TerraBiome>> replace; - - - @Override - public Stage get() { - return new MutatorStage(new BorderListMutator(replace, from, defaultReplace, noise, defaultTo)); - } -} diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/stage/mutator/BorderMutatorTemplate.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/stage/mutator/BorderMutatorTemplate.java deleted file mode 100644 index 6632bf6bb..000000000 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/stage/mutator/BorderMutatorTemplate.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.dfsek.terra.addons.biome.pipeline.config.stage.mutator; - -import com.dfsek.tectonic.annotations.Value; - -import com.dfsek.terra.addons.biome.pipeline.api.Stage; -import com.dfsek.terra.addons.biome.pipeline.config.stage.StageTemplate; -import com.dfsek.terra.addons.biome.pipeline.mutator.BorderMutator; -import com.dfsek.terra.addons.biome.pipeline.stages.MutatorStage; -import com.dfsek.terra.api.config.meta.Meta; -import com.dfsek.terra.api.util.collection.ProbabilityCollection; -import com.dfsek.terra.api.world.biome.TerraBiome; - - -@SuppressWarnings("unused") -public class BorderMutatorTemplate extends StageTemplate { - @Value("from") - private @Meta String from; - - @Value("replace") - private @Meta String replace; - - @Value("to") - private @Meta ProbabilityCollection<@Meta TerraBiome> to; - - @Override - public Stage get() { - return new MutatorStage(new BorderMutator(from, replace, noise, to)); - } -} diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/stage/mutator/ReplaceListMutatorTemplate.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/stage/mutator/ReplaceListMutatorTemplate.java deleted file mode 100644 index 5a21ec95b..000000000 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/stage/mutator/ReplaceListMutatorTemplate.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.dfsek.terra.addons.biome.pipeline.config.stage.mutator; - -import com.dfsek.tectonic.annotations.Value; - -import java.util.Map; - -import com.dfsek.terra.addons.biome.pipeline.api.Stage; -import com.dfsek.terra.addons.biome.pipeline.config.stage.StageTemplate; -import com.dfsek.terra.addons.biome.pipeline.mutator.ReplaceListMutator; -import com.dfsek.terra.addons.biome.pipeline.stages.MutatorStage; -import com.dfsek.terra.api.config.meta.Meta; -import com.dfsek.terra.api.util.collection.ProbabilityCollection; -import com.dfsek.terra.api.world.biome.TerraBiome; - - -@SuppressWarnings("unused") -public class ReplaceListMutatorTemplate extends StageTemplate { - @Value("default-from") - private @Meta String defaultFrom; - - @Value("default-to") - private @Meta ProbabilityCollection<@Meta TerraBiome> defaultTo; - - @Value("to") - private @Meta Map<@Meta TerraBiome, @Meta ProbabilityCollection<@Meta TerraBiome>> replace; - - @Override - public Stage get() { - return new MutatorStage(new ReplaceListMutator(replace, defaultFrom, defaultTo, noise)); - } -} diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/stage/mutator/ReplaceMutatorTemplate.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/stage/mutator/ReplaceMutatorTemplate.java deleted file mode 100644 index 6dd7196c2..000000000 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/stage/mutator/ReplaceMutatorTemplate.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.dfsek.terra.addons.biome.pipeline.config.stage.mutator; - -import com.dfsek.tectonic.annotations.Value; - -import com.dfsek.terra.addons.biome.pipeline.api.Stage; -import com.dfsek.terra.addons.biome.pipeline.config.stage.StageTemplate; -import com.dfsek.terra.addons.biome.pipeline.mutator.ReplaceMutator; -import com.dfsek.terra.addons.biome.pipeline.stages.MutatorStage; -import com.dfsek.terra.api.config.meta.Meta; -import com.dfsek.terra.api.util.collection.ProbabilityCollection; -import com.dfsek.terra.api.world.biome.TerraBiome; - - -@SuppressWarnings("unused") -public class ReplaceMutatorTemplate extends StageTemplate { - @Value("from") - private @Meta String from; - - @Value("to") - private @Meta ProbabilityCollection<@Meta TerraBiome> to; - - @Override - public Stage get() { - return new MutatorStage(new ReplaceMutator(from, to, noise)); - } -} diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/stage/mutator/SmoothMutatorTemplate.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/stage/mutator/SmoothMutatorTemplate.java deleted file mode 100644 index 400779433..000000000 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/stage/mutator/SmoothMutatorTemplate.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.dfsek.terra.addons.biome.pipeline.config.stage.mutator; - -import com.dfsek.terra.addons.biome.pipeline.api.Stage; -import com.dfsek.terra.addons.biome.pipeline.config.stage.StageTemplate; -import com.dfsek.terra.addons.biome.pipeline.mutator.SmoothMutator; -import com.dfsek.terra.addons.biome.pipeline.stages.MutatorStage; - - -public class SmoothMutatorTemplate extends StageTemplate { - @Override - public Stage get() { - return new MutatorStage(new SmoothMutator(noise)); - } -} diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/expand/FractalExpander.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/expand/FractalExpander.java deleted file mode 100644 index 39050c873..000000000 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/expand/FractalExpander.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.dfsek.terra.addons.biome.pipeline.expand; - -import com.dfsek.terra.addons.biome.pipeline.api.BiomeExpander; -import com.dfsek.terra.api.noise.NoiseSampler; -import com.dfsek.terra.api.util.MathUtil; -import com.dfsek.terra.api.world.biome.TerraBiome; - - -public class FractalExpander implements BiomeExpander { - private final NoiseSampler sampler; - - public FractalExpander(NoiseSampler sampler) { - this.sampler = sampler; - } - - @Override - public TerraBiome getBetween(double x, double z, long seed, TerraBiome... others) { - return others[MathUtil.normalizeIndex(sampler.getNoiseSeeded(seed, x, z), others.length)]; - } -} diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/mutator/BorderListMutator.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/mutator/BorderListMutator.java deleted file mode 100644 index ff8570001..000000000 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/mutator/BorderListMutator.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.dfsek.terra.addons.biome.pipeline.mutator; - -import java.util.Map; - -import com.dfsek.terra.addons.biome.pipeline.api.BiomeMutator; -import com.dfsek.terra.api.noise.NoiseSampler; -import com.dfsek.terra.api.util.collection.ProbabilityCollection; -import com.dfsek.terra.api.world.biome.TerraBiome; - - -public class BorderListMutator implements BiomeMutator { - private final String border; - private final NoiseSampler noiseSampler; - private final ProbabilityCollection replaceDefault; - private final String defaultReplace; - private final Map> replace; - - public BorderListMutator(Map> replace, String border, String defaultReplace, - NoiseSampler noiseSampler, ProbabilityCollection replaceDefault) { - this.border = border; - this.noiseSampler = noiseSampler; - this.replaceDefault = replaceDefault; - this.defaultReplace = defaultReplace; - this.replace = replace; - } - - @Override - public TerraBiome mutate(ViewPoint viewPoint, double x, double z, long seed) { - TerraBiome origin = viewPoint.getBiome(0, 0); - if(origin.getTags().contains(defaultReplace)) { - for(int xi = -1; xi <= 1; xi++) { - for(int zi = -1; zi <= 1; zi++) { - if(xi == 0 && zi == 0) continue; - TerraBiome current = viewPoint.getBiome(xi, zi); - if(current == null) continue; - if(current.getTags().contains(border)) { - if(replace.containsKey(origin)) { - TerraBiome biome = replace.get(origin).get(noiseSampler, x, z, seed); - return biome == null ? origin : biome; - } - TerraBiome biome = replaceDefault.get(noiseSampler, x, z, seed); - return biome == null ? origin : biome; - } - } - } - } - return origin; - } -} diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/mutator/BorderMutator.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/mutator/BorderMutator.java deleted file mode 100644 index 6bd5c39c8..000000000 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/mutator/BorderMutator.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.dfsek.terra.addons.biome.pipeline.mutator; - -import com.dfsek.terra.addons.biome.pipeline.api.BiomeMutator; -import com.dfsek.terra.api.noise.NoiseSampler; -import com.dfsek.terra.api.util.collection.ProbabilityCollection; -import com.dfsek.terra.api.world.biome.TerraBiome; - - -public class BorderMutator implements BiomeMutator { - private final String border; - private final NoiseSampler noiseSampler; - private final ProbabilityCollection replace; - private final String replaceTag; - - public BorderMutator(String border, String replaceTag, NoiseSampler noiseSampler, ProbabilityCollection replace) { - this.border = border; - this.noiseSampler = noiseSampler; - this.replace = replace; - this.replaceTag = replaceTag; - } - - @Override - public TerraBiome mutate(ViewPoint viewPoint, double x, double z, long seed) { - TerraBiome origin = viewPoint.getBiome(0, 0); - if(origin.getTags().contains(replaceTag)) { - for(int xi = -1; xi <= 1; xi++) { - for(int zi = -1; zi <= 1; zi++) { - if(xi == 0 && zi == 0) continue; - TerraBiome current = viewPoint.getBiome(xi, zi); - if(current == null) continue; - if(current.getTags().contains(border)) { - TerraBiome biome = replace.get(noiseSampler, x, z, seed); - return biome == null ? origin : biome; - } - } - } - } - return origin; - } -} diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/mutator/ReplaceListMutator.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/mutator/ReplaceListMutator.java deleted file mode 100644 index 4712d41a7..000000000 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/mutator/ReplaceListMutator.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.dfsek.terra.addons.biome.pipeline.mutator; - -import java.util.Map; - -import com.dfsek.terra.addons.biome.pipeline.api.BiomeMutator; -import com.dfsek.terra.api.noise.NoiseSampler; -import com.dfsek.terra.api.util.collection.ProbabilityCollection; -import com.dfsek.terra.api.world.biome.TerraBiome; - - -public class ReplaceListMutator implements BiomeMutator { - private final Map> replace; - private final NoiseSampler sampler; - private final ProbabilityCollection replaceDefault; - private final String defaultTag; - - public ReplaceListMutator(Map> replace, String defaultTag, - ProbabilityCollection replaceDefault, NoiseSampler sampler) { - this.replace = replace; - this.sampler = sampler; - this.defaultTag = defaultTag; - this.replaceDefault = replaceDefault; - } - - @Override - public TerraBiome mutate(ViewPoint viewPoint, double x, double z, long seed) { - TerraBiome center = viewPoint.getBiome(0, 0); - if(replace.containsKey(center)) { - TerraBiome biome = replace.get(center).get(sampler, x, z, seed); - return biome == null ? viewPoint.getBiome(0, 0) : biome; - } - if(viewPoint.getBiome(0, 0).getTags().contains(defaultTag)) { - TerraBiome biome = replaceDefault.get(sampler, x, z, seed); - return biome == null ? viewPoint.getBiome(0, 0) : biome; - } - return center; - } -} diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/mutator/ReplaceMutator.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/mutator/ReplaceMutator.java deleted file mode 100644 index df77f796d..000000000 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/mutator/ReplaceMutator.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.dfsek.terra.addons.biome.pipeline.mutator; - -import com.dfsek.terra.addons.biome.pipeline.api.BiomeMutator; -import com.dfsek.terra.api.noise.NoiseSampler; -import com.dfsek.terra.api.util.collection.ProbabilityCollection; -import com.dfsek.terra.api.world.biome.TerraBiome; - - -public class ReplaceMutator implements BiomeMutator { - private final String replaceableTag; - private final ProbabilityCollection replace; - private final NoiseSampler sampler; - - public ReplaceMutator(String replaceable, ProbabilityCollection replace, NoiseSampler sampler) { - this.replaceableTag = replaceable; - this.replace = replace; - this.sampler = sampler; - } - - @Override - public TerraBiome mutate(ViewPoint viewPoint, double x, double z, long seed) { - if(viewPoint.getBiome(0, 0).getTags().contains(replaceableTag)) { - TerraBiome biome = replace.get(sampler, x, z, seed); - return biome == null ? viewPoint.getBiome(0, 0) : biome; - } - return viewPoint.getBiome(0, 0); - } -} diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/mutator/SmoothMutator.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/mutator/SmoothMutator.java deleted file mode 100644 index 3ac06370c..000000000 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/mutator/SmoothMutator.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.dfsek.terra.addons.biome.pipeline.mutator; - -import java.util.Objects; - -import com.dfsek.terra.addons.biome.pipeline.api.BiomeMutator; -import com.dfsek.terra.api.noise.NoiseSampler; -import com.dfsek.terra.api.util.MathUtil; -import com.dfsek.terra.api.world.biome.TerraBiome; - - -public class SmoothMutator implements BiomeMutator { - - private final NoiseSampler sampler; - - public SmoothMutator(NoiseSampler sampler) { - this.sampler = sampler; - } - - @Override - public TerraBiome mutate(ViewPoint viewPoint, double x, double z, long seed) { - TerraBiome top = viewPoint.getBiome(1, 0); - TerraBiome bottom = viewPoint.getBiome(-1, 0); - TerraBiome left = viewPoint.getBiome(0, 1); - TerraBiome right = viewPoint.getBiome(0, -1); - - - boolean vert = Objects.equals(top, bottom) && top != null; - boolean horiz = Objects.equals(left, right) && left != null; - - if(vert && horiz) { - return MathUtil.normalizeIndex(sampler.getNoiseSeeded(seed, x, z), 2) == 0 ? left : top; - } - - if(vert) return top; - if(horiz) return left; - - return viewPoint.getBiome(0, 0); - } -} diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/source/BiomeSource.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/source/BiomeSource.java deleted file mode 100644 index 694a820cf..000000000 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/source/BiomeSource.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.dfsek.terra.addons.biome.pipeline.source; - -import com.dfsek.terra.api.world.biome.TerraBiome; - - -public interface BiomeSource { - TerraBiome getBiome(double x, double z, long seed); -} diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/source/NoiseSource.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/source/NoiseSource.java deleted file mode 100644 index d7846a917..000000000 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/source/NoiseSource.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.dfsek.terra.addons.biome.pipeline.source; - -import com.dfsek.terra.api.noise.NoiseSampler; -import com.dfsek.terra.api.util.collection.ProbabilityCollection; -import com.dfsek.terra.api.world.biome.TerraBiome; - - -public class NoiseSource implements BiomeSource { - private final ProbabilityCollection biomes; - private final NoiseSampler sampler; - - public NoiseSource(ProbabilityCollection biomes, NoiseSampler sampler) { - this.biomes = biomes; - this.sampler = sampler; - } - - @Override - public TerraBiome getBiome(double x, double z, long seed) { - return biomes.get(sampler, x, z, seed); - } -} diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/stages/ExpanderStage.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/stages/ExpanderStage.java deleted file mode 100644 index 6fe1eab4e..000000000 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/stages/ExpanderStage.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.dfsek.terra.addons.biome.pipeline.stages; - -import com.dfsek.terra.addons.biome.pipeline.api.BiomeExpander; -import com.dfsek.terra.addons.biome.pipeline.api.BiomeHolder; -import com.dfsek.terra.addons.biome.pipeline.api.Stage; - - -public class ExpanderStage implements Stage { - private final BiomeExpander expander; - - public ExpanderStage(BiomeExpander expander) { - this.expander = expander; - } - - @Override - public BiomeHolder apply(BiomeHolder in, long seed) { - return in.expand(expander, seed); - } - - @Override - public boolean isExpansion() { - return true; - } - - public enum Type { - FRACTAL - } -} diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/stages/MutatorStage.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/stages/MutatorStage.java deleted file mode 100644 index e1b42fb3c..000000000 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/stages/MutatorStage.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.dfsek.terra.addons.biome.pipeline.stages; - -import com.dfsek.terra.addons.biome.pipeline.api.BiomeHolder; -import com.dfsek.terra.addons.biome.pipeline.api.BiomeMutator; -import com.dfsek.terra.addons.biome.pipeline.api.Stage; - - -public class MutatorStage implements Stage { - private final BiomeMutator mutator; - - public MutatorStage(BiomeMutator mutator) { - this.mutator = mutator; - } - - @Override - public BiomeHolder apply(BiomeHolder in, long seed) { - in.mutate(mutator, seed); - return in; - } - - @Override - public boolean isExpansion() { - return false; - } - - public enum Type { - REPLACE, - REPLACE_LIST, - BORDER, - BORDER_LIST, - SMOOTH - } -}