register all stage types

This commit is contained in:
dfsek
2021-07-29 07:47:56 -07:00
parent d5fd653130
commit dd0ef7ea45
8 changed files with 39 additions and 41 deletions

View File

@@ -6,6 +6,7 @@ import com.dfsek.terra.addons.biome.pipeline.config.BiomePipelineTemplate;
import com.dfsek.terra.addons.biome.pipeline.config.BiomeProviderLoader;
import com.dfsek.terra.addons.biome.pipeline.config.NoiseSourceTemplate;
import com.dfsek.terra.addons.biome.pipeline.config.stage.StageLoader;
import com.dfsek.terra.addons.biome.pipeline.config.stage.StageTemplate;
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;
@@ -50,15 +51,7 @@ public class BiomePipelineAddon extends TerraAddon {
main.getEventManager()
.getHandler(FunctionalEventHandler.class)
.register(this, ConfigPackPreLoadEvent.class)
.then(event -> event.getPack().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(ReplaceMutator.class, ReplaceMutatorTemplate::new)
.applyLoader(BorderMutator.class, BorderMutatorTemplate::new)
.applyLoader(BorderListMutator.class, BorderListMutatorTemplate::new)
.applyLoader(ReplaceListMutator.class, ReplaceListMutatorTemplate::new)
.applyLoader(SmoothMutator.class, SmoothMutatorTemplate::new)
.applyLoader(ExpanderStage.class, ExpanderStageTemplate::new)
.applyLoader(BiomePipelineProvider.class, () -> new BiomePipelineTemplate(main))
.then(event -> event.getPack().applyLoader(BiomePipelineProvider.class, () -> new BiomePipelineTemplate(main))
.applyLoader(BiomeProvider.class, new BiomeProviderLoader()))
.then(event -> {
CheckedRegistry<Supplier<ObjectTemplate<BiomeSource>>> sourceRegistry = event.getPack().getOrCreateRegistry(SOURCE_REGISTRY_KEY);
@@ -67,6 +60,11 @@ public class BiomePipelineAddon extends TerraAddon {
.then(event -> {
CheckedRegistry<Supplier<ObjectTemplate<Stage>>> stageRegistry = event.getPack().getOrCreateRegistry(STAGE_REGISTRY_KEY);
stageRegistry.register("FRACTAL_EXPAND", ExpanderStageTemplate::new);
stageRegistry.register("SMOOTH", SmoothMutatorTemplate::new);
stageRegistry.register("REPLACE", ReplaceMutatorTemplate::new);
stageRegistry.register("REPLACE_LIST", ReplaceListMutatorTemplate::new);
stageRegistry.register("BORDER", BorderMutatorTemplate::new);
stageRegistry.register("BORDER_LIST", BorderListMutatorTemplate::new);
})
.failThrough();
}

View File

@@ -2,7 +2,9 @@ package com.dfsek.terra.addons.biome.pipeline.config.stage;
import com.dfsek.tectonic.annotations.Value;
import com.dfsek.tectonic.loading.object.ObjectTemplate;
import com.dfsek.terra.addons.biome.pipeline.api.BiomeMutator;
import com.dfsek.terra.addons.biome.pipeline.api.Stage;
import com.dfsek.terra.addons.biome.pipeline.stages.MutatorStage;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.terra.api.noise.NoiseSampler;

View File

@@ -1,8 +1,10 @@
package com.dfsek.terra.addons.biome.pipeline.config.stage.mutator;
import com.dfsek.tectonic.annotations.Value;
import com.dfsek.terra.addons.biome.pipeline.api.BiomeMutator;
import com.dfsek.terra.addons.biome.pipeline.api.Stage;
import com.dfsek.terra.addons.biome.pipeline.config.stage.StageTemplate;
import com.dfsek.terra.addons.biome.pipeline.mutator.BorderListMutator;
import com.dfsek.terra.addons.biome.pipeline.stages.MutatorStage;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.terra.api.util.collection.ProbabilityCollection;
import com.dfsek.terra.api.world.biome.TerraBiome;
@@ -10,7 +12,7 @@ import com.dfsek.terra.api.world.biome.TerraBiome;
import java.util.Map;
@SuppressWarnings("unused")
public class BorderListMutatorTemplate extends MutatorStageTemplate {
public class BorderListMutatorTemplate extends StageTemplate {
@Value("from")
private @Meta String from;
@@ -25,7 +27,7 @@ public class BorderListMutatorTemplate extends MutatorStageTemplate {
@Override
public BiomeMutator get() {
return new BorderListMutator(replace, from, defaultReplace, noise, defaultTo);
public Stage get() {
return new MutatorStage(new BorderListMutator(replace, from, defaultReplace, noise, defaultTo));
}
}

View File

@@ -2,13 +2,16 @@ package com.dfsek.terra.addons.biome.pipeline.config.stage.mutator;
import com.dfsek.tectonic.annotations.Value;
import com.dfsek.terra.addons.biome.pipeline.api.BiomeMutator;
import com.dfsek.terra.addons.biome.pipeline.api.Stage;
import com.dfsek.terra.addons.biome.pipeline.config.stage.StageTemplate;
import com.dfsek.terra.addons.biome.pipeline.mutator.BorderMutator;
import com.dfsek.terra.addons.biome.pipeline.stages.MutatorStage;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.terra.api.util.collection.ProbabilityCollection;
import com.dfsek.terra.api.world.biome.TerraBiome;
@SuppressWarnings("unused")
public class BorderMutatorTemplate extends MutatorStageTemplate {
public class BorderMutatorTemplate extends StageTemplate {
@Value("from")
private @Meta String from;
@@ -19,7 +22,7 @@ public class BorderMutatorTemplate extends MutatorStageTemplate {
private @Meta ProbabilityCollection<@Meta TerraBiome> to;
@Override
public BiomeMutator get() {
return new BorderMutator(from, replace, noise, to);
public Stage get() {
return new MutatorStage(new BorderMutator(from, replace, noise, to));
}
}

View File

@@ -1,16 +0,0 @@
package com.dfsek.terra.addons.biome.pipeline.config.stage.mutator;
import com.dfsek.tectonic.annotations.Value;
import com.dfsek.tectonic.loading.object.ObjectTemplate;
import com.dfsek.terra.addons.biome.pipeline.api.BiomeMutator;
import com.dfsek.terra.addons.biome.pipeline.stages.MutatorStage;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.terra.api.noise.NoiseSampler;
public abstract class MutatorStageTemplate implements ObjectTemplate<BiomeMutator> {
@Value("noise")
protected @Meta NoiseSampler noise;
@Override
public abstract BiomeMutator get();
}

View File

@@ -2,7 +2,10 @@ package com.dfsek.terra.addons.biome.pipeline.config.stage.mutator;
import com.dfsek.tectonic.annotations.Value;
import com.dfsek.terra.addons.biome.pipeline.api.BiomeMutator;
import com.dfsek.terra.addons.biome.pipeline.api.Stage;
import com.dfsek.terra.addons.biome.pipeline.config.stage.StageTemplate;
import com.dfsek.terra.addons.biome.pipeline.mutator.ReplaceListMutator;
import com.dfsek.terra.addons.biome.pipeline.stages.MutatorStage;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.terra.api.util.collection.ProbabilityCollection;
import com.dfsek.terra.api.world.biome.TerraBiome;
@@ -10,7 +13,7 @@ import com.dfsek.terra.api.world.biome.TerraBiome;
import java.util.Map;
@SuppressWarnings("unused")
public class ReplaceListMutatorTemplate extends MutatorStageTemplate {
public class ReplaceListMutatorTemplate extends StageTemplate {
@Value("default-from")
private @Meta String defaultFrom;
@@ -21,7 +24,7 @@ public class ReplaceListMutatorTemplate extends MutatorStageTemplate {
private @Meta Map<@Meta TerraBiome, @Meta ProbabilityCollection<@Meta TerraBiome>> replace;
@Override
public BiomeMutator get() {
return new ReplaceListMutator(replace, defaultFrom, defaultTo, noise);
public Stage get() {
return new MutatorStage(new ReplaceListMutator(replace, defaultFrom, defaultTo, noise));
}
}

View File

@@ -2,13 +2,16 @@ package com.dfsek.terra.addons.biome.pipeline.config.stage.mutator;
import com.dfsek.tectonic.annotations.Value;
import com.dfsek.terra.addons.biome.pipeline.api.BiomeMutator;
import com.dfsek.terra.addons.biome.pipeline.api.Stage;
import com.dfsek.terra.addons.biome.pipeline.config.stage.StageTemplate;
import com.dfsek.terra.addons.biome.pipeline.mutator.ReplaceMutator;
import com.dfsek.terra.addons.biome.pipeline.stages.MutatorStage;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.terra.api.util.collection.ProbabilityCollection;
import com.dfsek.terra.api.world.biome.TerraBiome;
@SuppressWarnings("unused")
public class ReplaceMutatorTemplate extends MutatorStageTemplate {
public class ReplaceMutatorTemplate extends StageTemplate {
@Value("from")
private @Meta String from;
@@ -16,7 +19,7 @@ public class ReplaceMutatorTemplate extends MutatorStageTemplate {
private @Meta ProbabilityCollection<@Meta TerraBiome> to;
@Override
public BiomeMutator get() {
return new ReplaceMutator(from, to, noise);
public Stage get() {
return new MutatorStage(new ReplaceMutator(from, to, noise));
}
}

View File

@@ -1,11 +1,14 @@
package com.dfsek.terra.addons.biome.pipeline.config.stage.mutator;
import com.dfsek.terra.addons.biome.pipeline.api.BiomeMutator;
import com.dfsek.terra.addons.biome.pipeline.api.Stage;
import com.dfsek.terra.addons.biome.pipeline.config.stage.StageTemplate;
import com.dfsek.terra.addons.biome.pipeline.mutator.SmoothMutator;
import com.dfsek.terra.addons.biome.pipeline.stages.MutatorStage;
public class SmoothMutatorTemplate extends MutatorStageTemplate {
public class SmoothMutatorTemplate extends StageTemplate {
@Override
public BiomeMutator get() {
return new SmoothMutator(noise);
public Stage get() {
return new MutatorStage(new SmoothMutator(noise));
}
}