package ru.betterend.util; import com.google.common.collect.Lists; import net.minecraft.core.Registry; import net.minecraft.resources.ResourceLocation; 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; import java.util.ArrayList; import java.util.List; import java.util.function.Supplier; public class FeaturesHelper { public static void addFeatures(Registry biomeRegistry) { biomeRegistry.forEach((biome) -> { ResourceLocation key = biomeRegistry.getKey(biome); if (BiomeAPI.isEndBiome(key)) { 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))); EndFeatures.registerBiomeFeatures(key, biome, features); EndStructures.registerBiomeStructures(key, biome, structures); accessor.be_setFeatures(features); accessor.be_setStructures(structures); } }); Configs.BIOME_CONFIG.saveChanges(); } }