fleshed out addon loading

This commit is contained in:
dfsek
2021-02-19 22:49:11 -07:00
parent 5e761c3e29
commit 76f2a3fbc4
20 changed files with 217 additions and 230 deletions
@@ -1,6 +1,7 @@
package com.dfsek.terra.config;
import com.dfsek.tectonic.loading.TypeRegistry;
import com.dfsek.terra.addons.addon.TerraAddon;
import com.dfsek.terra.api.LoaderRegistrar;
import com.dfsek.terra.api.core.TerraPlugin;
import com.dfsek.terra.api.math.GridSpawn;
@@ -90,6 +91,7 @@ public class GenericLoaders implements LoaderRegistrar {
.registerLoader(CarverPalette.class, new CarverPaletteLoader())
.registerLoader(SourceSeeded.class, new SourceBuilderLoader())
.registerLoader(StageSeeded.class, new StageBuilderLoader())
.registerLoader(TerraAddon.class, main.getAddons())
.registerLoader(BiomeProvider.BiomeProviderBuilder.class, new BiomeProviderBuilderLoader())
.registerLoader(ImageSampler.Channel.class, (t, object, cf) -> ImageSampler.Channel.valueOf((String) object))
.registerLoader(BiomeProvider.Type.class, (t, object, cf) -> BiomeProvider.Type.valueOf((String) object))
@@ -3,12 +3,14 @@ package com.dfsek.terra.config.pack;
import com.dfsek.tectonic.annotations.Default;
import com.dfsek.tectonic.annotations.Value;
import com.dfsek.tectonic.config.ConfigTemplate;
import com.dfsek.terra.addons.addon.TerraAddon;
import com.dfsek.terra.api.util.seeded.NoiseSeeded;
import com.dfsek.terra.config.loaders.config.function.FunctionTemplate;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Set;
@SuppressWarnings({"unused", "FieldMayBeFinal"})
public class ConfigPackTemplate implements ConfigTemplate {
@@ -18,6 +20,10 @@ public class ConfigPackTemplate implements ConfigTemplate {
@Value("noise")
private Map<String, NoiseSeeded> noiseBuilderMap;
@Value("addons")
@Default
private Set<TerraAddon> addons;
@Value("variables")
@Default
private Map<String, Double> variables = new HashMap<>();
@@ -121,4 +127,8 @@ public class ConfigPackTemplate implements ConfigTemplate {
public boolean doBetaCarvers() {
return betaCarvers;
}
public Set<TerraAddon> getAddons() {
return addons;
}
}