From 6c107358741ef687b96652ff87efd40d07cfed31 Mon Sep 17 00:00:00 2001 From: Frank Date: Fri, 27 May 2022 01:18:49 +0200 Subject: [PATCH] Disabled Feature Sort (handled differently by vanilla now) --- .../betterx/bclib/api/biomes/BiomeAPI.java | 94 +++++++------------ .../bclib/api/worldgen/BCLChunkGenerator.java | 2 +- 2 files changed, 34 insertions(+), 62 deletions(-) diff --git a/src/main/java/org/betterx/bclib/api/biomes/BiomeAPI.java b/src/main/java/org/betterx/bclib/api/biomes/BiomeAPI.java index 5ba5e7bc..ccd86581 100644 --- a/src/main/java/org/betterx/bclib/api/biomes/BiomeAPI.java +++ b/src/main/java/org/betterx/bclib/api/biomes/BiomeAPI.java @@ -18,7 +18,6 @@ import net.minecraft.world.level.Level; import net.minecraft.world.level.LevelAccessor; import net.minecraft.world.level.WorldGenLevel; import net.minecraft.world.level.biome.Biome; -import net.minecraft.world.level.biome.BiomeGenerationSettings; import net.minecraft.world.level.biome.BiomeSource; import net.minecraft.world.level.biome.Biomes; import net.minecraft.world.level.biome.MobSpawnSettings.SpawnerData; @@ -32,7 +31,6 @@ import net.minecraft.world.level.levelgen.NoiseGeneratorSettings; import net.minecraft.world.level.levelgen.feature.ConfiguredFeature; import net.minecraft.world.level.levelgen.feature.Feature; import net.minecraft.world.level.levelgen.placement.PlacedFeature; -import net.minecraft.world.level.levelgen.structure.Structure; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; @@ -43,7 +41,6 @@ import com.google.common.base.Suppliers; import com.google.common.collect.ImmutableList; import com.google.common.collect.Lists; import com.google.common.collect.Maps; -import com.google.common.collect.Sets; import org.apache.commons.lang3.mutable.MutableInt; import org.betterx.bclib.BCLib; import org.betterx.bclib.api.tag.CommonBiomeTags; @@ -60,8 +57,11 @@ import org.betterx.bclib.world.biomes.FabricBiomesData; import org.betterx.bclib.world.biomes.VanillaBiomeSettings; import org.betterx.bclib.world.features.BCLFeature; -import java.util.*; +import java.util.List; +import java.util.Map; import java.util.Map.Entry; +import java.util.Optional; +import java.util.Set; import java.util.function.BiConsumer; import java.util.function.Supplier; import java.util.stream.Collectors; @@ -729,16 +729,16 @@ public class BiomeAPI { * @param biome The {@link Biome} to sort the features for */ public static void sortBiomeFeatures(Holder biome) { - BiomeGenerationSettings settings = biome.value().getGenerationSettings(); - BiomeGenerationSettingsAccessor accessor = (BiomeGenerationSettingsAccessor) settings; - List> featureList = CollectionsUtil.getMutable(accessor.bclib_getFeatures()); - final int size = featureList.size(); - for (int i = 0; i < size; i++) { - List> features = getFeaturesListCopy(featureList, i); - sortFeatures(features); - featureList.set(i, HolderSet.direct(features)); - } - accessor.bclib_setFeatures(featureList); +// BiomeGenerationSettings settings = biome.value().getGenerationSettings(); +// BiomeGenerationSettingsAccessor accessor = (BiomeGenerationSettingsAccessor) settings; +// List> featureList = CollectionsUtil.getMutable(accessor.bclib_getFeatures()); +// final int size = featureList.size(); +// for (int i = 0; i < size; i++) { +// List> features = getFeaturesListCopy(featureList, i); +// sortFeatures(features); +// featureList.set(i, HolderSet.direct(features)); +// } +// accessor.bclib_setFeatures(featureList); } /** @@ -885,54 +885,26 @@ public class BiomeAPI { setBiome(chunk, pos, biome); } - static class StructureID { - public final ResourceLocation biomeID; - public final Holder structure; - - StructureID(ResourceLocation biomeID, Holder structure) { - this.biomeID = biomeID; - this.structure = structure; - } - - @Override - public String toString() { - return "StructureID{" + "id=" + biomeID + ", structure=" + structure + '}'; - } - - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; - StructureID that = (StructureID) o; - return biomeID.equals(that.biomeID) && structure.equals(that.structure); - } - - @Override - public int hashCode() { - return Objects.hash(biomeID, structure); - } - } - private static void sortFeatures(List> features) { - initFeatureOrder(); - - Set> featuresWithoutDuplicates = Sets.newHashSet(); - features.forEach(holder -> featuresWithoutDuplicates.add(holder)); - - if (featuresWithoutDuplicates.size() != features.size()) { - features.clear(); - featuresWithoutDuplicates.forEach(feature -> features.add(feature)); - } - - features.forEach(feature -> { - FEATURE_ORDER.computeIfAbsent(feature, f -> FEATURE_ORDER_ID.getAndIncrement()); - }); - - features.sort((f1, f2) -> { - int v1 = FEATURE_ORDER.getOrDefault(f1, 70000); - int v2 = FEATURE_ORDER.getOrDefault(f2, 70000); - return Integer.compare(v1, v2); - }); +// initFeatureOrder(); +// +// Set> featuresWithoutDuplicates = Sets.newHashSet(); +// features.forEach(holder -> featuresWithoutDuplicates.add(holder)); +// +// if (featuresWithoutDuplicates.size() != features.size()) { +// features.clear(); +// featuresWithoutDuplicates.forEach(feature -> features.add(feature)); +// } +// +// features.forEach(feature -> { +// FEATURE_ORDER.computeIfAbsent(feature, f -> FEATURE_ORDER_ID.getAndIncrement()); +// }); +// +// features.sort((f1, f2) -> { +// int v1 = FEATURE_ORDER.getOrDefault(f1, 70000); +// int v2 = FEATURE_ORDER.getOrDefault(f2, 70000); +// return Integer.compare(v1, v2); +// }); } diff --git a/src/main/java/org/betterx/bclib/api/worldgen/BCLChunkGenerator.java b/src/main/java/org/betterx/bclib/api/worldgen/BCLChunkGenerator.java index 843face5..c7d2524a 100644 --- a/src/main/java/org/betterx/bclib/api/worldgen/BCLChunkGenerator.java +++ b/src/main/java/org/betterx/bclib/api/worldgen/BCLChunkGenerator.java @@ -65,7 +65,7 @@ public class BCLChunkGenerator extends NoiseBasedChunkGenerator { public static void injectNoiseSettings(ResourceKey dimensionKey, ChunkGenerator loadedChunkGenerator) { - BCLib.LOGGER.debug("Correcting Noise Settings for " + dimensionKey.location().toString()); + BCLib.LOGGER.debug("Checking Noise Settings for " + dimensionKey.location().toString()); final BiomeSource loadedBiomeSource = loadedChunkGenerator.getBiomeSource(); BiomeAPI.applyModifications(loadedBiomeSource, dimensionKey);