Prevent duplicate features
This commit is contained in:
parent
77cc26d548
commit
8c7a11ee04
1 changed files with 10 additions and 0 deletions
|
@ -732,10 +732,20 @@ public class BiomeAPI {
|
||||||
|
|
||||||
private static void sortFeatures(List<Supplier<PlacedFeature>> features) {
|
private static void sortFeatures(List<Supplier<PlacedFeature>> features) {
|
||||||
initFeatureOrder();
|
initFeatureOrder();
|
||||||
|
|
||||||
|
Set<PlacedFeature> featuresWithoutDuplicates = Sets.newHashSet();
|
||||||
|
features.forEach(provider -> featuresWithoutDuplicates.add(provider.get()));
|
||||||
|
|
||||||
|
if (featuresWithoutDuplicates.size() != features.size()) {
|
||||||
|
features.clear();
|
||||||
|
featuresWithoutDuplicates.forEach(feature -> features.add(() -> feature));
|
||||||
|
}
|
||||||
|
|
||||||
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());
|
||||||
});
|
});
|
||||||
|
|
||||||
features.sort((f1, f2) -> {
|
features.sort((f1, f2) -> {
|
||||||
int v1 = FEATURE_ORDER.getOrDefault(f1.get(), 70000);
|
int v1 = FEATURE_ORDER.getOrDefault(f1.get(), 70000);
|
||||||
int v2 = FEATURE_ORDER.getOrDefault(f2.get(), 70000);
|
int v2 = FEATURE_ORDER.getOrDefault(f2.get(), 70000);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue