generify SeededBiomeSource

This commit is contained in:
dfsek
2021-07-18 14:08:59 -07:00
parent 11f161d546
commit 15f749bfe9
5 changed files with 13 additions and 17 deletions

View File

@@ -22,9 +22,9 @@ import com.dfsek.terra.api.event.EventListener;
import com.dfsek.terra.api.event.events.config.pack.ConfigPackPreLoadEvent;
import com.dfsek.terra.api.injection.annotations.Inject;
import com.dfsek.terra.api.util.TypeToken;
import com.dfsek.terra.api.util.seeded.SeededBiomeSource;
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.pipeline.BiomeSource;
import java.lang.reflect.Type;
@@ -36,6 +36,7 @@ public class BiomePipelineAddon extends TerraAddon implements EventListener {
private TerraPlugin main;
public static final TypeToken<SeededBuilder<BiomeProvider>> BIOME_PROVIDER_BUILDER_TOKEN = new TypeToken<>(){};
public static final TypeToken<SeededBuilder<BiomeSource>> BIOME_SOURCE_BUILDER_TOKEN = new TypeToken<>(){};
@Override
public void initialize() {
@@ -43,7 +44,7 @@ public class BiomePipelineAddon extends TerraAddon implements EventListener {
}
public void onPackLoad(ConfigPackPreLoadEvent event) {
event.getPack().applyLoader(SeededBiomeSource.class, new SourceBuilderLoader())
event.getPack().applyLoader(BIOME_SOURCE_BUILDER_TOKEN.getType(), new SourceBuilderLoader())
.applyLoader(StageSeeded.class, new StageBuilderLoader())
.applyLoader(ExpanderStage.Type.class, (c, o, l) -> ExpanderStage.Type.valueOf((String) o))
.applyLoader(MutatorStage.Type.class, (c, o, l) -> MutatorStage.Type.valueOf((String) o))

View File

@@ -6,8 +6,9 @@ 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.api.TerraPlugin;
import com.dfsek.terra.api.util.seeded.SeededBiomeSource;
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.pipeline.BiomeSource;
import java.util.List;
@@ -22,7 +23,7 @@ public class BiomePipelineTemplate extends BiomeProviderTemplate {
private List<StageSeeded> stages;
@Value("pipeline.source")
private SeededBiomeSource source;
private SeededBuilder<BiomeSource> source;
public BiomePipelineTemplate(TerraPlugin main) {
this.main = main;

View File

@@ -3,16 +3,16 @@ 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.api.util.seeded.SeededBiomeSource;
import com.dfsek.terra.api.util.seeded.SeededBuilder;
import com.dfsek.terra.api.world.biome.generation.pipeline.BiomeSource;
import java.lang.reflect.AnnotatedType;
import java.util.Map;
@SuppressWarnings("unchecked")
public class SourceBuilderLoader implements TypeLoader<SeededBiomeSource> {
public class SourceBuilderLoader implements TypeLoader<SeededBuilder<BiomeSource>> {
@Override
public SeededBiomeSource load(AnnotatedType t, Object c, ConfigLoader loader) throws LoadException {
public SeededBuilder<BiomeSource> load(AnnotatedType t, Object c, ConfigLoader loader) throws LoadException {
Map<String, Object> source = (Map<String, Object>) c;
BiomeSource.Type type = loader.loadType(BiomeSource.Type.class, source.get("type"));

View File

@@ -1,11 +1,12 @@
package com.dfsek.terra.addons.biome.pipeline.config;
import com.dfsek.tectonic.loading.object.ObjectTemplate;
import com.dfsek.terra.api.util.seeded.SeededBiomeSource;
import com.dfsek.terra.api.util.seeded.SeededBuilder;
import com.dfsek.terra.api.world.biome.generation.pipeline.BiomeSource;
public abstract class SourceTemplate implements ObjectTemplate<SeededBiomeSource>, SeededBiomeSource {
public abstract class SourceTemplate implements ObjectTemplate<SeededBuilder<BiomeSource>>, SeededBuilder<BiomeSource> {
@Override
public SeededBiomeSource get() {
public SeededBuilder<BiomeSource> get() {
return this;
}
}

View File

@@ -1,7 +0,0 @@
package com.dfsek.terra.api.util.seeded;
import com.dfsek.terra.api.world.biome.generation.pipeline.BiomeSource;
@FunctionalInterface
public interface SeededBiomeSource extends SeededBuilder<BiomeSource> {
}