From 61cf9711a6593220ffa8e62d5ae74cb337d6cd78 Mon Sep 17 00:00:00 2001 From: Frank Date: Sat, 18 Dec 2021 02:43:18 +0100 Subject: [PATCH] Minor Refactor --- .../java/ru/bclib/world/biomes/BCLBiome.java | 10 +++++++ .../bclib/world/generator/BCLBiomeSource.java | 26 +++++++++++++++++++ .../world/generator/BCLibEndBiomeSource.java | 16 +++--------- .../generator/BCLibNetherBiomeSource.java | 18 +++---------- 4 files changed, 42 insertions(+), 28 deletions(-) diff --git a/src/main/java/ru/bclib/world/biomes/BCLBiome.java b/src/main/java/ru/bclib/world/biomes/BCLBiome.java index 58197c09..2d2049c4 100644 --- a/src/main/java/ru/bclib/world/biomes/BCLBiome.java +++ b/src/main/java/ru/bclib/world/biomes/BCLBiome.java @@ -378,4 +378,14 @@ public class BCLBiome { public Map>> getFeatures(){ return features; } + + /** + * Returns the group used in the config Files for this biome + * + * Example: {@code Configs.BIOMES_CONFIG.getFloat(configGroup(), "generation_chance", 1.0);} + * @return The group name + */ + public String configGroup() { + return biomeID.getNamespace() + "." + biomeID.getPath(); + } } diff --git a/src/main/java/ru/bclib/world/generator/BCLBiomeSource.java b/src/main/java/ru/bclib/world/generator/BCLBiomeSource.java index a329a875..f633e2cc 100644 --- a/src/main/java/ru/bclib/world/generator/BCLBiomeSource.java +++ b/src/main/java/ru/bclib/world/generator/BCLBiomeSource.java @@ -4,6 +4,8 @@ import net.minecraft.core.Registry; import net.minecraft.world.level.biome.Biome; import net.minecraft.world.level.biome.BiomeSource; import ru.bclib.api.biomes.BiomeAPI; +import ru.bclib.config.Configs; +import ru.bclib.world.biomes.BCLBiome; import java.util.List; @@ -24,4 +26,28 @@ public abstract class BCLBiomeSource extends BiomeSource { BiomeAPI.initRegistry(biomeRegistry); } + + + + /** + * Set Biome configuartion from Config + * @param bclBiome The biome you want to configure + * @return The input biome + */ + public static BCLBiome setupFromConfig(BCLBiome bclBiome) { + String group = bclBiome.configGroup(); + float chance = Configs.BIOMES_CONFIG.getFloat(group, "generation_chance", bclBiome.getGenChance()); + float fog = Configs.BIOMES_CONFIG.getFloat(group, "fog_density", bclBiome.getFogDensity()); + bclBiome.setGenChance(chance) + .setFogDensity(fog); + + if (bclBiome.getEdge()!=null){ + int edgeSize = Configs.BIOMES_CONFIG.getInt(group, "edge_size", bclBiome.getEdgeSize()); + bclBiome.setEdgeSize(edgeSize); + } + + Configs.BIOMES_CONFIG.saveChanges(); + + return bclBiome; + } } diff --git a/src/main/java/ru/bclib/world/generator/BCLibEndBiomeSource.java b/src/main/java/ru/bclib/world/generator/BCLibEndBiomeSource.java index 0cdcdac0..d31aee30 100644 --- a/src/main/java/ru/bclib/world/generator/BCLibEndBiomeSource.java +++ b/src/main/java/ru/bclib/world/generator/BCLibEndBiomeSource.java @@ -58,9 +58,8 @@ public class BCLibEndBiomeSource extends BCLBiomeSource { String group = key.getNamespace() + "." + key.getPath(); if (!BiomeAPI.hasBiome(key)) { - float chance = Configs.BIOMES_CONFIG.getFloat(group, "generation_chance", 1.0F); - float fog = Configs.BIOMES_CONFIG.getFloat(group, "fog_density", 1.0F); - BCLBiome bclBiome = new BCLBiome(key, biome).setGenChance(chance).setFogDensity(fog); + BCLBiome bclBiome = setupFromConfig(new BCLBiome(key, biome)); + if (includeVoid.contains(key.toString())) { BiomeAPI.END_VOID_BIOME_PICKER.addBiomeMutable(bclBiome); } @@ -71,14 +70,7 @@ public class BCLibEndBiomeSource extends BCLBiomeSource { else { BCLBiome bclBiome = BiomeAPI.getBiome(key); if (bclBiome != BiomeAPI.EMPTY_BIOME) { - float chance = Configs.BIOMES_CONFIG.getFloat(group, "generation_chance", bclBiome.getGenChance()); - float fog = Configs.BIOMES_CONFIG.getFloat(group, "fog_density", bclBiome.getFogDensity()); - bclBiome.setGenChance(chance).setFogDensity(fog); - if (bclBiome.getEdgeSize()!=0){ - int edgeSize = Configs.BIOMES_CONFIG.getInt(group, "edge_size", bclBiome.getEdgeSize()); - bclBiome.setEdgeSize(edgeSize); - } - + setupFromConfig(bclBiome); if (bclBiome.getParentBiome() == null) { if (!BiomeAPI.END_LAND_BIOME_PICKER.containsImmutable(key) && !BiomeAPI.END_VOID_BIOME_PICKER.containsImmutable(key)) { @@ -94,8 +86,6 @@ public class BCLibEndBiomeSource extends BCLBiomeSource { } }); - Configs.BIOMES_CONFIG.saveChanges(); - BiomeAPI.END_LAND_BIOME_PICKER.getBiomes().forEach(biome -> biome.updateActualBiomes(biomeRegistry)); BiomeAPI.END_VOID_BIOME_PICKER.getBiomes().forEach(biome -> biome.updateActualBiomes(biomeRegistry)); diff --git a/src/main/java/ru/bclib/world/generator/BCLibNetherBiomeSource.java b/src/main/java/ru/bclib/world/generator/BCLibNetherBiomeSource.java index 5da576ae..48754d37 100644 --- a/src/main/java/ru/bclib/world/generator/BCLibNetherBiomeSource.java +++ b/src/main/java/ru/bclib/world/generator/BCLibNetherBiomeSource.java @@ -58,30 +58,19 @@ public class BCLibNetherBiomeSource extends BCLBiomeSource { public BCLibNetherBiomeSource(Registry biomeRegistry, long seed) { super(biomeRegistry, seed, getBiomes(biomeRegistry)); - BiomeAPI.NETHER_BIOME_PICKER.clearMutables(); this.possibleBiomes().forEach(biome -> { ResourceLocation key = biomeRegistry.getKey(biome); - String group = key.getNamespace() + "." + key.getPath(); + if (!BiomeAPI.hasBiome(key)) { - float chance = Configs.BIOMES_CONFIG.getFloat(group, "generation_chance", 1.0F); - float fog = Configs.BIOMES_CONFIG.getFloat(group, "fog_density", 1.0F); - BCLBiome bclBiome = new BCLBiome(key, biome).setGenChance(chance).setFogDensity(fog); + BCLBiome bclBiome = setupFromConfig(new BCLBiome(key, biome)); BiomeAPI.NETHER_BIOME_PICKER.addBiomeMutable(bclBiome); } else { BCLBiome bclBiome = BiomeAPI.getBiome(key); if (bclBiome != BiomeAPI.EMPTY_BIOME) { - float chance = Configs.BIOMES_CONFIG.getFloat(group, "generation_chance", bclBiome.getGenChance()); - float fog = Configs.BIOMES_CONFIG.getFloat(group, "fog_density", bclBiome.getFogDensity()); - bclBiome.setGenChance(chance) - .setFogDensity(fog); - - if (bclBiome.getEdgeSize()!=0){ - int edgeSize = Configs.BIOMES_CONFIG.getInt(group, "edge_size", bclBiome.getEdgeSize()); - bclBiome.setEdgeSize(edgeSize); - } + setupFromConfig(bclBiome); if (bclBiome.getParentBiome() == null) { if (!BiomeAPI.NETHER_BIOME_PICKER.containsImmutable(key)) { @@ -92,7 +81,6 @@ public class BCLibNetherBiomeSource extends BCLBiomeSource { } }); - Configs.BIOMES_CONFIG.saveChanges(); BiomeAPI.NETHER_BIOME_PICKER.getBiomes().forEach(biome -> biome.updateActualBiomes(biomeRegistry)); BiomeAPI.NETHER_BIOME_PICKER.rebuild();