Feature sorting optimisation
This commit is contained in:
parent
e48e192970
commit
f817981e91
4 changed files with 18 additions and 25 deletions
|
@ -6,7 +6,6 @@ import net.fabricmc.loader.api.FabricLoader;
|
||||||
import net.minecraft.resources.ResourceLocation;
|
import net.minecraft.resources.ResourceLocation;
|
||||||
import ru.bclib.api.TagAPI;
|
import ru.bclib.api.TagAPI;
|
||||||
import ru.bclib.api.WorldDataAPI;
|
import ru.bclib.api.WorldDataAPI;
|
||||||
import ru.bclib.api.biomes.BiomeAPI;
|
|
||||||
import ru.bclib.api.dataexchange.DataExchangeAPI;
|
import ru.bclib.api.dataexchange.DataExchangeAPI;
|
||||||
import ru.bclib.api.dataexchange.handler.autosync.Chunker;
|
import ru.bclib.api.dataexchange.handler.autosync.Chunker;
|
||||||
import ru.bclib.api.dataexchange.handler.autosync.HelloClient;
|
import ru.bclib.api.dataexchange.handler.autosync.HelloClient;
|
||||||
|
@ -49,7 +48,6 @@ public class BCLib implements ModInitializer {
|
||||||
));
|
));
|
||||||
|
|
||||||
BCLibPatch.register();
|
BCLibPatch.register();
|
||||||
BiomeAPI.init();
|
|
||||||
Configs.save();
|
Configs.save();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,11 +1,5 @@
|
||||||
package ru.bclib.api.biomes;
|
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.fabricmc.fabric.api.biome.v1.BiomeModifications;
|
||||||
import net.minecraft.core.particles.ParticleOptions;
|
import net.minecraft.core.particles.ParticleOptions;
|
||||||
import net.minecraft.data.BuiltinRegistries;
|
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.features.BCLFeature;
|
||||||
import ru.bclib.world.structures.BCLStructureFeature;
|
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 {
|
public class BCLBiomeBuilder {
|
||||||
private static final BCLBiomeBuilder INSTANCE = new BCLBiomeBuilder();
|
private static final BCLBiomeBuilder INSTANCE = new BCLBiomeBuilder();
|
||||||
private static final SurfaceRules.ConditionSource SURFACE_NOISE = SurfaceRules.noiseCondition(Noises.SOUL_SAND_LAYER, -0.012);
|
private static final SurfaceRules.ConditionSource SURFACE_NOISE = SurfaceRules.noiseCondition(Noises.SOUL_SAND_LAYER, -0.012);
|
||||||
|
|
|
@ -103,13 +103,12 @@ public class BiomeAPI {
|
||||||
|
|
||||||
public static final BCLBiome END_BARRENS = registerEndVoidBiome(getFromRegistry(new ResourceLocation("end_barrens")));
|
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 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() {
|
private static void initFeatureOrder() {
|
||||||
didInitFeatureOrder = true;
|
if (!FEATURE_ORDER.isEmpty()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
BuiltinRegistries.BIOME
|
BuiltinRegistries.BIOME
|
||||||
.entrySet()
|
.entrySet()
|
||||||
.stream()
|
.stream()
|
||||||
|
@ -716,9 +715,7 @@ public class BiomeAPI {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void sortFeatures(List<Supplier<PlacedFeature>> features) {
|
public static void sortFeatures(List<Supplier<PlacedFeature>> features) {
|
||||||
if (!didInitFeatureOrder){
|
initFeatureOrder();
|
||||||
initFeatureOrder();
|
|
||||||
}
|
|
||||||
features.forEach(provider -> {
|
features.forEach(provider -> {
|
||||||
PlacedFeature feature = provider.get();
|
PlacedFeature feature = provider.get();
|
||||||
FEATURE_ORDER.computeIfAbsent(feature, f -> FEATURE_ORDER_ID.getAndIncrement());
|
FEATURE_ORDER.computeIfAbsent(feature, f -> FEATURE_ORDER_ID.getAndIncrement());
|
||||||
|
|
|
@ -1,15 +1,7 @@
|
||||||
package ru.bclib.world.biomes;
|
package ru.bclib.world.biomes;
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Random;
|
|
||||||
import java.util.function.Consumer;
|
|
||||||
|
|
||||||
import org.jetbrains.annotations.Nullable;
|
|
||||||
|
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
import com.google.common.collect.Maps;
|
import com.google.common.collect.Maps;
|
||||||
|
|
||||||
import net.minecraft.core.Registry;
|
import net.minecraft.core.Registry;
|
||||||
import net.minecraft.data.BuiltinRegistries;
|
import net.minecraft.data.BuiltinRegistries;
|
||||||
import net.minecraft.resources.ResourceKey;
|
import net.minecraft.resources.ResourceKey;
|
||||||
|
@ -18,9 +10,15 @@ import net.minecraft.world.level.biome.Biome;
|
||||||
import net.minecraft.world.level.levelgen.SurfaceRules;
|
import net.minecraft.world.level.levelgen.SurfaceRules;
|
||||||
import net.minecraft.world.level.levelgen.SurfaceRules.RuleSource;
|
import net.minecraft.world.level.levelgen.SurfaceRules.RuleSource;
|
||||||
import net.minecraft.world.level.levelgen.feature.ConfiguredStructureFeature;
|
import net.minecraft.world.level.levelgen.feature.ConfiguredStructureFeature;
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
import ru.bclib.api.biomes.BiomeAPI;
|
import ru.bclib.api.biomes.BiomeAPI;
|
||||||
import ru.bclib.util.WeightedList;
|
import ru.bclib.util.WeightedList;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Random;
|
||||||
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
public class BCLBiome {
|
public class BCLBiome {
|
||||||
private final List<ConfiguredStructureFeature> structures = Lists.newArrayList();
|
private final List<ConfiguredStructureFeature> structures = Lists.newArrayList();
|
||||||
private final WeightedList<BCLBiome> subbiomes = new WeightedList<>();
|
private final WeightedList<BCLBiome> subbiomes = new WeightedList<>();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue