mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2026-04-03 06:16:10 +00:00
fix config loading issues
This commit is contained in:
@@ -12,6 +12,12 @@ import com.dfsek.terra.addons.biome.pipeline.config.stage.mutator.BorderMutatorT
|
||||
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.mutator.BorderListMutator;
|
||||
import com.dfsek.terra.addons.biome.pipeline.mutator.BorderMutator;
|
||||
import com.dfsek.terra.addons.biome.pipeline.mutator.ReplaceListMutator;
|
||||
import com.dfsek.terra.addons.biome.pipeline.mutator.ReplaceMutator;
|
||||
import com.dfsek.terra.addons.biome.pipeline.mutator.SmoothMutator;
|
||||
import com.dfsek.terra.addons.biome.pipeline.source.RandomSource;
|
||||
import com.dfsek.terra.addons.biome.pipeline.stages.ExpanderStage;
|
||||
import com.dfsek.terra.addons.biome.pipeline.stages.MutatorStage;
|
||||
import com.dfsek.terra.api.TerraPlugin;
|
||||
@@ -46,14 +52,14 @@ public class BiomePipelineAddon extends TerraAddon implements EventListener {
|
||||
.applyLoader(Stage.class, new StageLoader())
|
||||
.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(NoiseSourceTemplate.class, NoiseSourceTemplate::new)
|
||||
.applyLoader(ReplaceMutatorTemplate.class, ReplaceMutatorTemplate::new)
|
||||
.applyLoader(BorderMutatorTemplate.class, BorderMutatorTemplate::new)
|
||||
.applyLoader(BorderListMutatorTemplate.class, BorderListMutatorTemplate::new)
|
||||
.applyLoader(ReplaceListMutatorTemplate.class, ReplaceListMutatorTemplate::new)
|
||||
.applyLoader(SmoothMutatorTemplate.class, SmoothMutatorTemplate::new)
|
||||
.applyLoader(ExpanderStageTemplate.class, ExpanderStageTemplate::new)
|
||||
.applyLoader(BiomePipelineTemplate.class, () -> new BiomePipelineTemplate(main))
|
||||
.applyLoader(RandomSource.class, NoiseSourceTemplate::new)
|
||||
.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(StandardBiomeProvider.class, () -> new BiomePipelineTemplate(main))
|
||||
.applyLoader(BIOME_PROVIDER_BUILDER_TOKEN.getType(), new BiomeProviderLoader());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,6 +3,8 @@ package com.dfsek.terra.addons.biome.pipeline.config;
|
||||
import com.dfsek.tectonic.exception.LoadException;
|
||||
import com.dfsek.tectonic.loading.ConfigLoader;
|
||||
import com.dfsek.tectonic.loading.TypeLoader;
|
||||
import com.dfsek.terra.addons.biome.pipeline.BiomePipelineImpl;
|
||||
import com.dfsek.terra.addons.biome.pipeline.StandardBiomeProvider;
|
||||
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
|
||||
|
||||
import java.lang.reflect.AnnotatedType;
|
||||
@@ -10,6 +12,6 @@ import java.lang.reflect.AnnotatedType;
|
||||
public class BiomeProviderLoader implements TypeLoader<BiomeProvider> {
|
||||
@Override
|
||||
public BiomeProvider load(AnnotatedType t, Object c, ConfigLoader loader) throws LoadException {
|
||||
return loader.loadType(BiomePipelineTemplate.class, c).get(); // TODO: actually implement this lol
|
||||
return loader.loadType(StandardBiomeProvider.class, c); // TODO: actually implement this lol
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ package com.dfsek.terra.addons.biome.pipeline.config;
|
||||
import com.dfsek.tectonic.exception.LoadException;
|
||||
import com.dfsek.tectonic.loading.ConfigLoader;
|
||||
import com.dfsek.tectonic.loading.TypeLoader;
|
||||
import com.dfsek.terra.addons.biome.pipeline.source.RandomSource;
|
||||
import com.dfsek.terra.api.world.biome.generation.pipeline.BiomeSource;
|
||||
|
||||
import java.lang.reflect.AnnotatedType;
|
||||
@@ -17,7 +18,7 @@ public class SourceLoader implements TypeLoader<BiomeSource> {
|
||||
BiomeSource.Type type = loader.loadType(BiomeSource.Type.class, source.get("type"));
|
||||
|
||||
if(type == BiomeSource.Type.NOISE) {
|
||||
return loader.loadType(NoiseSourceTemplate.class, source).get();
|
||||
return loader.loadType(RandomSource.class, source);
|
||||
}
|
||||
throw new LoadException("No such loader type: " + type);
|
||||
}
|
||||
|
||||
@@ -10,6 +10,11 @@ import com.dfsek.terra.addons.biome.pipeline.config.stage.mutator.BorderMutatorT
|
||||
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.mutator.BorderListMutator;
|
||||
import com.dfsek.terra.addons.biome.pipeline.mutator.BorderMutator;
|
||||
import com.dfsek.terra.addons.biome.pipeline.mutator.ReplaceListMutator;
|
||||
import com.dfsek.terra.addons.biome.pipeline.mutator.ReplaceMutator;
|
||||
import com.dfsek.terra.addons.biome.pipeline.mutator.SmoothMutator;
|
||||
import com.dfsek.terra.addons.biome.pipeline.stages.ExpanderStage;
|
||||
import com.dfsek.terra.addons.biome.pipeline.stages.MutatorStage;
|
||||
|
||||
@@ -35,20 +40,20 @@ public class StageLoader implements TypeLoader<Stage> {
|
||||
if(entry.getKey().equals("expand")) {
|
||||
ExpanderStage.Type stageType = loader.loadType(ExpanderStage.Type.class, mutator.get("type"));
|
||||
if(stageType.equals(ExpanderStage.Type.FRACTAL)) {
|
||||
return loader.loadType(ExpanderStageTemplate.class, mutator).get();
|
||||
return loader.loadType(ExpanderStage.class, mutator);
|
||||
} else throw new LoadException("No such expander \"" + stageType + "\"");
|
||||
} else if(entry.getKey().equals("mutate")) {
|
||||
switch(loader.loadType(MutatorStage.Type.class, mutator.get("type"))) {
|
||||
case SMOOTH:
|
||||
return loader.loadType(SmoothMutatorTemplate.class, mutator).get();
|
||||
return new MutatorStage(loader.loadType(SmoothMutator.class, mutator));
|
||||
case REPLACE:
|
||||
return loader.loadType(ReplaceMutatorTemplate.class, mutator).get();
|
||||
return new MutatorStage(loader.loadType(ReplaceMutator.class, mutator));
|
||||
case REPLACE_LIST:
|
||||
return loader.loadType(ReplaceListMutatorTemplate.class, mutator).get();
|
||||
return new MutatorStage(loader.loadType(ReplaceListMutator.class, mutator));
|
||||
case BORDER:
|
||||
return loader.loadType(BorderMutatorTemplate.class, mutator).get();
|
||||
return new MutatorStage(loader.loadType(BorderMutator.class, mutator));
|
||||
case BORDER_LIST:
|
||||
return loader.loadType(BorderListMutatorTemplate.class, mutator).get();
|
||||
return new MutatorStage(loader.loadType(BorderListMutator.class, mutator));
|
||||
default:
|
||||
throw new LoadException("No such mutator type \"" + mutator.get("type"));
|
||||
}
|
||||
|
||||
@@ -24,7 +24,7 @@ public class BorderListMutatorTemplate extends MutatorStageTemplate {
|
||||
|
||||
|
||||
@Override
|
||||
public BiomeMutator getMutator() {
|
||||
public BiomeMutator get() {
|
||||
return new BorderListMutator(replace, from, defaultReplace, noise, defaultTo);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,7 +18,7 @@ public class BorderMutatorTemplate extends MutatorStageTemplate {
|
||||
private ProbabilityCollection<TerraBiome> to;
|
||||
|
||||
@Override
|
||||
public BiomeMutator getMutator() {
|
||||
public BiomeMutator get() {
|
||||
return new BorderMutator(from, replace, noise, to);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
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.api.Stage;
|
||||
import com.dfsek.terra.addons.biome.pipeline.config.stage.StageTemplate;
|
||||
import com.dfsek.terra.addons.biome.pipeline.stages.MutatorStage;
|
||||
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||
|
||||
public abstract class MutatorStageTemplate extends StageTemplate {
|
||||
public abstract BiomeMutator getMutator();
|
||||
public abstract class MutatorStageTemplate implements ObjectTemplate<BiomeMutator> {
|
||||
@Value("noise")
|
||||
protected NoiseSampler noise;
|
||||
|
||||
@Override
|
||||
public Stage get() {
|
||||
return new MutatorStage(getMutator());
|
||||
}
|
||||
public abstract BiomeMutator get();
|
||||
}
|
||||
|
||||
@@ -20,7 +20,7 @@ public class ReplaceListMutatorTemplate extends MutatorStageTemplate {
|
||||
private Map<TerraBiome, ProbabilityCollection<TerraBiome>> replace;
|
||||
|
||||
@Override
|
||||
public BiomeMutator getMutator() {
|
||||
public BiomeMutator get() {
|
||||
return new ReplaceListMutator(replace, defaultFrom, defaultTo, noise);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,7 +15,7 @@ public class ReplaceMutatorTemplate extends MutatorStageTemplate {
|
||||
private ProbabilityCollection<TerraBiome> to;
|
||||
|
||||
@Override
|
||||
public BiomeMutator getMutator() {
|
||||
public BiomeMutator get() {
|
||||
return new ReplaceMutator(from, to, noise);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@ import com.dfsek.terra.addons.biome.pipeline.mutator.SmoothMutator;
|
||||
|
||||
public class SmoothMutatorTemplate extends MutatorStageTemplate {
|
||||
@Override
|
||||
public BiomeMutator getMutator() {
|
||||
public BiomeMutator get() {
|
||||
return new SmoothMutator(noise);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user