mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2026-02-16 10:30:42 +00:00
More loading stuff
This commit is contained in:
@@ -5,9 +5,6 @@ import com.dfsek.tectonic.exception.ConfigException;
|
||||
import com.dfsek.tectonic.loading.ConfigLoader;
|
||||
import com.dfsek.terra.Debug;
|
||||
import com.dfsek.terra.biome.UserDefinedBiome;
|
||||
import com.dfsek.terra.biome.palette.PaletteHolder;
|
||||
import com.dfsek.terra.biome.palette.PaletteLayer;
|
||||
import com.dfsek.terra.carving.CarverPalette;
|
||||
import com.dfsek.terra.carving.UserDefinedCarver;
|
||||
import com.dfsek.terra.config.builder.BiomeGridBuilder;
|
||||
import com.dfsek.terra.config.exception.FileMissingException;
|
||||
@@ -16,28 +13,19 @@ import com.dfsek.terra.config.factories.BiomeGridFactory;
|
||||
import com.dfsek.terra.config.factories.CarverFactory;
|
||||
import com.dfsek.terra.config.factories.PaletteFactory;
|
||||
import com.dfsek.terra.config.lang.LangUtil;
|
||||
import com.dfsek.terra.config.loaders.GridSpawnLoader;
|
||||
import com.dfsek.terra.config.loaders.NoiseBuilderLoader;
|
||||
import com.dfsek.terra.config.loaders.PaletteHolderLoader;
|
||||
import com.dfsek.terra.config.loaders.PaletteLayerLoader;
|
||||
import com.dfsek.terra.config.loaders.ProbabilityCollectionLoader;
|
||||
import com.dfsek.terra.config.loaders.RangeLoader;
|
||||
import com.dfsek.terra.config.loaders.base.CarverPaletteLoader;
|
||||
import com.dfsek.terra.config.templates.BiomeGridTemplate;
|
||||
import com.dfsek.terra.config.templates.BiomeTemplate;
|
||||
import com.dfsek.terra.config.templates.CarverTemplate;
|
||||
import com.dfsek.terra.config.templates.PaletteTemplate;
|
||||
import com.dfsek.terra.config.templates.StructureTemplate;
|
||||
import com.dfsek.terra.generation.config.NoiseBuilder;
|
||||
import com.dfsek.terra.procgen.GridSpawn;
|
||||
import com.dfsek.terra.registry.BiomeGridRegistry;
|
||||
import com.dfsek.terra.registry.BiomeRegistry;
|
||||
import com.dfsek.terra.registry.CarverRegistry;
|
||||
import com.dfsek.terra.registry.PaletteRegistry;
|
||||
import com.dfsek.terra.registry.StructureRegistry;
|
||||
import com.dfsek.terra.util.ConfigUtil;
|
||||
import org.polydev.gaea.math.ProbabilityCollection;
|
||||
import org.polydev.gaea.math.Range;
|
||||
import org.polydev.gaea.world.palette.Palette;
|
||||
|
||||
import java.io.File;
|
||||
@@ -76,13 +64,9 @@ public class ConfigPack {
|
||||
|
||||
|
||||
AbstractConfigLoader abstractConfigLoader = new AbstractConfigLoader();
|
||||
abstractConfigLoader.registerLoader(ProbabilityCollection.class, new ProbabilityCollectionLoader())
|
||||
.registerLoader(Range.class, new RangeLoader())
|
||||
.registerLoader(CarverPalette.class, new CarverPaletteLoader())
|
||||
.registerLoader(GridSpawn.class, new GridSpawnLoader())
|
||||
.registerLoader(PaletteHolder.class, new PaletteHolderLoader())
|
||||
.registerLoader(PaletteLayer.class, new PaletteLayerLoader())
|
||||
abstractConfigLoader
|
||||
.registerLoader(Palette.class, paletteRegistry);
|
||||
ConfigUtil.registerAllLoaders(abstractConfigLoader);
|
||||
|
||||
List<PaletteTemplate> paletteTemplates = abstractConfigLoader.load(ConfigUtil.loadFromPath(new File(folder, "palettes").toPath()), PaletteTemplate::new);
|
||||
PaletteFactory paletteFactory = new PaletteFactory();
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.dfsek.terra.config.loaders;
|
||||
|
||||
import com.dfsek.tectonic.exception.LoadException;
|
||||
import com.dfsek.tectonic.loading.ConfigLoader;
|
||||
import com.dfsek.tectonic.loading.TypeLoader;
|
||||
import org.bukkit.block.Biome;
|
||||
|
||||
import java.lang.reflect.Type;
|
||||
|
||||
public class VanillaBiomeLoader implements TypeLoader<Biome> {
|
||||
@Override
|
||||
public Biome load(Type type, Object o, ConfigLoader configLoader) throws LoadException {
|
||||
return Biome.valueOf((String) o);
|
||||
}
|
||||
}
|
||||
@@ -29,7 +29,8 @@ public class BiomeTemplate implements ConfigTemplate {
|
||||
private PaletteHolder palette;
|
||||
@Value("slant.palette")
|
||||
@Abstractable
|
||||
private PaletteHolder slantPalette;
|
||||
@Default
|
||||
private PaletteHolder slantPalette = null;
|
||||
@Value("vanilla")
|
||||
@Abstractable
|
||||
private Biome vanilla;
|
||||
@@ -53,15 +54,19 @@ public class BiomeTemplate implements ConfigTemplate {
|
||||
@Default
|
||||
private List<Ore> ores = new GlueList<>();
|
||||
@Value("ocean.level")
|
||||
@Abstractable
|
||||
@Default
|
||||
private int seaLevel = 62;
|
||||
@Value("ocean.palette")
|
||||
@Abstractable
|
||||
@Default
|
||||
private Palette<BlockData> oceanPalette; // TODO: default palette
|
||||
@Value("slant.y-offset.top")
|
||||
@Abstractable
|
||||
@Default
|
||||
private double slantOffsetTop = 0.5D;
|
||||
@Value("slant.y-offset-bottom")
|
||||
@Abstractable
|
||||
@Default
|
||||
private double slantOffsetBottom = 0.25;
|
||||
@Value("elevation.equation")
|
||||
|
||||
@@ -1,5 +1,21 @@
|
||||
package com.dfsek.terra.util;
|
||||
|
||||
import com.dfsek.tectonic.loading.TypeRegistry;
|
||||
import com.dfsek.terra.biome.palette.PaletteHolder;
|
||||
import com.dfsek.terra.biome.palette.PaletteLayer;
|
||||
import com.dfsek.terra.carving.CarverPalette;
|
||||
import com.dfsek.terra.config.loaders.GridSpawnLoader;
|
||||
import com.dfsek.terra.config.loaders.PaletteHolderLoader;
|
||||
import com.dfsek.terra.config.loaders.PaletteLayerLoader;
|
||||
import com.dfsek.terra.config.loaders.ProbabilityCollectionLoader;
|
||||
import com.dfsek.terra.config.loaders.RangeLoader;
|
||||
import com.dfsek.terra.config.loaders.VanillaBiomeLoader;
|
||||
import com.dfsek.terra.config.loaders.base.CarverPaletteLoader;
|
||||
import com.dfsek.terra.procgen.GridSpawn;
|
||||
import org.bukkit.block.Biome;
|
||||
import org.polydev.gaea.math.ProbabilityCollection;
|
||||
import org.polydev.gaea.math.Range;
|
||||
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.IOException;
|
||||
@@ -28,4 +44,19 @@ public final class ConfigUtil {
|
||||
|
||||
return streams;
|
||||
}
|
||||
|
||||
/**
|
||||
* Register all Terra loaders to a {@link TypeRegistry}.
|
||||
*
|
||||
* @param registry Registry.
|
||||
*/
|
||||
public static void registerAllLoaders(TypeRegistry registry) {
|
||||
registry.registerLoader(ProbabilityCollection.class, new ProbabilityCollectionLoader())
|
||||
.registerLoader(Range.class, new RangeLoader())
|
||||
.registerLoader(CarverPalette.class, new CarverPaletteLoader())
|
||||
.registerLoader(GridSpawn.class, new GridSpawnLoader())
|
||||
.registerLoader(PaletteHolder.class, new PaletteHolderLoader())
|
||||
.registerLoader(PaletteLayer.class, new PaletteLayerLoader())
|
||||
.registerLoader(Biome.class, new VanillaBiomeLoader());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user