diff --git a/common/src/main/java/com/dfsek/terra/api/generic/TerraPlugin.java b/common/src/main/java/com/dfsek/terra/api/generic/TerraPlugin.java index 4b99eede7..47c845f92 100644 --- a/common/src/main/java/com/dfsek/terra/api/generic/TerraPlugin.java +++ b/common/src/main/java/com/dfsek/terra/api/generic/TerraPlugin.java @@ -34,4 +34,6 @@ public interface TerraPlugin extends LoaderRegistrar { void reload(); ItemHandle getItemHandle(); + + void saveDefaultConfig(); } diff --git a/common/src/main/java/com/dfsek/terra/config/base/ConfigPack.java b/common/src/main/java/com/dfsek/terra/config/base/ConfigPack.java index f0bc3d7db..a3aceb438 100644 --- a/common/src/main/java/com/dfsek/terra/config/base/ConfigPack.java +++ b/common/src/main/java/com/dfsek/terra/config/base/ConfigPack.java @@ -229,4 +229,8 @@ public class ConfigPack implements LoaderRegistrar { .registerLoader(Ore.class, oreRegistry) .registerLoader(Tree.class, treeRegistry); } + + public BiomeRegistry getBiomeRegistry() { + return biomeRegistry; + } } diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/TerraFabricPlugin.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/TerraFabricPlugin.java index 337fcf3d3..b116b2cc7 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/TerraFabricPlugin.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/TerraFabricPlugin.java @@ -29,9 +29,11 @@ import net.minecraft.util.registry.Registry; import net.minecraft.world.biome.Biome; import net.minecraft.world.gen.chunk.ChunkGenerator; import net.minecraft.world.gen.chunk.ChunkGeneratorSettings; +import org.apache.commons.io.FileUtils; import java.io.File; import java.io.IOException; +import java.io.InputStream; import java.util.HashMap; import java.util.Map; import java.util.logging.Level; @@ -121,6 +123,15 @@ public class TerraFabricPlugin implements TerraPlugin, ModInitializer { return itemHandle; } + @Override + public void saveDefaultConfig() { + try(InputStream stream = getClass().getResourceAsStream("/config.yml")) { + FileUtils.copyInputStreamToFile(stream, new File(getDataFolder(), "config.yml")); + } catch(IOException e) { + e.printStackTrace(); + } + } + @Override public void register(TypeRegistry registry) { genericLoaders.register(registry); @@ -139,12 +150,23 @@ public class TerraFabricPlugin implements TerraPlugin, ModInitializer { @Override public void onInitialize() { instance = this; - plugin.load(this); config = new File(FabricLoader.getInstance().getConfigDir().toFile(), "Terra"); + saveDefaultConfig(); + plugin.load(this); LangUtil.load("en_us", this); logger.info("Initializing Terra..."); registry.loadAll(this); + /* + registry.forEach(config -> { + String pack = config.getTemplate().getID().toLowerCase(); + config.getBiomeRegistry().forEach(terraBiome -> { + Biome biome = (new Biome.Builder()).build(); + Registry.register(BuiltinRegistries.BIOME, new Identifier("terra", pack + "_" + terraBiome.getID().toLowerCase()), biome); + }); + }); + */ + if(FabricLoader.getInstance().getEnvironmentType().equals(EnvType.CLIENT)) { GeneratorTypeAccessor.getValues().add(new GeneratorType("terra") { @Override diff --git a/platforms/fabric/src/main/resources/config.yml b/platforms/fabric/src/main/resources/config.yml new file mode 100644 index 000000000..b13793a3f --- /dev/null +++ b/platforms/fabric/src/main/resources/config.yml @@ -0,0 +1,9 @@ +debug: false +data-save: PT6M +language: "en_us" +fail-type: SHUTDOWN +dump-default: true +biome-search-resolution: 4 +cache-size: 384 +master-disable: + caves: false \ No newline at end of file