Spaces:
Build error
Build error
File size: 1,997 Bytes
d46f4a3 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
package net.minecraft.client.searchtree;
import java.util.List;
import java.util.Locale;
import java.util.function.Function;
import java.util.stream.Stream;
import net.minecraft.resources.ResourceLocation;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
@OnlyIn(Dist.CLIENT)
public interface ResourceLocationSearchTree<T> {
static <T> ResourceLocationSearchTree<T> empty() {
return new ResourceLocationSearchTree<T>() {
@Override
public List<T> searchNamespace(String p_235218_) {
return List.of();
}
@Override
public List<T> searchPath(String p_235220_) {
return List.of();
}
};
}
static <T> ResourceLocationSearchTree<T> create(List<T> p_235213_, Function<T, Stream<ResourceLocation>> p_235214_) {
if (p_235213_.isEmpty()) {
return empty();
} else {
final SuffixArray<T> suffixarray = new SuffixArray<>();
final SuffixArray<T> suffixarray1 = new SuffixArray<>();
for (T t : p_235213_) {
p_235214_.apply(t).forEach(p_235210_ -> {
suffixarray.add(t, p_235210_.getNamespace().toLowerCase(Locale.ROOT));
suffixarray1.add(t, p_235210_.getPath().toLowerCase(Locale.ROOT));
});
}
suffixarray.generate();
suffixarray1.generate();
return new ResourceLocationSearchTree<T>() {
@Override
public List<T> searchNamespace(String p_235227_) {
return suffixarray.search(p_235227_);
}
@Override
public List<T> searchPath(String p_235229_) {
return suffixarray1.search(p_235229_);
}
};
}
}
List<T> searchNamespace(String p_235211_);
List<T> searchPath(String p_235215_);
} |