mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2025-07-03 00:15:35 +00:00
create DimensionConfig
This commit is contained in:
parent
94d7f783c4
commit
33ef6a1ded
@ -2,6 +2,7 @@ package com.dfsek.terra.fabric;
|
||||
|
||||
import com.dfsek.tectonic.exception.ConfigException;
|
||||
import com.dfsek.tectonic.exception.LoadException;
|
||||
import com.dfsek.tectonic.loading.ConfigLoader;
|
||||
import com.dfsek.tectonic.loading.TypeRegistry;
|
||||
import com.dfsek.terra.api.TerraPlugin;
|
||||
import com.dfsek.terra.api.addons.TerraAddon;
|
||||
@ -36,6 +37,7 @@ import com.dfsek.terra.config.PluginConfig;
|
||||
import com.dfsek.terra.config.lang.LangUtil;
|
||||
import com.dfsek.terra.config.lang.Language;
|
||||
import com.dfsek.terra.config.pack.ConfigPack;
|
||||
import com.dfsek.terra.fabric.config.DimensionConfig;
|
||||
import com.dfsek.terra.fabric.config.PostLoadCompatibilityOptions;
|
||||
import com.dfsek.terra.fabric.config.PreLoadCompatibilityOptions;
|
||||
import com.dfsek.terra.fabric.generation.FabricChunkGeneratorWrapper;
|
||||
@ -70,6 +72,8 @@ import org.apache.commons.io.FileUtils;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.util.HashMap;
|
||||
@ -121,6 +125,8 @@ public class TerraFabricPlugin implements TerraPlugin, ModInitializer {
|
||||
|
||||
private final PluginConfig config = new PluginConfig();
|
||||
|
||||
private final DimensionConfig dimensionConfig = new DimensionConfig();
|
||||
|
||||
private final Transformer<String, Biome> biomeFixer = new Transformer.Builder<String, Biome>()
|
||||
.addTransform(id -> BuiltinRegistries.BIOME.get(Identifier.tryParse(id)), Validator.notNull())
|
||||
.addTransform(id -> BuiltinRegistries.BIOME.get(Identifier.tryParse("minecraft:" + id.toLowerCase())), Validator.notNull()).build();
|
||||
@ -243,6 +249,18 @@ public class TerraFabricPlugin implements TerraPlugin, ModInitializer {
|
||||
|
||||
registry.forEach(pack -> pack.getBiomeRegistry().forEach((id, biome) -> Registry.register(BuiltinRegistries.BIOME, new Identifier("terra", FabricUtil.createBiomeID(pack, id)), FabricUtil.createBiome(fabricAddon, biome, pack)))); // Register all Terra biomes.
|
||||
|
||||
File configFile = new File(getDataFolder(), "config.yml");
|
||||
ConfigLoader loader = new ConfigLoader();
|
||||
loader.registerLoader(ConfigPack.class, registry);
|
||||
register(loader);
|
||||
try {
|
||||
logger.info("Loading dimension config...");
|
||||
loader.load(dimensionConfig, new FileInputStream(configFile));
|
||||
logger.info("Loaded " + dimensionConfig.getDimensionPacks().size() + " dimension overrides.");
|
||||
} catch(ConfigException | FileNotFoundException e) {
|
||||
throw new RuntimeException("Failed to load dimension config", e);
|
||||
}
|
||||
|
||||
logger.info("Loaded packs.");
|
||||
}
|
||||
|
||||
|
@ -0,0 +1,21 @@
|
||||
package com.dfsek.terra.fabric.config;
|
||||
|
||||
import com.dfsek.tectonic.annotations.Default;
|
||||
import com.dfsek.tectonic.annotations.Value;
|
||||
import com.dfsek.tectonic.config.ConfigTemplate;
|
||||
import com.dfsek.terra.config.pack.ConfigPack;
|
||||
import net.minecraft.util.Identifier;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
@SuppressWarnings("FieldMayBeFinal")
|
||||
public class DimensionConfig implements ConfigTemplate {
|
||||
@Value("dimensions")
|
||||
@Default
|
||||
private Map<Identifier, ConfigPack> dimensionPacks = new HashMap<>();
|
||||
|
||||
public Map<Identifier, ConfigPack> getDimensionPacks() {
|
||||
return dimensionPacks;
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user