mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2026-06-18 06:40:55 +00:00
delete StageSeeded
This commit is contained in:
+1
-6
@@ -11,7 +11,7 @@ import java.util.HashMap;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
public class ImageBiomeProvider implements BiomeProvider, SeededBuilder<BiomeProvider> { // This provider does not need a seed, so it is its own builder.
|
public class ImageBiomeProvider implements BiomeProvider {
|
||||||
private final Map<Color, TerraBiome> colorBiomeMap = new HashMap<>();
|
private final Map<Color, TerraBiome> colorBiomeMap = new HashMap<>();
|
||||||
private final BufferedImage image;
|
private final BufferedImage image;
|
||||||
private final int resolution;
|
private final int resolution;
|
||||||
@@ -40,11 +40,6 @@ public class ImageBiomeProvider implements BiomeProvider, SeededBuilder<BiomePro
|
|||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public BiomeProvider build(long seed) {
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public enum Align {
|
public enum Align {
|
||||||
CENTER {
|
CENTER {
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
+7
-7
@@ -1,9 +1,10 @@
|
|||||||
package com.dfsek.terra.addons.biome.pipeline;
|
package com.dfsek.terra.addons.biome.pipeline;
|
||||||
|
|
||||||
|
import com.dfsek.terra.addons.biome.pipeline.api.Stage;
|
||||||
import com.dfsek.terra.addons.biome.pipeline.config.BiomePipelineTemplate;
|
import com.dfsek.terra.addons.biome.pipeline.config.BiomePipelineTemplate;
|
||||||
import com.dfsek.terra.addons.biome.pipeline.config.BiomeProviderBuilderLoader;
|
import com.dfsek.terra.addons.biome.pipeline.config.BiomeProviderBuilderLoader;
|
||||||
import com.dfsek.terra.addons.biome.pipeline.config.NoiseSourceTemplate;
|
import com.dfsek.terra.addons.biome.pipeline.config.NoiseSourceTemplate;
|
||||||
import com.dfsek.terra.addons.biome.pipeline.config.SourceBuilderLoader;
|
import com.dfsek.terra.addons.biome.pipeline.config.SourceLoader;
|
||||||
import com.dfsek.terra.addons.biome.pipeline.config.stage.StageBuilderLoader;
|
import com.dfsek.terra.addons.biome.pipeline.config.stage.StageBuilderLoader;
|
||||||
import com.dfsek.terra.addons.biome.pipeline.config.stage.expander.ExpanderStageTemplate;
|
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.BorderListMutatorTemplate;
|
||||||
@@ -22,7 +23,6 @@ import com.dfsek.terra.api.event.EventListener;
|
|||||||
import com.dfsek.terra.api.event.events.config.pack.ConfigPackPreLoadEvent;
|
import com.dfsek.terra.api.event.events.config.pack.ConfigPackPreLoadEvent;
|
||||||
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.util.seeded.SeededBuilder;
|
|
||||||
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.api.world.biome.generation.pipeline.BiomeSource;
|
||||||
|
|
||||||
@@ -35,8 +35,8 @@ public class BiomePipelineAddon extends TerraAddon implements EventListener {
|
|||||||
@Inject
|
@Inject
|
||||||
private TerraPlugin main;
|
private TerraPlugin main;
|
||||||
|
|
||||||
public static final TypeKey<SeededBuilder<BiomeProvider>> BIOME_PROVIDER_BUILDER_TOKEN = new TypeKey<>(){};
|
public static final TypeKey<BiomeProvider> BIOME_PROVIDER_BUILDER_TOKEN = new TypeKey<>(){};
|
||||||
public static final TypeKey<SeededBuilder<BiomeSource>> BIOME_SOURCE_BUILDER_TOKEN = new TypeKey<>(){};
|
public static final TypeKey<BiomeSource> BIOME_SOURCE_BUILDER_TOKEN = new TypeKey<>(){};
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void initialize() {
|
public void initialize() {
|
||||||
@@ -44,8 +44,8 @@ public class BiomePipelineAddon extends TerraAddon implements EventListener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void onPackLoad(ConfigPackPreLoadEvent event) {
|
public void onPackLoad(ConfigPackPreLoadEvent event) {
|
||||||
event.getPack().applyLoader(BIOME_SOURCE_BUILDER_TOKEN.getType(), new SourceBuilderLoader())
|
event.getPack().applyLoader(BIOME_SOURCE_BUILDER_TOKEN.getType(), new SourceLoader())
|
||||||
.applyLoader(StageSeeded.class, new StageBuilderLoader())
|
.applyLoader(Stage.class, new StageBuilderLoader())
|
||||||
.applyLoader(ExpanderStage.Type.class, (c, o, l) -> ExpanderStage.Type.valueOf((String) o))
|
.applyLoader(ExpanderStage.Type.class, (c, o, l) -> ExpanderStage.Type.valueOf((String) o))
|
||||||
.applyLoader(MutatorStage.Type.class, (c, o, l) -> MutatorStage.Type.valueOf((String) o))
|
.applyLoader(MutatorStage.Type.class, (c, o, l) -> MutatorStage.Type.valueOf((String) o))
|
||||||
.applyLoader(NoiseSourceTemplate.class, NoiseSourceTemplate::new)
|
.applyLoader(NoiseSourceTemplate.class, NoiseSourceTemplate::new)
|
||||||
@@ -55,7 +55,7 @@ public class BiomePipelineAddon extends TerraAddon implements EventListener {
|
|||||||
.applyLoader(ReplaceListMutatorTemplate.class, ReplaceListMutatorTemplate::new)
|
.applyLoader(ReplaceListMutatorTemplate.class, ReplaceListMutatorTemplate::new)
|
||||||
.applyLoader(SmoothMutatorTemplate.class, SmoothMutatorTemplate::new)
|
.applyLoader(SmoothMutatorTemplate.class, SmoothMutatorTemplate::new)
|
||||||
.applyLoader(ExpanderStageTemplate.class, ExpanderStageTemplate::new)
|
.applyLoader(ExpanderStageTemplate.class, ExpanderStageTemplate::new)
|
||||||
.applyLoader((Type) BiomePipelineTemplate.class, () -> new BiomePipelineTemplate(main))
|
.applyLoader(BiomePipelineTemplate.class, () -> new BiomePipelineTemplate(main))
|
||||||
.applyLoader(BIOME_PROVIDER_BUILDER_TOKEN.getType(), new BiomeProviderBuilderLoader());
|
.applyLoader(BIOME_PROVIDER_BUILDER_TOKEN.getType(), new BiomeProviderBuilderLoader());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+5
-7
@@ -42,7 +42,7 @@ public class BiomePipelineImpl {
|
|||||||
|
|
||||||
public static final class BiomePipelineBuilder {
|
public static final class BiomePipelineBuilder {
|
||||||
private final int init;
|
private final int init;
|
||||||
List<StageSeeded> stages = new ArrayList<>();
|
List<Stage> stages = new ArrayList<>();
|
||||||
private int expand;
|
private int expand;
|
||||||
|
|
||||||
public BiomePipelineBuilder(int init) {
|
public BiomePipelineBuilder(int init) {
|
||||||
@@ -50,17 +50,15 @@ public class BiomePipelineImpl {
|
|||||||
expand = init;
|
expand = init;
|
||||||
}
|
}
|
||||||
|
|
||||||
public BiomePipelineImpl build(BiomeSource source, long seed) {
|
public BiomePipelineImpl build(BiomeSource source) {
|
||||||
List<Stage> stagesBuilt = stages.stream().map(stageBuilder -> stageBuilder.build(seed)).collect(Collectors.toList());
|
for(Stage stage : stages) {
|
||||||
|
|
||||||
for(Stage stage : stagesBuilt) {
|
|
||||||
if(stage.isExpansion()) expand = expand * 2 - 1;
|
if(stage.isExpansion()) expand = expand * 2 - 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
return new BiomePipelineImpl(source, stagesBuilt, expand, init);
|
return new BiomePipelineImpl(source, stages, expand, init);
|
||||||
}
|
}
|
||||||
|
|
||||||
public BiomePipelineBuilder addStage(StageSeeded stage) {
|
public BiomePipelineBuilder addStage(Stage stage) {
|
||||||
stages.add(stage);
|
stages.add(stage);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|||||||
-8
@@ -1,8 +0,0 @@
|
|||||||
package com.dfsek.terra.addons.biome.pipeline;
|
|
||||||
|
|
||||||
import com.dfsek.terra.addons.biome.pipeline.api.Stage;
|
|
||||||
import com.dfsek.terra.api.util.seeded.SeededBuilder;
|
|
||||||
|
|
||||||
@FunctionalInterface
|
|
||||||
public interface StageSeeded extends SeededBuilder<Stage> {
|
|
||||||
}
|
|
||||||
+1
-1
@@ -19,7 +19,7 @@ public class StandardBiomeProvider implements BiomeProvider {
|
|||||||
private final NoiseSampler mutator;
|
private final NoiseSampler mutator;
|
||||||
private final double noiseAmp;
|
private final double noiseAmp;
|
||||||
|
|
||||||
public StandardBiomeProvider(BiomePipelineImpl pipeline, TerraPlugin main, int resolution, NoiseSampler mutator, double noiseAmp, int seed) {
|
public StandardBiomeProvider(BiomePipelineImpl pipeline, TerraPlugin main, int resolution, NoiseSampler mutator, double noiseAmp) {
|
||||||
this.resolution = resolution;
|
this.resolution = resolution;
|
||||||
this.mutator = mutator;
|
this.mutator = mutator;
|
||||||
this.noiseAmp = noiseAmp;
|
this.noiseAmp = noiseAmp;
|
||||||
|
|||||||
+6
-7
@@ -3,10 +3,9 @@ package com.dfsek.terra.addons.biome.pipeline.config;
|
|||||||
import com.dfsek.tectonic.annotations.Default;
|
import com.dfsek.tectonic.annotations.Default;
|
||||||
import com.dfsek.tectonic.annotations.Value;
|
import com.dfsek.tectonic.annotations.Value;
|
||||||
import com.dfsek.terra.addons.biome.pipeline.BiomePipelineImpl;
|
import com.dfsek.terra.addons.biome.pipeline.BiomePipelineImpl;
|
||||||
import com.dfsek.terra.addons.biome.pipeline.StageSeeded;
|
|
||||||
import com.dfsek.terra.addons.biome.pipeline.StandardBiomeProvider;
|
import com.dfsek.terra.addons.biome.pipeline.StandardBiomeProvider;
|
||||||
|
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.util.seeded.SeededBuilder;
|
|
||||||
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.api.world.biome.generation.pipeline.BiomeSource;
|
||||||
|
|
||||||
@@ -20,20 +19,20 @@ public class BiomePipelineTemplate extends BiomeProviderTemplate {
|
|||||||
private int initialSize = 2;
|
private int initialSize = 2;
|
||||||
|
|
||||||
@Value("pipeline.stages")
|
@Value("pipeline.stages")
|
||||||
private List<StageSeeded> stages;
|
private List<Stage> stages;
|
||||||
|
|
||||||
@Value("pipeline.source")
|
@Value("pipeline.source")
|
||||||
private SeededBuilder<BiomeSource> source;
|
private BiomeSource source;
|
||||||
|
|
||||||
public BiomePipelineTemplate(TerraPlugin main) {
|
public BiomePipelineTemplate(TerraPlugin main) {
|
||||||
this.main = main;
|
this.main = main;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BiomeProvider build(long seed) {
|
public BiomeProvider get() {
|
||||||
BiomePipelineImpl.BiomePipelineBuilder biomePipelineBuilder = new BiomePipelineImpl.BiomePipelineBuilder(initialSize);
|
BiomePipelineImpl.BiomePipelineBuilder biomePipelineBuilder = new BiomePipelineImpl.BiomePipelineBuilder(initialSize);
|
||||||
stages.forEach(biomePipelineBuilder::addStage);
|
stages.forEach(biomePipelineBuilder::addStage);
|
||||||
BiomePipelineImpl pipeline = biomePipelineBuilder.build(source.build(seed), seed);
|
BiomePipelineImpl pipeline = biomePipelineBuilder.build(source);
|
||||||
return new StandardBiomeProvider(pipeline, main, resolution, blend, blendAmp, (int) seed);
|
return new StandardBiomeProvider(pipeline, main, resolution, blend, blendAmp);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-4
@@ -3,14 +3,13 @@ package com.dfsek.terra.addons.biome.pipeline.config;
|
|||||||
import com.dfsek.tectonic.exception.LoadException;
|
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.api.util.seeded.SeededBuilder;
|
|
||||||
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
|
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
|
||||||
|
|
||||||
import java.lang.reflect.AnnotatedType;
|
import java.lang.reflect.AnnotatedType;
|
||||||
|
|
||||||
public class BiomeProviderBuilderLoader implements TypeLoader<SeededBuilder<BiomeProvider>> {
|
public class BiomeProviderBuilderLoader implements TypeLoader<BiomeProvider> {
|
||||||
@Override
|
@Override
|
||||||
public SeededBuilder<BiomeProvider> load(AnnotatedType t, Object c, ConfigLoader loader) throws LoadException {
|
public BiomeProvider load(AnnotatedType t, Object c, ConfigLoader loader) throws LoadException {
|
||||||
return loader.loadType(BiomePipelineTemplate.class, c); // TODO: actually implement this lol
|
return loader.loadType(BiomePipelineTemplate.class, c).get(); // TODO: actually implement this lol
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-6
@@ -7,7 +7,7 @@ import com.dfsek.terra.api.noise.NoiseSampler;
|
|||||||
import com.dfsek.terra.api.util.seeded.SeededBuilder;
|
import com.dfsek.terra.api.util.seeded.SeededBuilder;
|
||||||
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
|
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
|
||||||
|
|
||||||
public abstract class BiomeProviderTemplate implements ObjectTemplate<SeededBuilder<BiomeProvider>>, SeededBuilder<BiomeProvider> {
|
public abstract class BiomeProviderTemplate implements ObjectTemplate<BiomeProvider> {
|
||||||
@Value("resolution")
|
@Value("resolution")
|
||||||
@Default
|
@Default
|
||||||
protected int resolution = 1;
|
protected int resolution = 1;
|
||||||
@@ -17,9 +17,4 @@ public abstract class BiomeProviderTemplate implements ObjectTemplate<SeededBuil
|
|||||||
@Value("blend.amplitude")
|
@Value("blend.amplitude")
|
||||||
@Default
|
@Default
|
||||||
protected double blendAmp = 0d;
|
protected double blendAmp = 0d;
|
||||||
|
|
||||||
@Override
|
|
||||||
public SeededBuilder<BiomeProvider> get() {
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -15,7 +15,7 @@ public class NoiseSourceTemplate extends SourceTemplate {
|
|||||||
private ProbabilityCollection<TerraBiome> biomes;
|
private ProbabilityCollection<TerraBiome> biomes;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BiomeSource build(long seed) {
|
public BiomeSource get() {
|
||||||
return new RandomSource(biomes, noise);
|
return new RandomSource(biomes, noise);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-4
@@ -3,22 +3,21 @@ package com.dfsek.terra.addons.biome.pipeline.config;
|
|||||||
import com.dfsek.tectonic.exception.LoadException;
|
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.api.util.seeded.SeededBuilder;
|
|
||||||
import com.dfsek.terra.api.world.biome.generation.pipeline.BiomeSource;
|
import com.dfsek.terra.api.world.biome.generation.pipeline.BiomeSource;
|
||||||
|
|
||||||
import java.lang.reflect.AnnotatedType;
|
import java.lang.reflect.AnnotatedType;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
public class SourceBuilderLoader implements TypeLoader<SeededBuilder<BiomeSource>> {
|
public class SourceLoader implements TypeLoader<BiomeSource> {
|
||||||
@Override
|
@Override
|
||||||
public SeededBuilder<BiomeSource> load(AnnotatedType t, Object c, ConfigLoader loader) throws LoadException {
|
public BiomeSource load(AnnotatedType t, Object c, ConfigLoader loader) throws LoadException {
|
||||||
Map<String, Object> source = (Map<String, Object>) c;
|
Map<String, Object> source = (Map<String, Object>) c;
|
||||||
|
|
||||||
BiomeSource.Type type = loader.loadType(BiomeSource.Type.class, source.get("type"));
|
BiomeSource.Type type = loader.loadType(BiomeSource.Type.class, source.get("type"));
|
||||||
|
|
||||||
if(type == BiomeSource.Type.NOISE) {
|
if(type == BiomeSource.Type.NOISE) {
|
||||||
return loader.loadType(NoiseSourceTemplate.class, source);
|
return loader.loadType(NoiseSourceTemplate.class, source).get();
|
||||||
}
|
}
|
||||||
throw new LoadException("No such loader type: " + type);
|
throw new LoadException("No such loader type: " + type);
|
||||||
}
|
}
|
||||||
+2
-5
@@ -4,9 +4,6 @@ import com.dfsek.tectonic.loading.object.ObjectTemplate;
|
|||||||
import com.dfsek.terra.api.util.seeded.SeededBuilder;
|
import com.dfsek.terra.api.util.seeded.SeededBuilder;
|
||||||
import com.dfsek.terra.api.world.biome.generation.pipeline.BiomeSource;
|
import com.dfsek.terra.api.world.biome.generation.pipeline.BiomeSource;
|
||||||
|
|
||||||
public abstract class SourceTemplate implements ObjectTemplate<SeededBuilder<BiomeSource>>, SeededBuilder<BiomeSource> {
|
public abstract class SourceTemplate implements ObjectTemplate<BiomeSource>{
|
||||||
@Override
|
|
||||||
public SeededBuilder<BiomeSource> get() {
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
+9
-10
@@ -3,7 +3,7 @@ package com.dfsek.terra.addons.biome.pipeline.config.stage;
|
|||||||
import com.dfsek.tectonic.exception.LoadException;
|
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.StageSeeded;
|
import com.dfsek.terra.addons.biome.pipeline.api.Stage;
|
||||||
import com.dfsek.terra.addons.biome.pipeline.config.stage.expander.ExpanderStageTemplate;
|
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.BorderListMutatorTemplate;
|
||||||
import com.dfsek.terra.addons.biome.pipeline.config.stage.mutator.BorderMutatorTemplate;
|
import com.dfsek.terra.addons.biome.pipeline.config.stage.mutator.BorderMutatorTemplate;
|
||||||
@@ -14,13 +14,12 @@ import com.dfsek.terra.addons.biome.pipeline.stages.ExpanderStage;
|
|||||||
import com.dfsek.terra.addons.biome.pipeline.stages.MutatorStage;
|
import com.dfsek.terra.addons.biome.pipeline.stages.MutatorStage;
|
||||||
|
|
||||||
import java.lang.reflect.AnnotatedType;
|
import java.lang.reflect.AnnotatedType;
|
||||||
import java.lang.reflect.Type;
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
public class StageBuilderLoader implements TypeLoader<StageSeeded> {
|
public class StageBuilderLoader implements TypeLoader<Stage> {
|
||||||
@Override
|
@Override
|
||||||
public StageSeeded load(AnnotatedType t, Object c, ConfigLoader loader) throws LoadException {
|
public Stage load(AnnotatedType t, Object c, ConfigLoader loader) throws LoadException {
|
||||||
Map<String, Object> raw = (Map<String, Object>) c;
|
Map<String, Object> raw = (Map<String, Object>) c;
|
||||||
|
|
||||||
if(raw.size() != 1) throw new LoadException("Illegal stage map size: " + raw.size());
|
if(raw.size() != 1) throw new LoadException("Illegal stage map size: " + raw.size());
|
||||||
@@ -36,20 +35,20 @@ public class StageBuilderLoader implements TypeLoader<StageSeeded> {
|
|||||||
if(entry.getKey().equals("expand")) {
|
if(entry.getKey().equals("expand")) {
|
||||||
ExpanderStage.Type stageType = loader.loadType(ExpanderStage.Type.class, mutator.get("type"));
|
ExpanderStage.Type stageType = loader.loadType(ExpanderStage.Type.class, mutator.get("type"));
|
||||||
if(stageType.equals(ExpanderStage.Type.FRACTAL)) {
|
if(stageType.equals(ExpanderStage.Type.FRACTAL)) {
|
||||||
return loader.loadType(ExpanderStageTemplate.class, mutator);
|
return loader.loadType(ExpanderStageTemplate.class, mutator).get();
|
||||||
} else throw new LoadException("No such expander \"" + stageType + "\"");
|
} else throw new LoadException("No such expander \"" + stageType + "\"");
|
||||||
} else if(entry.getKey().equals("mutate")) {
|
} else if(entry.getKey().equals("mutate")) {
|
||||||
switch(loader.loadType(MutatorStage.Type.class, mutator.get("type"))) {
|
switch(loader.loadType(MutatorStage.Type.class, mutator.get("type"))) {
|
||||||
case SMOOTH:
|
case SMOOTH:
|
||||||
return loader.loadType(SmoothMutatorTemplate.class, mutator);
|
return loader.loadType(SmoothMutatorTemplate.class, mutator).get();
|
||||||
case REPLACE:
|
case REPLACE:
|
||||||
return loader.loadType(ReplaceMutatorTemplate.class, mutator);
|
return loader.loadType(ReplaceMutatorTemplate.class, mutator).get();
|
||||||
case REPLACE_LIST:
|
case REPLACE_LIST:
|
||||||
return loader.loadType(ReplaceListMutatorTemplate.class, mutator);
|
return loader.loadType(ReplaceListMutatorTemplate.class, mutator).get();
|
||||||
case BORDER:
|
case BORDER:
|
||||||
return loader.loadType(BorderMutatorTemplate.class, mutator);
|
return loader.loadType(BorderMutatorTemplate.class, mutator).get();
|
||||||
case BORDER_LIST:
|
case BORDER_LIST:
|
||||||
return loader.loadType(BorderListMutatorTemplate.class, mutator);
|
return loader.loadType(BorderListMutatorTemplate.class, mutator).get();
|
||||||
default:
|
default:
|
||||||
throw new LoadException("No such mutator type \"" + mutator.get("type"));
|
throw new LoadException("No such mutator type \"" + mutator.get("type"));
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-8
@@ -2,17 +2,10 @@ package com.dfsek.terra.addons.biome.pipeline.config.stage;
|
|||||||
|
|
||||||
import com.dfsek.tectonic.annotations.Value;
|
import com.dfsek.tectonic.annotations.Value;
|
||||||
import com.dfsek.tectonic.loading.object.ObjectTemplate;
|
import com.dfsek.tectonic.loading.object.ObjectTemplate;
|
||||||
import com.dfsek.terra.addons.biome.pipeline.StageSeeded;
|
|
||||||
import com.dfsek.terra.addons.biome.pipeline.api.Stage;
|
import com.dfsek.terra.addons.biome.pipeline.api.Stage;
|
||||||
import com.dfsek.terra.api.noise.NoiseSampler;
|
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||||
import com.dfsek.terra.api.util.seeded.SeededBuilder;
|
|
||||||
|
|
||||||
public abstract class StageTemplate implements ObjectTemplate<SeededBuilder<Stage>>, StageSeeded {
|
public abstract class StageTemplate implements ObjectTemplate<Stage> {
|
||||||
@Value("noise")
|
@Value("noise")
|
||||||
protected NoiseSampler noise;
|
protected NoiseSampler noise;
|
||||||
|
|
||||||
@Override
|
|
||||||
public StageSeeded get() {
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -7,7 +7,7 @@ import com.dfsek.terra.addons.biome.pipeline.stages.ExpanderStage;
|
|||||||
|
|
||||||
public class ExpanderStageTemplate extends StageTemplate {
|
public class ExpanderStageTemplate extends StageTemplate {
|
||||||
@Override
|
@Override
|
||||||
public Stage build(long seed) {
|
public Stage get() {
|
||||||
return new ExpanderStage(new FractalExpander(noise));
|
return new ExpanderStage(new FractalExpander(noise));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -24,7 +24,7 @@ public class BorderListMutatorTemplate extends MutatorStageTemplate {
|
|||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BiomeMutator getMutator(long seed) {
|
public BiomeMutator getMutator() {
|
||||||
return new BorderListMutator(replace, from, defaultReplace, noise, defaultTo);
|
return new BorderListMutator(replace, from, defaultReplace, noise, defaultTo);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -18,7 +18,7 @@ public class BorderMutatorTemplate extends MutatorStageTemplate {
|
|||||||
private ProbabilityCollection<TerraBiome> to;
|
private ProbabilityCollection<TerraBiome> to;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BiomeMutator getMutator(long seed) {
|
public BiomeMutator getMutator() {
|
||||||
return new BorderMutator(from, replace, noise, to);
|
return new BorderMutator(from, replace, noise, to);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-3
@@ -6,10 +6,10 @@ import com.dfsek.terra.addons.biome.pipeline.config.stage.StageTemplate;
|
|||||||
import com.dfsek.terra.addons.biome.pipeline.stages.MutatorStage;
|
import com.dfsek.terra.addons.biome.pipeline.stages.MutatorStage;
|
||||||
|
|
||||||
public abstract class MutatorStageTemplate extends StageTemplate {
|
public abstract class MutatorStageTemplate extends StageTemplate {
|
||||||
public abstract BiomeMutator getMutator(long seed);
|
public abstract BiomeMutator getMutator();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Stage build(long seed) {
|
public Stage get() {
|
||||||
return new MutatorStage(getMutator(seed));
|
return new MutatorStage(getMutator());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -20,7 +20,7 @@ public class ReplaceListMutatorTemplate extends MutatorStageTemplate {
|
|||||||
private Map<TerraBiome, ProbabilityCollection<TerraBiome>> replace;
|
private Map<TerraBiome, ProbabilityCollection<TerraBiome>> replace;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BiomeMutator getMutator(long seed) {
|
public BiomeMutator getMutator() {
|
||||||
return new ReplaceListMutator(replace, defaultFrom, defaultTo, noise);
|
return new ReplaceListMutator(replace, defaultFrom, defaultTo, noise);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -15,7 +15,7 @@ public class ReplaceMutatorTemplate extends MutatorStageTemplate {
|
|||||||
private ProbabilityCollection<TerraBiome> to;
|
private ProbabilityCollection<TerraBiome> to;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BiomeMutator getMutator(long seed) {
|
public BiomeMutator getMutator() {
|
||||||
return new ReplaceMutator(from, to, noise);
|
return new ReplaceMutator(from, to, noise);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -5,7 +5,7 @@ import com.dfsek.terra.addons.biome.pipeline.mutator.SmoothMutator;
|
|||||||
|
|
||||||
public class SmoothMutatorTemplate extends MutatorStageTemplate {
|
public class SmoothMutatorTemplate extends MutatorStageTemplate {
|
||||||
@Override
|
@Override
|
||||||
public BiomeMutator getMutator(long seed) {
|
public BiomeMutator getMutator() {
|
||||||
return new SmoothMutator(noise);
|
return new SmoothMutator(noise);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user