Feature sorting optimisation

This commit is contained in:
paulevsGitch 2021-12-08 16:14:25 +03:00
parent e48e192970
commit f817981e91
4 changed files with 18 additions and 25 deletions

View file

@ -1,11 +1,5 @@
package ru.bclib.api.biomes;
import java.util.ArrayList;
import java.util.List;
import java.util.function.BiFunction;
import java.util.function.Consumer;
import java.util.function.Supplier;
import net.fabricmc.fabric.api.biome.v1.BiomeModifications;
import net.minecraft.core.particles.ParticleOptions;
import net.minecraft.data.BuiltinRegistries;
@ -42,6 +36,12 @@ import ru.bclib.world.biomes.BCLBiome;
import ru.bclib.world.features.BCLFeature;
import ru.bclib.world.structures.BCLStructureFeature;
import java.util.ArrayList;
import java.util.List;
import java.util.function.BiFunction;
import java.util.function.Consumer;
import java.util.function.Supplier;
public class BCLBiomeBuilder {
private static final BCLBiomeBuilder INSTANCE = new BCLBiomeBuilder();
private static final SurfaceRules.ConditionSource SURFACE_NOISE = SurfaceRules.noiseCondition(Noises.SOUL_SAND_LAYER, -0.012);

View file

@ -103,13 +103,12 @@ public class BiomeAPI {
public static final BCLBiome END_BARRENS = registerEndVoidBiome(getFromRegistry(new ResourceLocation("end_barrens")));
public static final BCLBiome SMALL_END_ISLANDS = registerEndVoidBiome(getFromRegistry(new ResourceLocation("small_end_islands")));
public static void init() {
}
private static boolean didInitFeatureOrder = false;
private static void initFeatureOrder() {
didInitFeatureOrder = true;
if (!FEATURE_ORDER.isEmpty()) {
return;
}
BuiltinRegistries.BIOME
.entrySet()
.stream()
@ -716,9 +715,7 @@ public class BiomeAPI {
}
public static void sortFeatures(List<Supplier<PlacedFeature>> features) {
if (!didInitFeatureOrder){
initFeatureOrder();
}
initFeatureOrder();
features.forEach(provider -> {
PlacedFeature feature = provider.get();
FEATURE_ORDER.computeIfAbsent(feature, f -> FEATURE_ORDER_ID.getAndIncrement());