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 57304011b..000000000 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/BiomeHolderImpl.java +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Copyright (c) 2020-2021 Polyhedral Development - * - * The Terra Core Addons are licensed under the terms of the MIT License. For more details, - * reference the LICENSE file in this module's root directory. - */ - -package com.dfsek.terra.addons.biome.pipeline; - -import com.dfsek.terra.addons.biome.pipeline.api.BiomeHolder; -import com.dfsek.terra.addons.biome.pipeline.api.delegate.BiomeDelegate; -import com.dfsek.terra.addons.biome.pipeline.api.stage.type.BiomeExpander; -import com.dfsek.terra.addons.biome.pipeline.api.stage.type.BiomeMutator; -import com.dfsek.terra.addons.biome.pipeline.source.BiomeSource; -import com.dfsek.terra.api.util.vector.Vector2; - - -public class BiomeHolderImpl implements BiomeHolder { - private final Vector2.Mutable origin; - private final int width; - private final int offset; - private BiomeDelegate[][] biomes; - - public BiomeHolderImpl(int width, Vector2.Mutable origin) { - width += 4; - this.width = width; - biomes = new BiomeDelegate[width][width]; - this.origin = origin; - this.offset = 2; - } - - private BiomeHolderImpl(BiomeDelegate[][] biomes, Vector2.Mutable 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) { - BiomeDelegate[][] old = biomes; - int newWidth = width * 2 - 1; - - biomes = new BiomeDelegate[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 BiomeDelegate getBiome(int x, int z) { - x += offset; - z += offset; - return getBiomeRaw(x, z); - } - - @Override - public BiomeDelegate 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 8a4be5d7d..000000000 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/BiomePipeline.java +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Copyright (c) 2020-2021 Polyhedral Development - * - * The Terra Core Addons are licensed under the terms of the MIT License. For more details, - * reference the LICENSE file in this module's root directory. - */ - -package com.dfsek.terra.addons.biome.pipeline; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - -import com.dfsek.terra.addons.biome.pipeline.api.BiomeHolder; -import com.dfsek.terra.addons.biome.pipeline.api.stage.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, Vector2.of(x * (init - 1), z * (init - 1)).mutable()); - holder.fill(source, seed); - for(Stage stage : stages) holder = stage.apply(holder, seed); - return holder; - } - - public BiomeSource getSource() { - return source; - } - - public List getStages() { - return Collections.unmodifiableList(stages); - } - - 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 index f57020660..3468e168c 100644 --- 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 @@ -13,16 +13,16 @@ import java.util.function.Supplier; import com.dfsek.terra.addons.biome.pipeline.config.BiomePipelineTemplate; import com.dfsek.terra.addons.biome.pipeline.config.PipelineBiomeLoader; -import com.dfsek.terra.addons.biome.pipeline.config.SamplerSourceTemplate; +import com.dfsek.terra.addons.biome.pipeline.config.source.SamplerSourceTemplate; 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.reimplementation.api.Source; -import com.dfsek.terra.addons.biome.pipeline.reimplementation.api.Stage; -import com.dfsek.terra.addons.biome.pipeline.reimplementation.api.biome.PipelineBiome; +import com.dfsek.terra.addons.biome.pipeline.config.stage.mutator.BorderListStageTemplate; +import com.dfsek.terra.addons.biome.pipeline.config.stage.mutator.BorderStageTemplate; +import com.dfsek.terra.addons.biome.pipeline.config.stage.mutator.ReplaceListStageTemplate; +import com.dfsek.terra.addons.biome.pipeline.config.stage.mutator.ReplaceStageTemplate; +import com.dfsek.terra.addons.biome.pipeline.config.stage.mutator.SmoothStageTemplate; +import com.dfsek.terra.addons.biome.pipeline.api.Source; +import com.dfsek.terra.addons.biome.pipeline.api.Stage; +import com.dfsek.terra.addons.biome.pipeline.api.biome.PipelineBiome; import com.dfsek.terra.addons.manifest.api.AddonInitializer; import com.dfsek.terra.api.Platform; import com.dfsek.terra.api.addon.BaseAddon; @@ -71,11 +71,11 @@ public class BiomePipelineAddon implements AddonInitializer { CheckedRegistry>> stageRegistry = event.getPack().getOrCreateRegistry( STAGE_REGISTRY_KEY); stageRegistry.register(addon.key("FRACTAL_EXPAND"), ExpanderStageTemplate::new); - stageRegistry.register(addon.key("SMOOTH"), SmoothMutatorTemplate::new); - stageRegistry.register(addon.key("REPLACE"), ReplaceMutatorTemplate::new); - stageRegistry.register(addon.key("REPLACE_LIST"), ReplaceListMutatorTemplate::new); - stageRegistry.register(addon.key("BORDER"), BorderMutatorTemplate::new); - stageRegistry.register(addon.key("BORDER_LIST"), BorderListMutatorTemplate::new); + stageRegistry.register(addon.key("SMOOTH"), SmoothStageTemplate::new); + stageRegistry.register(addon.key("REPLACE"), ReplaceStageTemplate::new); + stageRegistry.register(addon.key("REPLACE_LIST"), ReplaceListStageTemplate::new); + stageRegistry.register(addon.key("BORDER"), BorderStageTemplate::new); + stageRegistry.register(addon.key("BORDER_LIST"), BorderListStageTemplate::new); }) .failThrough(); platform.getEventManager() diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/BiomePipelineColumn.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/BiomePipelineColumn.java index a66c8da27..f94493489 100644 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/BiomePipelineColumn.java +++ b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/BiomePipelineColumn.java @@ -17,7 +17,7 @@ public class BiomePipelineColumn implements Column { private final int z; private final Biome biome; - public BiomePipelineColumn(BiomeProvider biomeProvider, int min, int max, int x, int z, long seed) { + protected BiomePipelineColumn(BiomeProvider biomeProvider, int min, int max, int x, int z, long seed) { this.min = min; this.max = max; this.x = x; 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 f3f4c3aa9..000000000 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/BiomePipelineProvider.java +++ /dev/null @@ -1,131 +0,0 @@ -/* - * Copyright (c) 2020-2021 Polyhedral Development - * - * The Terra Core Addons are licensed under the terms of the MIT License. For more details, - * reference the LICENSE file in this module's root directory. - */ - -package com.dfsek.terra.addons.biome.pipeline; - -import com.github.benmanes.caffeine.cache.Caffeine; -import com.github.benmanes.caffeine.cache.LoadingCache; -import net.jafama.FastMath; - -import java.util.Comparator; -import java.util.HashSet; -import java.util.Optional; -import java.util.Set; -import java.util.stream.StreamSupport; - -import com.dfsek.terra.addons.biome.pipeline.api.BiomeHolder; -import com.dfsek.terra.addons.biome.pipeline.api.delegate.BiomeDelegate; -import com.dfsek.terra.addons.biome.pipeline.api.stage.Stage; -import com.dfsek.terra.api.noise.NoiseSampler; -import com.dfsek.terra.api.registry.key.StringIdentifiable; -import com.dfsek.terra.api.util.Column; -import com.dfsek.terra.api.world.biome.Biome; -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; - - private final Set biomes; - - public BiomePipelineProvider(BiomePipeline pipeline, int resolution, NoiseSampler mutator, double noiseAmp) { - this.resolution = resolution; - this.mutator = mutator; - this.noiseAmp = noiseAmp; - holderCache = Caffeine.newBuilder() - .maximumSize(1024) - .build(key -> pipeline.getBiomes(key.x, key.z, key.seed)); - this.pipeline = pipeline; - - Set biomeSet = new HashSet<>(); - pipeline.getSource().getBiomes().forEach(biomeSet::add); - Iterable result = biomeSet; - for(Stage stage : pipeline.getStages()) { - result = stage.getBiomes(result); // pass through all stages - } - this.biomes = new HashSet<>(); - Iterable finalResult = result; - result.forEach(biomeDelegate -> { - if(biomeDelegate.isEphemeral()) { - - StringBuilder biomeList = new StringBuilder("\n"); - StreamSupport.stream(finalResult.spliterator(), false) - .sorted(Comparator.comparing(StringIdentifiable::getID)) - .forEach(delegate -> biomeList - .append(" - ") - .append(delegate.getID()) - .append(':') - .append(delegate.getClass().getCanonicalName()) - .append('\n')); - throw new IllegalArgumentException("Biome Pipeline leaks ephemeral biome \"" + biomeDelegate.getID() + - "\". Ensure there is a stage to guarantee replacement of the ephemeral biome. Biomes: " + - biomeList); - } - this.biomes.add(biomeDelegate.getBiome()); - }); - } - - @Override - public Biome getBiome(int x, int y, int z, long seed) { - return getBiome(x, z, seed); - } - - public Biome getBiome(int x, int z, long seed) { - x += mutator.noise(seed + 1, x, z) * noiseAmp; - z += mutator.noise(seed + 2, x, z) * noiseAmp; - - - x /= resolution; - z /= resolution; - - int fdX = FastMath.floorDiv(x, pipeline.getSize()); - int fdZ = FastMath.floorDiv(z, pipeline.getSize()); - return holderCache.get(new SeededVector(fdX, fdZ, seed)).getBiome(x - fdX * pipeline.getSize(), - z - fdZ * pipeline.getSize()).getBiome(); - } - - @Override - public Optional getBaseBiome(int x, int z, long seed) { - return Optional.of(getBiome(x, z, seed)); - } - - @Override - public Iterable getBiomes() { - return biomes; - } - - @Override - public Column getColumn(int x, int z, long seed, int min, int max) { - return new BiomePipelineColumn(this, min, max, x, z, seed); - } - - @Override - public int resolution() { - return resolution; - } - - private record SeededVector(int x, int z, long seed) { - @Override - public boolean equals(Object obj) { - if(obj instanceof SeededVector that) { - return this.z == that.z && this.x == that.x && this.seed == that.seed; - } - return false; - } - - @Override - public int hashCode() { - int code = x; - code = 31 * code + z; - return 31 * code + ((int) (seed ^ (seed >>> 32))); - } - } -} diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/reimplementation/PipelineBiomeProvider.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/PipelineBiomeProvider.java similarity index 89% rename from common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/reimplementation/PipelineBiomeProvider.java rename to common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/PipelineBiomeProvider.java index e5ddca9e8..c9a03c073 100644 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/reimplementation/PipelineBiomeProvider.java +++ b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/PipelineBiomeProvider.java @@ -1,4 +1,4 @@ -package com.dfsek.terra.addons.biome.pipeline.reimplementation; +package com.dfsek.terra.addons.biome.pipeline; import com.github.benmanes.caffeine.cache.Caffeine; import com.github.benmanes.caffeine.cache.LoadingCache; @@ -9,11 +9,11 @@ import java.util.HashSet; import java.util.Set; import java.util.stream.StreamSupport; -import com.dfsek.terra.addons.biome.pipeline.BiomePipelineColumn; -import com.dfsek.terra.addons.biome.pipeline.reimplementation.api.BiomeChunk; -import com.dfsek.terra.addons.biome.pipeline.reimplementation.api.Pipeline; -import com.dfsek.terra.addons.biome.pipeline.reimplementation.api.Stage; -import com.dfsek.terra.addons.biome.pipeline.reimplementation.api.biome.PipelineBiome; +import com.dfsek.terra.addons.biome.pipeline.api.BiomeChunk; +import com.dfsek.terra.addons.biome.pipeline.api.Pipeline; +import com.dfsek.terra.addons.biome.pipeline.api.SeededVector; +import com.dfsek.terra.addons.biome.pipeline.api.Stage; +import com.dfsek.terra.addons.biome.pipeline.api.biome.PipelineBiome; import com.dfsek.terra.api.noise.NoiseSampler; import com.dfsek.terra.api.registry.key.StringIdentifiable; import com.dfsek.terra.api.util.Column; diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/reimplementation/StringBiome.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/StringBiome.java similarity index 92% rename from common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/reimplementation/StringBiome.java rename to common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/StringBiome.java index 008ce61fd..d141ecf6e 100644 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/reimplementation/StringBiome.java +++ b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/StringBiome.java @@ -1,4 +1,4 @@ -package com.dfsek.terra.addons.biome.pipeline.reimplementation; +package com.dfsek.terra.addons.biome.pipeline; import java.util.Optional; import java.util.Set; diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/api/BiomeChunk.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/api/BiomeChunk.java new file mode 100644 index 000000000..4b7d60ae2 --- /dev/null +++ b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/api/BiomeChunk.java @@ -0,0 +1,10 @@ +package com.dfsek.terra.addons.biome.pipeline.api; + + +import com.dfsek.terra.addons.biome.pipeline.api.biome.PipelineBiome; + + +public interface BiomeChunk { + + PipelineBiome get(int xInChunk, int zInChunk); +} 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 26bb63315..000000000 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/api/BiomeHolder.java +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright (c) 2020-2021 Polyhedral Development - * - * The Terra Core Addons are licensed under the terms of the MIT License. For more details, - * reference the LICENSE file in this module's root directory. - */ - -package com.dfsek.terra.addons.biome.pipeline.api; - -import com.dfsek.terra.addons.biome.pipeline.api.delegate.BiomeDelegate; -import com.dfsek.terra.addons.biome.pipeline.api.stage.type.BiomeExpander; -import com.dfsek.terra.addons.biome.pipeline.api.stage.type.BiomeMutator; -import com.dfsek.terra.addons.biome.pipeline.source.BiomeSource; - - -public interface BiomeHolder { - BiomeHolder expand(BiomeExpander expander, long seed); - - void mutate(BiomeMutator mutator, long seed); - - void fill(BiomeSource source, long seed); - - BiomeDelegate getBiome(int x, int z); - - BiomeDelegate getBiomeRaw(int x, int z); -} diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/reimplementation/api/Expander.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/api/Expander.java similarity index 71% rename from common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/reimplementation/api/Expander.java rename to common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/api/Expander.java index a4b22114f..3e8b9e42d 100644 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/reimplementation/api/Expander.java +++ b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/api/Expander.java @@ -1,7 +1,7 @@ -package com.dfsek.terra.addons.biome.pipeline.reimplementation.api; +package com.dfsek.terra.addons.biome.pipeline.api; -import com.dfsek.terra.addons.biome.pipeline.reimplementation.BiomeChunkImpl.ViewPoint; -import com.dfsek.terra.addons.biome.pipeline.reimplementation.api.biome.PipelineBiome; +import com.dfsek.terra.addons.biome.pipeline.pipeline.BiomeChunkImpl.ViewPoint; +import com.dfsek.terra.addons.biome.pipeline.api.biome.PipelineBiome; /** diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/reimplementation/api/Pipeline.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/api/Pipeline.java similarity index 59% rename from common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/reimplementation/api/Pipeline.java rename to common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/api/Pipeline.java index d2331962f..cb52328ce 100644 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/reimplementation/api/Pipeline.java +++ b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/api/Pipeline.java @@ -1,9 +1,7 @@ -package com.dfsek.terra.addons.biome.pipeline.reimplementation.api; +package com.dfsek.terra.addons.biome.pipeline.api; import java.util.List; -import com.dfsek.terra.addons.biome.pipeline.reimplementation.SeededVector; - public interface Pipeline { BiomeChunk generateChunk(SeededVector worldCoordinates); diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/reimplementation/SeededVector.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/api/SeededVector.java similarity index 87% rename from common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/reimplementation/SeededVector.java rename to common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/api/SeededVector.java index bffbcd5a9..951b7e592 100644 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/reimplementation/SeededVector.java +++ b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/api/SeededVector.java @@ -1,4 +1,4 @@ -package com.dfsek.terra.addons.biome.pipeline.reimplementation; +package com.dfsek.terra.addons.biome.pipeline.api; public record SeededVector(long seed, int x, int z) { diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/api/Source.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/api/Source.java new file mode 100644 index 000000000..185463786 --- /dev/null +++ b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/api/Source.java @@ -0,0 +1,11 @@ +package com.dfsek.terra.addons.biome.pipeline.api; + + +import com.dfsek.terra.addons.biome.pipeline.api.biome.PipelineBiome; + + +public interface Source { + PipelineBiome get(long seed, int x, int z); + + Iterable getBiomes(); +} \ No newline at end of file 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 new file mode 100644 index 000000000..4611968c3 --- /dev/null +++ b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/api/Stage.java @@ -0,0 +1,15 @@ +package com.dfsek.terra.addons.biome.pipeline.api; + +import com.dfsek.terra.addons.biome.pipeline.pipeline.BiomeChunkImpl.ViewPoint; +import com.dfsek.terra.addons.biome.pipeline.api.biome.PipelineBiome; + + +public interface Stage { + PipelineBiome apply(ViewPoint viewPoint); + + int maxRelativeReadDistance(); + + default Iterable getBiomes(Iterable biomes) { + return biomes; + } +} diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/reimplementation/api/biome/DelegatedBiome.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/api/biome/DelegatedPipelineBiome.java similarity index 70% rename from common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/reimplementation/api/biome/DelegatedBiome.java rename to common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/api/biome/DelegatedPipelineBiome.java index a7dd0a666..70c94b58e 100644 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/reimplementation/api/biome/DelegatedBiome.java +++ b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/api/biome/DelegatedPipelineBiome.java @@ -1,14 +1,14 @@ -package com.dfsek.terra.addons.biome.pipeline.reimplementation.api.biome; +package com.dfsek.terra.addons.biome.pipeline.api.biome; import java.util.Set; import com.dfsek.terra.api.world.biome.Biome; -public final class DelegatedBiome implements PipelineBiome { +public final class DelegatedPipelineBiome implements PipelineBiome { private final Biome biome; - public DelegatedBiome(Biome biome) { + public DelegatedPipelineBiome(Biome biome) { this.biome = biome; } @@ -24,7 +24,7 @@ public final class DelegatedBiome implements PipelineBiome { @Override public boolean equals(Object obj) { - if(!(obj instanceof DelegatedBiome that)) return false; + if(!(obj instanceof DelegatedPipelineBiome that)) return false; return that.biome.equals(this.biome); } diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/api/delegate/EphemeralBiomeDelegate.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/api/biome/EphemeralPipelineBiome.java similarity index 78% rename from common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/api/delegate/EphemeralBiomeDelegate.java rename to common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/api/biome/EphemeralPipelineBiome.java index d02221f1b..44ef4a311 100644 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/api/delegate/EphemeralBiomeDelegate.java +++ b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/api/biome/EphemeralPipelineBiome.java @@ -1,4 +1,4 @@ -package com.dfsek.terra.addons.biome.pipeline.api.delegate; +package com.dfsek.terra.addons.biome.pipeline.api.biome; import java.util.HashSet; import java.util.Set; @@ -6,11 +6,11 @@ import java.util.Set; import com.dfsek.terra.api.world.biome.Biome; -final class EphemeralBiomeDelegate implements BiomeDelegate { +final class EphemeralPipelineBiome implements PipelineBiome { private final Set tags; private final String id; - public EphemeralBiomeDelegate(String id) { + public EphemeralPipelineBiome(String id) { this.id = id; tags = new HashSet<>(); tags.add(id); @@ -44,7 +44,7 @@ final class EphemeralBiomeDelegate implements BiomeDelegate { @Override public boolean equals(Object obj) { - if(!(obj instanceof EphemeralBiomeDelegate that)) return false; + if(!(obj instanceof EphemeralPipelineBiome that)) return false; return this.id.equals(that.id); } diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/reimplementation/api/biome/PipelineBiome.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/api/biome/PipelineBiome.java similarity index 73% rename from common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/reimplementation/api/biome/PipelineBiome.java rename to common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/api/biome/PipelineBiome.java index eb288865e..cbc4ffe90 100644 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/reimplementation/api/biome/PipelineBiome.java +++ b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/api/biome/PipelineBiome.java @@ -1,4 +1,4 @@ -package com.dfsek.terra.addons.biome.pipeline.reimplementation.api.biome; +package com.dfsek.terra.addons.biome.pipeline.api.biome; import java.util.Set; @@ -10,15 +10,15 @@ public interface PipelineBiome extends StringIdentifiable { Biome getBiome(); static PipelineBiome ephemeral(String id) { - return new EphemeralBiomeDelegate(id); + return new EphemeralPipelineBiome(id); } static PipelineBiome from(Biome biome) { - return new DelegatedBiome(biome); + return new DelegatedPipelineBiome(biome); } static PipelineBiome self() { - return SelfDelegate.INSTANCE; + return SelfPipelineBiome.INSTANCE; } Set getTags(); diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/reimplementation/api/biome/SelfDelegate.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/api/biome/SelfPipelineBiome.java similarity index 72% rename from common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/reimplementation/api/biome/SelfDelegate.java rename to common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/api/biome/SelfPipelineBiome.java index 5c99e48d8..068fa8b16 100644 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/reimplementation/api/biome/SelfDelegate.java +++ b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/api/biome/SelfPipelineBiome.java @@ -1,4 +1,4 @@ -package com.dfsek.terra.addons.biome.pipeline.reimplementation.api.biome; +package com.dfsek.terra.addons.biome.pipeline.api.biome; import java.util.Collections; import java.util.Set; @@ -6,10 +6,10 @@ import java.util.Set; import com.dfsek.terra.api.world.biome.Biome; -final class SelfDelegate implements PipelineBiome { - public static final SelfDelegate INSTANCE = new SelfDelegate(); +final class SelfPipelineBiome implements PipelineBiome { + public static final SelfPipelineBiome INSTANCE = new SelfPipelineBiome(); - private SelfDelegate() { + private SelfPipelineBiome() { } diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/api/delegate/BiomeDelegate.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/api/delegate/BiomeDelegate.java deleted file mode 100644 index 7e339285a..000000000 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/api/delegate/BiomeDelegate.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.dfsek.terra.addons.biome.pipeline.api.delegate; - -import java.util.Set; - -import com.dfsek.terra.api.registry.key.StringIdentifiable; -import com.dfsek.terra.api.world.biome.Biome; - - -public interface BiomeDelegate extends StringIdentifiable { - static BiomeDelegate ephemeral(String id) { - return new EphemeralBiomeDelegate(id); - } - - static BiomeDelegate from(Biome biome) { - return new DelegatedBiome(biome); - } - - static BiomeDelegate self() { - return SelfDelegate.INSTANCE; - } - - Biome getBiome(); - - Set getTags(); - - default boolean isEphemeral() { - return false; - } - - default boolean isSelf() { - return false; - } - - -} diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/api/delegate/DelegatedBiome.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/api/delegate/DelegatedBiome.java deleted file mode 100644 index 4085f6a43..000000000 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/api/delegate/DelegatedBiome.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.dfsek.terra.addons.biome.pipeline.api.delegate; - -import java.util.Set; - -import com.dfsek.terra.api.world.biome.Biome; - - -final class DelegatedBiome implements BiomeDelegate { - private final Biome biome; - - public DelegatedBiome(Biome biome) { - this.biome = biome; - } - - @Override - public Biome getBiome() { - return biome; - } - - @Override - public int hashCode() { - return biome.hashCode(); - } - - @Override - public boolean equals(Object obj) { - if(!(obj instanceof DelegatedBiome that)) return false; - return that.biome.equals(this.biome); - } - - @Override - public Set getTags() { - return biome.getTags(); - } - - @Override - public String getID() { - return biome.getID(); - } -} diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/api/delegate/SelfDelegate.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/api/delegate/SelfDelegate.java deleted file mode 100644 index 60b744059..000000000 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/api/delegate/SelfDelegate.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.dfsek.terra.addons.biome.pipeline.api.delegate; - -import java.util.Collections; -import java.util.Set; - -import com.dfsek.terra.api.world.biome.Biome; - - -final class SelfDelegate implements BiomeDelegate { - public static final SelfDelegate INSTANCE = new SelfDelegate(); - - private SelfDelegate() { - - } - - @Override - public Biome getBiome() { - throw new UnsupportedOperationException("Cannot get biome from self delegate"); - } - - @Override - public boolean isSelf() { - return true; - } - - @Override - public boolean isEphemeral() { - return true; - } - - @Override - public Set getTags() { - return Collections.emptySet(); - } - - @Override - public String getID() { - return "SELF"; - } -} diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/api/stage/Stage.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/api/stage/Stage.java deleted file mode 100644 index fb4b1007b..000000000 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/api/stage/Stage.java +++ /dev/null @@ -1,20 +0,0 @@ -/* - * Copyright (c) 2020-2021 Polyhedral Development - * - * The Terra Core Addons are licensed under the terms of the MIT License. For more details, - * reference the LICENSE file in this module's root directory. - */ - -package com.dfsek.terra.addons.biome.pipeline.api.stage; - -import com.dfsek.terra.addons.biome.pipeline.api.BiomeHolder; -import com.dfsek.terra.addons.biome.pipeline.api.delegate.BiomeDelegate; - - -public interface Stage { - BiomeHolder apply(BiomeHolder in, long seed); - - boolean isExpansion(); - - Iterable getBiomes(Iterable biomes); -} diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/api/stage/type/BiomeExpander.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/api/stage/type/BiomeExpander.java deleted file mode 100644 index c3e721c08..000000000 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/api/stage/type/BiomeExpander.java +++ /dev/null @@ -1,15 +0,0 @@ -/* - * Copyright (c) 2020-2021 Polyhedral Development - * - * The Terra Core Addons are licensed under the terms of the MIT License. For more details, - * reference the LICENSE file in this module's root directory. - */ - -package com.dfsek.terra.addons.biome.pipeline.api.stage.type; - -import com.dfsek.terra.addons.biome.pipeline.api.delegate.BiomeDelegate; - - -public interface BiomeExpander { - BiomeDelegate getBetween(double x, double z, long seed, BiomeDelegate... others); -} diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/api/stage/type/BiomeMutator.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/api/stage/type/BiomeMutator.java deleted file mode 100644 index f7cc3b7bd..000000000 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/api/stage/type/BiomeMutator.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright (c) 2020-2021 Polyhedral Development - * - * The Terra Core Addons are licensed under the terms of the MIT License. For more details, - * reference the LICENSE file in this module's root directory. - */ - -package com.dfsek.terra.addons.biome.pipeline.api.stage.type; - -import com.dfsek.terra.addons.biome.pipeline.api.BiomeHolder; -import com.dfsek.terra.addons.biome.pipeline.api.delegate.BiomeDelegate; - - -public interface BiomeMutator { - BiomeDelegate mutate(ViewPoint viewPoint, double x, double z, long seed); - - default Iterable getBiomes(Iterable biomes) { - return biomes; - } - - 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 BiomeDelegate 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/config/BiomePipelineTemplate.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/BiomePipelineTemplate.java index e2859cbff..b88b75a7c 100644 --- 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 @@ -14,10 +14,10 @@ import com.dfsek.tectonic.api.config.template.object.ObjectTemplate; import java.util.List; -import com.dfsek.terra.addons.biome.pipeline.reimplementation.PipelineBiomeProvider; -import com.dfsek.terra.addons.biome.pipeline.reimplementation.PipelineImpl; -import com.dfsek.terra.addons.biome.pipeline.reimplementation.api.Source; -import com.dfsek.terra.addons.biome.pipeline.reimplementation.api.Stage; +import com.dfsek.terra.addons.biome.pipeline.PipelineBiomeProvider; +import com.dfsek.terra.addons.biome.pipeline.pipeline.PipelineImpl; +import com.dfsek.terra.addons.biome.pipeline.api.Source; +import com.dfsek.terra.addons.biome.pipeline.api.Stage; import com.dfsek.terra.api.config.meta.Meta; import com.dfsek.terra.api.noise.NoiseSampler; import com.dfsek.terra.api.world.biome.generation.BiomeProvider; diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/PipelineBiomeLoader.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/PipelineBiomeLoader.java index 5a5e4beb9..52ed6470e 100644 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/PipelineBiomeLoader.java +++ b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/PipelineBiomeLoader.java @@ -8,7 +8,7 @@ import org.jetbrains.annotations.NotNull; import java.lang.reflect.AnnotatedType; -import com.dfsek.terra.addons.biome.pipeline.reimplementation.api.biome.PipelineBiome; +import com.dfsek.terra.addons.biome.pipeline.api.biome.PipelineBiome; import com.dfsek.terra.api.registry.Registry; import com.dfsek.terra.api.world.biome.Biome; diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/SamplerSourceTemplate.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/source/SamplerSourceTemplate.java similarity index 75% rename from common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/SamplerSourceTemplate.java rename to common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/source/SamplerSourceTemplate.java index 8fe5f7310..a054976d7 100644 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/SamplerSourceTemplate.java +++ b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/source/SamplerSourceTemplate.java @@ -5,14 +5,14 @@ * reference the LICENSE file in this module's root directory. */ -package com.dfsek.terra.addons.biome.pipeline.config; +package com.dfsek.terra.addons.biome.pipeline.config.source; import com.dfsek.tectonic.api.config.template.annotations.Description; import com.dfsek.tectonic.api.config.template.annotations.Value; -import com.dfsek.terra.addons.biome.pipeline.reimplementation.api.Source; -import com.dfsek.terra.addons.biome.pipeline.reimplementation.api.biome.PipelineBiome; -import com.dfsek.terra.addons.biome.pipeline.reimplementation.source.SamplerSource; +import com.dfsek.terra.addons.biome.pipeline.api.Source; +import com.dfsek.terra.addons.biome.pipeline.api.biome.PipelineBiome; +import com.dfsek.terra.addons.biome.pipeline.source.SamplerSource; import com.dfsek.terra.api.config.meta.Meta; import com.dfsek.terra.api.noise.NoiseSampler; import com.dfsek.terra.api.util.collection.ProbabilityCollection; 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/source/SourceTemplate.java similarity index 74% rename from common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/SourceTemplate.java rename to common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/source/SourceTemplate.java index a7908fa6f..a8e88a8ab 100644 --- 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/source/SourceTemplate.java @@ -5,11 +5,11 @@ * reference the LICENSE file in this module's root directory. */ -package com.dfsek.terra.addons.biome.pipeline.config; +package com.dfsek.terra.addons.biome.pipeline.config.source; import com.dfsek.tectonic.api.config.template.object.ObjectTemplate; -import com.dfsek.terra.addons.biome.pipeline.reimplementation.api.Source; +import com.dfsek.terra.addons.biome.pipeline.api.Source; 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 index d84756bf4..afed0c15e 100644 --- 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 @@ -11,7 +11,7 @@ import com.dfsek.tectonic.api.config.template.annotations.Description; import com.dfsek.tectonic.api.config.template.annotations.Value; import com.dfsek.tectonic.api.config.template.object.ObjectTemplate; -import com.dfsek.terra.addons.biome.pipeline.reimplementation.api.Stage; +import com.dfsek.terra.addons.biome.pipeline.api.Stage; import com.dfsek.terra.api.config.meta.Meta; import com.dfsek.terra.api.noise.NoiseSampler; 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 index 0693bd6e2..a8fce25be 100644 --- 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 @@ -8,8 +8,8 @@ package com.dfsek.terra.addons.biome.pipeline.config.stage.expander; import com.dfsek.terra.addons.biome.pipeline.config.stage.StageTemplate; -import com.dfsek.terra.addons.biome.pipeline.reimplementation.api.Expander; -import com.dfsek.terra.addons.biome.pipeline.reimplementation.stage.expander.FractalExpander; +import com.dfsek.terra.addons.biome.pipeline.api.Expander; +import com.dfsek.terra.addons.biome.pipeline.stage.expander.FractalExpander; public class ExpanderStageTemplate extends StageTemplate { 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/BorderListStageTemplate.java similarity index 71% rename from common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/stage/mutator/BorderListMutatorTemplate.java rename to common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/stage/mutator/BorderListStageTemplate.java index 09b126da2..fb415260d 100644 --- 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/BorderListStageTemplate.java @@ -12,15 +12,15 @@ import com.dfsek.tectonic.api.config.template.annotations.Value; import java.util.Map; import com.dfsek.terra.addons.biome.pipeline.config.stage.StageTemplate; -import com.dfsek.terra.addons.biome.pipeline.reimplementation.api.Stage; -import com.dfsek.terra.addons.biome.pipeline.reimplementation.api.biome.PipelineBiome; -import com.dfsek.terra.addons.biome.pipeline.reimplementation.stage.mutators.BorderListMutator; +import com.dfsek.terra.addons.biome.pipeline.api.Stage; +import com.dfsek.terra.addons.biome.pipeline.api.biome.PipelineBiome; +import com.dfsek.terra.addons.biome.pipeline.stage.mutators.BorderListStage; import com.dfsek.terra.api.config.meta.Meta; import com.dfsek.terra.api.util.collection.ProbabilityCollection; @SuppressWarnings("unused") -public class BorderListMutatorTemplate extends StageTemplate { +public class BorderListStageTemplate extends StageTemplate { @Value("from") private @Meta String from; @@ -36,6 +36,6 @@ public class BorderListMutatorTemplate extends StageTemplate { @Override public Stage get() { - return new BorderListMutator(replace, from, defaultReplace, noise, defaultTo); + return new BorderListStage(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/BorderStageTemplate.java similarity index 68% rename from common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/stage/mutator/BorderMutatorTemplate.java rename to common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/stage/mutator/BorderStageTemplate.java index 9e2d3530d..5327c211c 100644 --- 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/BorderStageTemplate.java @@ -10,15 +10,15 @@ package com.dfsek.terra.addons.biome.pipeline.config.stage.mutator; import com.dfsek.tectonic.api.config.template.annotations.Value; import com.dfsek.terra.addons.biome.pipeline.config.stage.StageTemplate; -import com.dfsek.terra.addons.biome.pipeline.reimplementation.api.Stage; -import com.dfsek.terra.addons.biome.pipeline.reimplementation.api.biome.PipelineBiome; -import com.dfsek.terra.addons.biome.pipeline.reimplementation.stage.mutators.BorderMutator; +import com.dfsek.terra.addons.biome.pipeline.api.Stage; +import com.dfsek.terra.addons.biome.pipeline.api.biome.PipelineBiome; +import com.dfsek.terra.addons.biome.pipeline.stage.mutators.BorderStage; import com.dfsek.terra.api.config.meta.Meta; import com.dfsek.terra.api.util.collection.ProbabilityCollection; @SuppressWarnings("unused") -public class BorderMutatorTemplate extends StageTemplate { +public class BorderStageTemplate extends StageTemplate { @Value("from") private @Meta String from; @@ -30,6 +30,6 @@ public class BorderMutatorTemplate extends StageTemplate { @Override public Stage get() { - return new BorderMutator(from, replace, noise, to); + return new BorderStage(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/ReplaceListStageTemplate.java similarity index 69% rename from common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/stage/mutator/ReplaceListMutatorTemplate.java rename to common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/stage/mutator/ReplaceListStageTemplate.java index d30dabb54..a6710286f 100644 --- 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/ReplaceListStageTemplate.java @@ -12,15 +12,15 @@ import com.dfsek.tectonic.api.config.template.annotations.Value; import java.util.Map; import com.dfsek.terra.addons.biome.pipeline.config.stage.StageTemplate; -import com.dfsek.terra.addons.biome.pipeline.reimplementation.api.Stage; -import com.dfsek.terra.addons.biome.pipeline.reimplementation.api.biome.PipelineBiome; -import com.dfsek.terra.addons.biome.pipeline.reimplementation.stage.mutators.ReplaceListMutator; +import com.dfsek.terra.addons.biome.pipeline.api.Stage; +import com.dfsek.terra.addons.biome.pipeline.api.biome.PipelineBiome; +import com.dfsek.terra.addons.biome.pipeline.stage.mutators.ReplaceListStage; import com.dfsek.terra.api.config.meta.Meta; import com.dfsek.terra.api.util.collection.ProbabilityCollection; @SuppressWarnings("unused") -public class ReplaceListMutatorTemplate extends StageTemplate { +public class ReplaceListStageTemplate extends StageTemplate { @Value("default-from") private @Meta String defaultFrom; @@ -32,6 +32,6 @@ public class ReplaceListMutatorTemplate extends StageTemplate { @Override public Stage get() { - return new ReplaceListMutator(replace, defaultFrom, defaultTo, noise); + return new ReplaceListStage(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/ReplaceStageTemplate.java similarity index 67% rename from common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/stage/mutator/ReplaceMutatorTemplate.java rename to common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/stage/mutator/ReplaceStageTemplate.java index 8431ba0e9..5a799eeb4 100644 --- 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/ReplaceStageTemplate.java @@ -10,15 +10,15 @@ package com.dfsek.terra.addons.biome.pipeline.config.stage.mutator; import com.dfsek.tectonic.api.config.template.annotations.Value; import com.dfsek.terra.addons.biome.pipeline.config.stage.StageTemplate; -import com.dfsek.terra.addons.biome.pipeline.reimplementation.api.Stage; -import com.dfsek.terra.addons.biome.pipeline.reimplementation.api.biome.PipelineBiome; -import com.dfsek.terra.addons.biome.pipeline.reimplementation.stage.mutators.ReplaceMutator; +import com.dfsek.terra.addons.biome.pipeline.api.Stage; +import com.dfsek.terra.addons.biome.pipeline.api.biome.PipelineBiome; +import com.dfsek.terra.addons.biome.pipeline.stage.mutators.ReplaceStage; import com.dfsek.terra.api.config.meta.Meta; import com.dfsek.terra.api.util.collection.ProbabilityCollection; @SuppressWarnings("unused") -public class ReplaceMutatorTemplate extends StageTemplate { +public class ReplaceStageTemplate extends StageTemplate { @Value("from") private @Meta String from; @@ -27,6 +27,6 @@ public class ReplaceMutatorTemplate extends StageTemplate { @Override public Stage get() { - return new ReplaceMutator(from, to, noise); + return new ReplaceStage(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/SmoothStageTemplate.java similarity index 60% rename from common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/stage/mutator/SmoothMutatorTemplate.java rename to common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/config/stage/mutator/SmoothStageTemplate.java index 6a60c7f2c..50a7aa5b9 100644 --- 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/SmoothStageTemplate.java @@ -8,13 +8,13 @@ package com.dfsek.terra.addons.biome.pipeline.config.stage.mutator; import com.dfsek.terra.addons.biome.pipeline.config.stage.StageTemplate; -import com.dfsek.terra.addons.biome.pipeline.reimplementation.api.Stage; -import com.dfsek.terra.addons.biome.pipeline.reimplementation.stage.mutators.SmoothMutator; +import com.dfsek.terra.addons.biome.pipeline.api.Stage; +import com.dfsek.terra.addons.biome.pipeline.stage.mutators.SmoothStage; -public class SmoothMutatorTemplate extends StageTemplate { +public class SmoothStageTemplate extends StageTemplate { @Override public Stage get() { - return new SmoothMutator(noise); + return new SmoothStage(noise); } } diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/reimplementation/BiomeChunkImpl.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/pipeline/BiomeChunkImpl.java similarity index 95% rename from common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/reimplementation/BiomeChunkImpl.java rename to common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/pipeline/BiomeChunkImpl.java index 2312357cf..b5f5b770f 100644 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/reimplementation/BiomeChunkImpl.java +++ b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/pipeline/BiomeChunkImpl.java @@ -1,13 +1,14 @@ -package com.dfsek.terra.addons.biome.pipeline.reimplementation; +package com.dfsek.terra.addons.biome.pipeline.pipeline; import net.jafama.FastMath; import java.util.List; -import com.dfsek.terra.addons.biome.pipeline.reimplementation.api.BiomeChunk; -import com.dfsek.terra.addons.biome.pipeline.reimplementation.api.Expander; -import com.dfsek.terra.addons.biome.pipeline.reimplementation.api.Stage; -import com.dfsek.terra.addons.biome.pipeline.reimplementation.api.biome.PipelineBiome; +import com.dfsek.terra.addons.biome.pipeline.api.SeededVector; +import com.dfsek.terra.addons.biome.pipeline.api.BiomeChunk; +import com.dfsek.terra.addons.biome.pipeline.api.Expander; +import com.dfsek.terra.addons.biome.pipeline.api.Stage; +import com.dfsek.terra.addons.biome.pipeline.api.biome.PipelineBiome; public class BiomeChunkImpl implements BiomeChunk { diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/reimplementation/PipelineImpl.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/pipeline/PipelineImpl.java similarity index 80% rename from common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/reimplementation/PipelineImpl.java rename to common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/pipeline/PipelineImpl.java index 7c6be7dcc..318ac8933 100644 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/reimplementation/PipelineImpl.java +++ b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/pipeline/PipelineImpl.java @@ -1,12 +1,13 @@ -package com.dfsek.terra.addons.biome.pipeline.reimplementation; +package com.dfsek.terra.addons.biome.pipeline.pipeline; import java.util.List; -import com.dfsek.terra.addons.biome.pipeline.reimplementation.api.BiomeChunk; -import com.dfsek.terra.addons.biome.pipeline.reimplementation.api.Expander; -import com.dfsek.terra.addons.biome.pipeline.reimplementation.api.Pipeline; -import com.dfsek.terra.addons.biome.pipeline.reimplementation.api.Source; -import com.dfsek.terra.addons.biome.pipeline.reimplementation.api.Stage; +import com.dfsek.terra.addons.biome.pipeline.api.SeededVector; +import com.dfsek.terra.addons.biome.pipeline.api.BiomeChunk; +import com.dfsek.terra.addons.biome.pipeline.api.Expander; +import com.dfsek.terra.addons.biome.pipeline.api.Pipeline; +import com.dfsek.terra.addons.biome.pipeline.api.Source; +import com.dfsek.terra.addons.biome.pipeline.api.Stage; public class PipelineImpl implements Pipeline { @@ -70,19 +71,19 @@ public class PipelineImpl implements Pipeline { return stages; } - public int getExpanderCount() { + protected int getExpanderCount() { return expanderCount; } - public int getArraySize() { + protected int getArraySize() { return arraySize; } - public int getChunkOriginArrayIndex() { + protected int getChunkOriginArrayIndex() { return chunkOriginArrayIndex; } - public int getResolution() { + protected int getResolution() { return resolution; } } diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/reimplementation/api/BiomeChunk.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/reimplementation/api/BiomeChunk.java deleted file mode 100644 index 91d7ed303..000000000 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/reimplementation/api/BiomeChunk.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.dfsek.terra.addons.biome.pipeline.reimplementation.api; - - -import com.dfsek.terra.addons.biome.pipeline.reimplementation.api.biome.PipelineBiome; - - -public interface BiomeChunk { - - PipelineBiome get(int xInChunk, int zInChunk); -} diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/reimplementation/api/Source.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/reimplementation/api/Source.java deleted file mode 100644 index c095eb0dd..000000000 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/reimplementation/api/Source.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.dfsek.terra.addons.biome.pipeline.reimplementation.api; - - -import com.dfsek.terra.addons.biome.pipeline.reimplementation.api.biome.PipelineBiome; - - -public interface Source { - PipelineBiome get(long seed, int x, int z); - - Iterable getBiomes(); -} \ No newline at end of file diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/reimplementation/api/Stage.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/reimplementation/api/Stage.java deleted file mode 100644 index 245f4f694..000000000 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/reimplementation/api/Stage.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.dfsek.terra.addons.biome.pipeline.reimplementation.api; - -import com.dfsek.terra.addons.biome.pipeline.reimplementation.BiomeChunkImpl.ViewPoint; -import com.dfsek.terra.addons.biome.pipeline.reimplementation.api.biome.PipelineBiome; - - -public interface Stage { - PipelineBiome apply(ViewPoint viewPoint); - - int maxRelativeReadDistance(); - - default Iterable getBiomes(Iterable biomes) { - return biomes; - } -} diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/reimplementation/api/biome/EphemeralBiomeDelegate.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/reimplementation/api/biome/EphemeralBiomeDelegate.java deleted file mode 100644 index b2fcb3fe8..000000000 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/reimplementation/api/biome/EphemeralBiomeDelegate.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.dfsek.terra.addons.biome.pipeline.reimplementation.api.biome; - -import java.util.HashSet; -import java.util.Set; - -import com.dfsek.terra.api.world.biome.Biome; - - -final class EphemeralBiomeDelegate implements PipelineBiome { - private final Set tags; - private final String id; - - public EphemeralBiomeDelegate(String id) { - this.id = id; - tags = new HashSet<>(); - tags.add(id); - tags.add("ALL"); - } - - @Override - public Biome getBiome() { - throw new UnsupportedOperationException("Cannot get biome from ephemeral delegate"); - } - - @Override - public Set getTags() { - return tags; - } - - @Override - public String getID() { - return id; - } - - @Override - public boolean isEphemeral() { - return true; - } - - @Override - public int hashCode() { - return id.hashCode(); - } - - @Override - public boolean equals(Object obj) { - if(!(obj instanceof EphemeralBiomeDelegate that)) return false; - - return this.id.equals(that.id); - } -} diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/reimplementation/stage/expander/DebugExpander.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/reimplementation/stage/expander/DebugExpander.java deleted file mode 100644 index 29f1c97a7..000000000 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/reimplementation/stage/expander/DebugExpander.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.dfsek.terra.addons.biome.pipeline.reimplementation.stage.expander; - -import com.dfsek.terra.addons.biome.pipeline.reimplementation.BiomeChunkImpl.ViewPoint; -import com.dfsek.terra.addons.biome.pipeline.reimplementation.api.Expander; -import com.dfsek.terra.addons.biome.pipeline.reimplementation.api.biome.PipelineBiome; - - -public class DebugExpander implements Expander { - - private final PipelineBiome biome; - - public DebugExpander(PipelineBiome biome) { - this.biome = biome; - } - - @Override - public PipelineBiome fillBiome(ViewPoint viewPoint) { - return biome; - } -} 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 d56151f07..000000000 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/source/BiomeSource.java +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright (c) 2020-2021 Polyhedral Development - * - * The Terra Core Addons are licensed under the terms of the MIT License. For more details, - * reference the LICENSE file in this module's root directory. - */ - -package com.dfsek.terra.addons.biome.pipeline.source; - -import com.dfsek.terra.addons.biome.pipeline.api.delegate.BiomeDelegate; - - -public interface BiomeSource { - BiomeDelegate getBiome(double x, double z, long seed); - - Iterable getBiomes(); -} diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/reimplementation/source/SamplerSource.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/source/SamplerSource.java similarity index 74% rename from common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/reimplementation/source/SamplerSource.java rename to common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/source/SamplerSource.java index 1312dca25..eca41806b 100644 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/reimplementation/source/SamplerSource.java +++ b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/source/SamplerSource.java @@ -1,7 +1,7 @@ -package com.dfsek.terra.addons.biome.pipeline.reimplementation.source; +package com.dfsek.terra.addons.biome.pipeline.source; -import com.dfsek.terra.addons.biome.pipeline.reimplementation.api.Source; -import com.dfsek.terra.addons.biome.pipeline.reimplementation.api.biome.PipelineBiome; +import com.dfsek.terra.addons.biome.pipeline.api.Source; +import com.dfsek.terra.addons.biome.pipeline.api.biome.PipelineBiome; import com.dfsek.terra.api.noise.NoiseSampler; import com.dfsek.terra.api.util.collection.ProbabilityCollection; diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/reimplementation/source/SingleSource.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/source/SingleSource.java similarity index 66% rename from common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/reimplementation/source/SingleSource.java rename to common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/source/SingleSource.java index 21f17fa93..6dcab0d3c 100644 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/reimplementation/source/SingleSource.java +++ b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/source/SingleSource.java @@ -1,10 +1,10 @@ -package com.dfsek.terra.addons.biome.pipeline.reimplementation.source; +package com.dfsek.terra.addons.biome.pipeline.source; import java.util.Collections; import java.util.Set; -import com.dfsek.terra.addons.biome.pipeline.reimplementation.api.biome.PipelineBiome; -import com.dfsek.terra.addons.biome.pipeline.reimplementation.api.Source; +import com.dfsek.terra.addons.biome.pipeline.api.biome.PipelineBiome; +import com.dfsek.terra.addons.biome.pipeline.api.Source; public class SingleSource implements Source { diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/reimplementation/stage/expander/FractalExpander.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/stage/expander/FractalExpander.java similarity index 78% rename from common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/reimplementation/stage/expander/FractalExpander.java rename to common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/stage/expander/FractalExpander.java index b043fff85..5c94b8943 100644 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/reimplementation/stage/expander/FractalExpander.java +++ b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/stage/expander/FractalExpander.java @@ -1,8 +1,8 @@ -package com.dfsek.terra.addons.biome.pipeline.reimplementation.stage.expander; +package com.dfsek.terra.addons.biome.pipeline.stage.expander; -import com.dfsek.terra.addons.biome.pipeline.reimplementation.BiomeChunkImpl.ViewPoint; -import com.dfsek.terra.addons.biome.pipeline.reimplementation.api.Expander; -import com.dfsek.terra.addons.biome.pipeline.reimplementation.api.biome.PipelineBiome; +import com.dfsek.terra.addons.biome.pipeline.pipeline.BiomeChunkImpl.ViewPoint; +import com.dfsek.terra.addons.biome.pipeline.api.Expander; +import com.dfsek.terra.addons.biome.pipeline.api.biome.PipelineBiome; import com.dfsek.terra.api.noise.NoiseSampler; diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/reimplementation/stage/mutators/BorderListMutator.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/stage/mutators/BorderListStage.java similarity index 82% rename from common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/reimplementation/stage/mutators/BorderListMutator.java rename to common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/stage/mutators/BorderListStage.java index b6bcee543..b814806d6 100644 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/reimplementation/stage/mutators/BorderListMutator.java +++ b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/stage/mutators/BorderListStage.java @@ -5,7 +5,7 @@ * reference the LICENSE file in this module's root directory. */ -package com.dfsek.terra.addons.biome.pipeline.reimplementation.stage.mutators; +package com.dfsek.terra.addons.biome.pipeline.stage.mutators; import java.util.ArrayList; import java.util.HashSet; @@ -14,15 +14,15 @@ import java.util.Map; import java.util.Set; import java.util.function.Predicate; -import com.dfsek.terra.addons.biome.pipeline.reimplementation.BiomeChunkImpl.ViewPoint; -import com.dfsek.terra.addons.biome.pipeline.reimplementation.api.Stage; -import com.dfsek.terra.addons.biome.pipeline.reimplementation.api.biome.PipelineBiome; +import com.dfsek.terra.addons.biome.pipeline.pipeline.BiomeChunkImpl.ViewPoint; +import com.dfsek.terra.addons.biome.pipeline.api.Stage; +import com.dfsek.terra.addons.biome.pipeline.api.biome.PipelineBiome; import com.dfsek.terra.api.noise.NoiseSampler; import com.dfsek.terra.api.util.collection.ProbabilityCollection; import com.dfsek.terra.api.util.vector.Vector2Int; -public class BorderListMutator implements Stage { +public class BorderListStage implements Stage { private final String border; private final NoiseSampler noiseSampler; private final ProbabilityCollection replaceDefault; @@ -31,8 +31,8 @@ public class BorderListMutator implements Stage { private final Vector2Int[] borderPoints; - public BorderListMutator(Map> replace, String border, String defaultReplace, - NoiseSampler noiseSampler, ProbabilityCollection replaceDefault) { + public BorderListStage(Map> replace, String border, String defaultReplace, + NoiseSampler noiseSampler, ProbabilityCollection replaceDefault) { this.border = border; this.noiseSampler = noiseSampler; this.replaceDefault = replaceDefault; diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/reimplementation/stage/mutators/BorderMutator.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/stage/mutators/BorderStage.java similarity index 83% rename from common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/reimplementation/stage/mutators/BorderMutator.java rename to common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/stage/mutators/BorderStage.java index 1fb8b60a9..08e6bb366 100644 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/reimplementation/stage/mutators/BorderMutator.java +++ b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/stage/mutators/BorderStage.java @@ -5,7 +5,7 @@ * reference the LICENSE file in this module's root directory. */ -package com.dfsek.terra.addons.biome.pipeline.reimplementation.stage.mutators; +package com.dfsek.terra.addons.biome.pipeline.stage.mutators; import java.util.ArrayList; import java.util.HashSet; @@ -13,22 +13,22 @@ import java.util.List; import java.util.Set; import java.util.function.Predicate; -import com.dfsek.terra.addons.biome.pipeline.reimplementation.BiomeChunkImpl.ViewPoint; -import com.dfsek.terra.addons.biome.pipeline.reimplementation.api.Stage; -import com.dfsek.terra.addons.biome.pipeline.reimplementation.api.biome.PipelineBiome; +import com.dfsek.terra.addons.biome.pipeline.pipeline.BiomeChunkImpl.ViewPoint; +import com.dfsek.terra.addons.biome.pipeline.api.Stage; +import com.dfsek.terra.addons.biome.pipeline.api.biome.PipelineBiome; import com.dfsek.terra.api.noise.NoiseSampler; import com.dfsek.terra.api.util.collection.ProbabilityCollection; import com.dfsek.terra.api.util.vector.Vector2Int; -public class BorderMutator implements Stage { +public class BorderStage implements Stage { private final String border; private final NoiseSampler noiseSampler; private final ProbabilityCollection replace; private final String replaceTag; private final Vector2Int[] borderPoints; - public BorderMutator(String border, String replaceTag, NoiseSampler noiseSampler, ProbabilityCollection replace) { + public BorderStage(String border, String replaceTag, NoiseSampler noiseSampler, ProbabilityCollection replace) { this.border = border; this.noiseSampler = noiseSampler; this.replace = replace; diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/reimplementation/stage/mutators/ReplaceListMutator.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/stage/mutators/ReplaceListStage.java similarity index 80% rename from common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/reimplementation/stage/mutators/ReplaceListMutator.java rename to common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/stage/mutators/ReplaceListStage.java index 081f0f5ed..79b2c585c 100644 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/reimplementation/stage/mutators/ReplaceListMutator.java +++ b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/stage/mutators/ReplaceListStage.java @@ -5,28 +5,28 @@ * reference the LICENSE file in this module's root directory. */ -package com.dfsek.terra.addons.biome.pipeline.reimplementation.stage.mutators; +package com.dfsek.terra.addons.biome.pipeline.stage.mutators; import java.util.HashSet; import java.util.Map; import java.util.Set; import java.util.stream.Stream; -import com.dfsek.terra.addons.biome.pipeline.reimplementation.BiomeChunkImpl.ViewPoint; -import com.dfsek.terra.addons.biome.pipeline.reimplementation.api.Stage; -import com.dfsek.terra.addons.biome.pipeline.reimplementation.api.biome.PipelineBiome; +import com.dfsek.terra.addons.biome.pipeline.pipeline.BiomeChunkImpl.ViewPoint; +import com.dfsek.terra.addons.biome.pipeline.api.Stage; +import com.dfsek.terra.addons.biome.pipeline.api.biome.PipelineBiome; import com.dfsek.terra.api.noise.NoiseSampler; import com.dfsek.terra.api.util.collection.ProbabilityCollection; -public class ReplaceListMutator implements Stage { +public class ReplaceListStage implements Stage { 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) { + public ReplaceListStage(Map> replace, String defaultTag, + ProbabilityCollection replaceDefault, NoiseSampler sampler) { this.replace = replace; this.sampler = sampler; this.defaultTag = defaultTag; diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/reimplementation/stage/mutators/ReplaceMutator.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/stage/mutators/ReplaceStage.java similarity index 78% rename from common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/reimplementation/stage/mutators/ReplaceMutator.java rename to common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/stage/mutators/ReplaceStage.java index a46454a2c..df1c3be1e 100644 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/reimplementation/stage/mutators/ReplaceMutator.java +++ b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/stage/mutators/ReplaceStage.java @@ -5,25 +5,25 @@ * reference the LICENSE file in this module's root directory. */ -package com.dfsek.terra.addons.biome.pipeline.reimplementation.stage.mutators; +package com.dfsek.terra.addons.biome.pipeline.stage.mutators; import java.util.HashSet; import java.util.Set; import java.util.stream.Stream; -import com.dfsek.terra.addons.biome.pipeline.reimplementation.BiomeChunkImpl.ViewPoint; -import com.dfsek.terra.addons.biome.pipeline.reimplementation.api.Stage; -import com.dfsek.terra.addons.biome.pipeline.reimplementation.api.biome.PipelineBiome; +import com.dfsek.terra.addons.biome.pipeline.pipeline.BiomeChunkImpl.ViewPoint; +import com.dfsek.terra.addons.biome.pipeline.api.Stage; +import com.dfsek.terra.addons.biome.pipeline.api.biome.PipelineBiome; import com.dfsek.terra.api.noise.NoiseSampler; import com.dfsek.terra.api.util.collection.ProbabilityCollection; -public class ReplaceMutator implements Stage { +public class ReplaceStage implements Stage { private final String replaceableTag; private final ProbabilityCollection replace; private final NoiseSampler sampler; - public ReplaceMutator(String replaceable, ProbabilityCollection replace, NoiseSampler sampler) { + public ReplaceStage(String replaceable, ProbabilityCollection replace, NoiseSampler sampler) { this.replaceableTag = replaceable; this.replace = replace; this.sampler = sampler; diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/reimplementation/stage/mutators/SmoothMutator.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/stage/mutators/SmoothStage.java similarity index 76% rename from common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/reimplementation/stage/mutators/SmoothMutator.java rename to common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/stage/mutators/SmoothStage.java index c199daab2..2129ab2fc 100644 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/reimplementation/stage/mutators/SmoothMutator.java +++ b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/stage/mutators/SmoothStage.java @@ -5,21 +5,21 @@ * reference the LICENSE file in this module's root directory. */ -package com.dfsek.terra.addons.biome.pipeline.reimplementation.stage.mutators; +package com.dfsek.terra.addons.biome.pipeline.stage.mutators; import java.util.Objects; -import com.dfsek.terra.addons.biome.pipeline.reimplementation.BiomeChunkImpl.ViewPoint; -import com.dfsek.terra.addons.biome.pipeline.reimplementation.api.Stage; -import com.dfsek.terra.addons.biome.pipeline.reimplementation.api.biome.PipelineBiome; +import com.dfsek.terra.addons.biome.pipeline.pipeline.BiomeChunkImpl.ViewPoint; +import com.dfsek.terra.addons.biome.pipeline.api.Stage; +import com.dfsek.terra.addons.biome.pipeline.api.biome.PipelineBiome; import com.dfsek.terra.api.noise.NoiseSampler; -public class SmoothMutator implements Stage { +public class SmoothStage implements Stage { private final NoiseSampler sampler; - public SmoothMutator(NoiseSampler sampler) { + public SmoothStage(NoiseSampler sampler) { this.sampler = sampler; } 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 e99c13e6b..000000000 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/stages/ExpanderStage.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright (c) 2020-2021 Polyhedral Development - * - * The Terra Core Addons are licensed under the terms of the MIT License. For more details, - * reference the LICENSE file in this module's root directory. - */ - -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.delegate.BiomeDelegate; -import com.dfsek.terra.addons.biome.pipeline.api.stage.Stage; -import com.dfsek.terra.addons.biome.pipeline.api.stage.type.BiomeExpander; - - -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; - } - - @Override - public Iterable getBiomes(Iterable biomes) { - return biomes; - } -} 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 d5933e917..000000000 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/stages/MutatorStage.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright (c) 2020-2021 Polyhedral Development - * - * The Terra Core Addons are licensed under the terms of the MIT License. For more details, - * reference the LICENSE file in this module's root directory. - */ - -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.delegate.BiomeDelegate; -import com.dfsek.terra.addons.biome.pipeline.api.stage.type.BiomeMutator; - - -public class MutatorStage implements com.dfsek.terra.addons.biome.pipeline.api.stage.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; - } - - @Override - public Iterable getBiomes(Iterable biomes) { - return mutator.getBiomes(biomes); - } - - public enum Type { - REPLACE, - REPLACE_LIST, - BORDER, - BORDER_LIST, - SMOOTH - } -}