From 5fd0595a7865f0d8d5edb5a9159005336507e359 Mon Sep 17 00:00:00 2001 From: paulevsGitch Date: Tue, 26 Oct 2021 17:22:39 +0300 Subject: [PATCH] Fix missing cave config entries --- .../ru/betterend/registry/EndFeatures.java | 19 +++++++++++++------ .../ru/betterend/util/FeaturesHelper.java | 9 ++++----- .../ru/betterend/world/biome/EndBiome.java | 1 - 3 files changed, 17 insertions(+), 12 deletions(-) diff --git a/src/main/java/ru/betterend/registry/EndFeatures.java b/src/main/java/ru/betterend/registry/EndFeatures.java index a4ec02d3..3c2db4da 100644 --- a/src/main/java/ru/betterend/registry/EndFeatures.java +++ b/src/main/java/ru/betterend/registry/EndFeatures.java @@ -19,6 +19,8 @@ import ru.bclib.world.features.BCLFeature; import ru.bclib.world.features.DefaultFeature; import ru.betterend.BetterEnd; import ru.betterend.complexmaterials.StoneMaterial; +import ru.betterend.config.Configs; +import ru.betterend.world.biome.cave.EndCaveBiome; import ru.betterend.world.features.BiomeIslandFeature; import ru.betterend.world.features.BlueVineFeature; import ru.betterend.world.features.CavePumpkinFeature; @@ -351,10 +353,12 @@ public class EndFeatures { addFeature(CRASHED_SHIP, features); BCLBiome bclbiome = BiomeAPI.getBiome(id); - boolean hasCaves = bclbiome.getCustomData("has_caves", true); + boolean hasCaves = bclbiome.getCustomData("has_caves", true) && !(bclbiome instanceof EndCaveBiome); if (hasCaves && !BiomeAPI.END_VOID_BIOME_PICKER.containsImmutable(id)) { - addFeature(ROUND_CAVE, features); - addFeature(TUNEL_CAVE, features); + if (Configs.BIOME_CONFIG.getBoolean(id, "hasCaves", true)) { + addFeature(ROUND_CAVE, features); + addFeature(TUNEL_CAVE, features); + } } BCLFeature feature = BiomeAPI.getBiome(id).getStructuresFeature(); @@ -369,7 +373,12 @@ public class EndFeatures { def.addFeature(ENDER_ORE); def.addFeature(CRASHED_SHIP); + if (def.getID().getPath().endsWith("_cave")) { + return; + } + boolean hasCaves = def.getCustomData("has_caves", true); + hasCaves = Configs.BIOME_CONFIG.getBoolean(def.getID(), "hasCaves", hasCaves); if (hasCaves) { def.addFeature(ROUND_CAVE); def.addFeature(TUNEL_CAVE); @@ -379,9 +388,7 @@ public class EndFeatures { private static void addFeature(BCLFeature feature, List>>> features) { int index = feature.getFeatureStep().ordinal(); if (features.size() > index) { - features.get(index).add(() -> { - return feature.getFeatureConfigured(); - }); + features.get(index).add(() -> feature.getFeatureConfigured()); } else { List>> newFeature = Lists.newArrayList(); diff --git a/src/main/java/ru/betterend/util/FeaturesHelper.java b/src/main/java/ru/betterend/util/FeaturesHelper.java index eb74d1f2..5b2d799c 100644 --- a/src/main/java/ru/betterend/util/FeaturesHelper.java +++ b/src/main/java/ru/betterend/util/FeaturesHelper.java @@ -7,6 +7,7 @@ import net.minecraft.world.level.biome.Biome; import net.minecraft.world.level.levelgen.feature.ConfiguredFeature; import net.minecraft.world.level.levelgen.feature.ConfiguredStructureFeature; import ru.bclib.api.BiomeAPI; +import ru.betterend.config.Configs; import ru.betterend.mixin.common.BiomeGenerationSettingsAccessor; import ru.betterend.registry.EndFeatures; import ru.betterend.registry.EndStructures; @@ -23,11 +24,8 @@ public class FeaturesHelper { BiomeGenerationSettingsAccessor accessor = (BiomeGenerationSettingsAccessor) biome.getGenerationSettings(); List>> structures = Lists.newArrayList(accessor.be_getStructures()); List>>> preFeatures = accessor.be_getFeatures(); - List>>> features = new ArrayList>>>( - preFeatures.size()); - preFeatures.forEach((list) -> { - features.add(Lists.newArrayList(list)); - }); + List>>> features = new ArrayList<>(preFeatures.size()); + preFeatures.forEach((list) -> features.add(Lists.newArrayList(list))); EndFeatures.registerBiomeFeatures(key, biome, features); EndStructures.registerBiomeStructures(key, biome, structures); @@ -36,5 +34,6 @@ public class FeaturesHelper { accessor.be_setStructures(structures); } }); + Configs.BIOME_CONFIG.saveChanges(); } } \ No newline at end of file diff --git a/src/main/java/ru/betterend/world/biome/EndBiome.java b/src/main/java/ru/betterend/world/biome/EndBiome.java index 3284188d..a985a05d 100644 --- a/src/main/java/ru/betterend/world/biome/EndBiome.java +++ b/src/main/java/ru/betterend/world/biome/EndBiome.java @@ -10,7 +10,6 @@ import ru.betterend.registry.EndFeatures; public class EndBiome extends BCLBiome { public EndBiome(BCLBiomeDef def) { super(updateDef(def)); - } public EndBiome(ResourceLocation id, Biome biome, float fogDensity, float genChance, boolean hasCaves) {