IdentifierSearchTree.java
net.minecraft.client.searchtree.IdentifierSearchTree
信息
- 全限定名:net.minecraft.client.searchtree.IdentifierSearchTree
- 类型:public interface
- 包:net.minecraft.client.searchtree
- 源码路径:src/main/java/net/minecraft/client/searchtree/IdentifierSearchTree.java
- 起始行号:L12
- 职责:
TODO
字段/常量
- 无
内部类/嵌套类型
- 无
构造器
- 无
方法
下面的方法块按源码顺序生成。
static <T> IdentifierSearchTree<T> empty() @ L13
- 方法名:empty
- 源码定位:L13
- 返回类型:
IdentifierSearchTree - 修饰符:static
参数:
- 无
说明:
TODO
static <T> IdentifierSearchTree<T> create(List<T> elements, Function<T,Stream<Identifier>> idGetter) @ L27
- 方法名:create
- 源码定位:L27
- 返回类型:
IdentifierSearchTree - 修饰符:static
参数:
- elements: List
- idGetter: Function<T,Stream
>
说明:
TODO
List<T> searchNamespace(String namespace) @ L57
- 方法名:searchNamespace
- 源码定位:L57
- 返回类型:List
- 修饰符:package-private
参数:
- namespace: String
说明:
TODO
List<T> searchPath(String path) @ L59
- 方法名:searchPath
- 源码定位:L59
- 返回类型:List
- 修饰符:package-private
参数:
- path: String
说明:
TODO
代码
@OnlyIn(Dist.CLIENT)
public interface IdentifierSearchTree<T> {
static <T> IdentifierSearchTree<T> empty() {
return new IdentifierSearchTree<T>() {
@Override
public List<T> searchNamespace(String namespace) {
return List.of();
}
@Override
public List<T> searchPath(String path) {
return List.of();
}
};
}
static <T> IdentifierSearchTree<T> create(List<T> elements, Function<T, Stream<Identifier>> idGetter) {
if (elements.isEmpty()) {
return empty();
} else {
final SuffixArray<T> namespaceTree = new SuffixArray<>();
final SuffixArray<T> pathTree = new SuffixArray<>();
for (T element : elements) {
idGetter.apply(element).forEach(elementId -> {
namespaceTree.add(element, elementId.getNamespace().toLowerCase(Locale.ROOT));
pathTree.add(element, elementId.getPath().toLowerCase(Locale.ROOT));
});
}
namespaceTree.generate();
pathTree.generate();
return new IdentifierSearchTree<T>() {
@Override
public List<T> searchNamespace(String namespace) {
return namespaceTree.search(namespace);
}
@Override
public List<T> searchPath(String path) {
return pathTree.search(path);
}
};
}
}
List<T> searchNamespace(String namespace);
List<T> searchPath(String path);
}引用的其他类
- Identifier
- 引用位置:
参数
- 引用位置: