refactor BiomeSource to pipeline addon

This commit is contained in:
dfsek
2021-07-22 18:33:50 -07:00
parent 4da5ce748d
commit 2f9387fbf0
11 changed files with 12 additions and 14 deletions
@@ -5,7 +5,7 @@ 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.BiomeMutator;
import com.dfsek.terra.api.vector.Vector2; import com.dfsek.terra.api.vector.Vector2;
import com.dfsek.terra.api.world.biome.TerraBiome; import com.dfsek.terra.api.world.biome.TerraBiome;
import com.dfsek.terra.api.world.biome.generation.pipeline.BiomeSource; import com.dfsek.terra.addons.biome.pipeline.source.BiomeSource;
public class BiomeHolderImpl implements BiomeHolder { public class BiomeHolderImpl implements BiomeHolder {
private final Vector2 origin; private final Vector2 origin;
@@ -3,7 +3,7 @@ package com.dfsek.terra.addons.biome.pipeline;
import com.dfsek.terra.addons.biome.pipeline.api.BiomeHolder; 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.api.Stage;
import com.dfsek.terra.api.vector.Vector2; import com.dfsek.terra.api.vector.Vector2;
import com.dfsek.terra.api.world.biome.generation.pipeline.BiomeSource; import com.dfsek.terra.addons.biome.pipeline.source.BiomeSource;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@@ -30,7 +30,7 @@ import com.dfsek.terra.api.event.functional.FunctionalEventHandler;
import com.dfsek.terra.api.injection.annotations.Inject; import com.dfsek.terra.api.injection.annotations.Inject;
import com.dfsek.terra.api.util.reflection.TypeKey; import com.dfsek.terra.api.util.reflection.TypeKey;
import com.dfsek.terra.api.world.biome.generation.BiomeProvider; import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
import com.dfsek.terra.api.world.biome.generation.pipeline.BiomeSource; import com.dfsek.terra.addons.biome.pipeline.source.BiomeSource;
@Addon("biome-provider-pipeline") @Addon("biome-provider-pipeline")
@Author("Terra") @Author("Terra")
@@ -59,7 +59,8 @@ public class BiomePipelineAddon extends TerraAddon {
.applyLoader(SmoothMutator.class, SmoothMutatorTemplate::new) .applyLoader(SmoothMutator.class, SmoothMutatorTemplate::new)
.applyLoader(ExpanderStage.class, ExpanderStageTemplate::new) .applyLoader(ExpanderStage.class, ExpanderStageTemplate::new)
.applyLoader(BiomePipelineProvider.class, () -> new BiomePipelineTemplate(main)) .applyLoader(BiomePipelineProvider.class, () -> new BiomePipelineTemplate(main))
.applyLoader(BIOME_PROVIDER_BUILDER_TOKEN.getType(), new BiomeProviderLoader())) .applyLoader(BIOME_PROVIDER_BUILDER_TOKEN.getType(), new BiomeProviderLoader())
.applyLoader(BiomeSource.Type.class, (t, object, cf) -> BiomeSource.Type.valueOf((String) object)))
.failThrough(); .failThrough();
} }
} }
@@ -1,7 +1,7 @@
package com.dfsek.terra.addons.biome.pipeline.api; package com.dfsek.terra.addons.biome.pipeline.api;
import com.dfsek.terra.api.world.biome.TerraBiome; import com.dfsek.terra.api.world.biome.TerraBiome;
import com.dfsek.terra.api.world.biome.generation.pipeline.BiomeSource; import com.dfsek.terra.addons.biome.pipeline.source.BiomeSource;
public interface BiomeHolder { public interface BiomeHolder {
BiomeHolder expand(BiomeExpander expander, long seed); BiomeHolder expand(BiomeExpander expander, long seed);
@@ -8,7 +8,7 @@ import com.dfsek.terra.addons.biome.pipeline.api.Stage;
import com.dfsek.terra.api.TerraPlugin; import com.dfsek.terra.api.TerraPlugin;
import com.dfsek.terra.api.config.meta.Meta; import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.terra.api.world.biome.generation.BiomeProvider; import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
import com.dfsek.terra.api.world.biome.generation.pipeline.BiomeSource; import com.dfsek.terra.addons.biome.pipeline.source.BiomeSource;
import java.util.List; import java.util.List;
@@ -6,7 +6,7 @@ import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.terra.api.noise.NoiseSampler; import com.dfsek.terra.api.noise.NoiseSampler;
import com.dfsek.terra.api.util.collection.ProbabilityCollection; import com.dfsek.terra.api.util.collection.ProbabilityCollection;
import com.dfsek.terra.api.world.biome.TerraBiome; import com.dfsek.terra.api.world.biome.TerraBiome;
import com.dfsek.terra.api.world.biome.generation.pipeline.BiomeSource; import com.dfsek.terra.addons.biome.pipeline.source.BiomeSource;
public class NoiseSourceTemplate extends SourceTemplate { public class NoiseSourceTemplate extends SourceTemplate {
@Value("noise") @Value("noise")
@@ -4,7 +4,7 @@ import com.dfsek.tectonic.exception.LoadException;
import com.dfsek.tectonic.loading.ConfigLoader; import com.dfsek.tectonic.loading.ConfigLoader;
import com.dfsek.tectonic.loading.TypeLoader; import com.dfsek.tectonic.loading.TypeLoader;
import com.dfsek.terra.addons.biome.pipeline.source.NoiseSource; import com.dfsek.terra.addons.biome.pipeline.source.NoiseSource;
import com.dfsek.terra.api.world.biome.generation.pipeline.BiomeSource; import com.dfsek.terra.addons.biome.pipeline.source.BiomeSource;
import java.lang.reflect.AnnotatedType; import java.lang.reflect.AnnotatedType;
import java.util.Map; import java.util.Map;
@@ -1,7 +1,7 @@
package com.dfsek.terra.addons.biome.pipeline.config; package com.dfsek.terra.addons.biome.pipeline.config;
import com.dfsek.tectonic.loading.object.ObjectTemplate; import com.dfsek.tectonic.loading.object.ObjectTemplate;
import com.dfsek.terra.api.world.biome.generation.pipeline.BiomeSource; import com.dfsek.terra.addons.biome.pipeline.source.BiomeSource;
public abstract class SourceTemplate implements ObjectTemplate<BiomeSource>{ public abstract class SourceTemplate implements ObjectTemplate<BiomeSource>{
@@ -1,4 +1,4 @@
package com.dfsek.terra.api.world.biome.generation.pipeline; package com.dfsek.terra.addons.biome.pipeline.source;
import com.dfsek.terra.api.world.biome.TerraBiome; import com.dfsek.terra.api.world.biome.TerraBiome;
@@ -3,7 +3,6 @@ package com.dfsek.terra.addons.biome.pipeline.source;
import com.dfsek.terra.api.noise.NoiseSampler; import com.dfsek.terra.api.noise.NoiseSampler;
import com.dfsek.terra.api.util.collection.ProbabilityCollection; import com.dfsek.terra.api.util.collection.ProbabilityCollection;
import com.dfsek.terra.api.world.biome.TerraBiome; import com.dfsek.terra.api.world.biome.TerraBiome;
import com.dfsek.terra.api.world.biome.generation.pipeline.BiomeSource;
public class NoiseSource implements BiomeSource { public class NoiseSource implements BiomeSource {
private final ProbabilityCollection<TerraBiome> biomes; private final ProbabilityCollection<TerraBiome> biomes;
@@ -9,7 +9,6 @@ import com.dfsek.terra.api.tectonic.LoaderRegistrar;
import com.dfsek.terra.api.util.Range; import com.dfsek.terra.api.util.Range;
import com.dfsek.terra.api.util.collection.MaterialSet; import com.dfsek.terra.api.util.collection.MaterialSet;
import com.dfsek.terra.api.util.collection.ProbabilityCollection; import com.dfsek.terra.api.util.collection.ProbabilityCollection;
import com.dfsek.terra.api.world.biome.generation.pipeline.BiomeSource;
import com.dfsek.terra.config.loaders.LinkedHashMapLoader; import com.dfsek.terra.config.loaders.LinkedHashMapLoader;
import com.dfsek.terra.config.loaders.MaterialSetLoader; import com.dfsek.terra.config.loaders.MaterialSetLoader;
import com.dfsek.terra.config.loaders.ProbabilityCollectionLoader; import com.dfsek.terra.config.loaders.ProbabilityCollectionLoader;
@@ -29,8 +28,7 @@ public class GenericLoaders implements LoaderRegistrar {
registry.registerLoader(ProbabilityCollection.class, new ProbabilityCollectionLoader()) registry.registerLoader(ProbabilityCollection.class, new ProbabilityCollectionLoader())
.registerLoader(Range.class, new RangeLoader()) .registerLoader(Range.class, new RangeLoader())
.registerLoader(MaterialSet.class, new MaterialSetLoader()) .registerLoader(MaterialSet.class, new MaterialSetLoader())
.registerLoader(LinkedHashMap.class, new LinkedHashMapLoader()) .registerLoader(LinkedHashMap.class, new LinkedHashMapLoader());
.registerLoader(BiomeSource.Type.class, (t, object, cf) -> BiomeSource.Type.valueOf((String) object));
if(main != null) { if(main != null) {
registry.registerLoader(TerraAddon.class, main.getAddons()) registry.registerLoader(TerraAddon.class, main.getAddons())