mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2026-04-10 17:56:03 +00:00
generify SeededBiomeSource
This commit is contained in:
@@ -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))
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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"));
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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> {
|
||||
}
|
||||
Reference in New Issue
Block a user