IdSearchTree.java
net.minecraft.client.searchtree.IdSearchTree
信息
- 全限定名:net.minecraft.client.searchtree.IdSearchTree
- 类型:public class
- 包:net.minecraft.client.searchtree
- 源码路径:src/main/java/net/minecraft/client/searchtree/IdSearchTree.java
- 起始行号:L15
- 实现:SearchTree
- 职责:
TODO
字段/常量
-
additionOrder- 类型:
Comparator<T> - 修饰符:
protected final - 源码定位:
L16 - 说明:
TODO
- 类型:
-
identifierSearchTree- 类型:
IdentifierSearchTree<T> - 修饰符:
protected final - 源码定位:
L17 - 说明:
TODO
- 类型:
内部类/嵌套类型
- 无
构造器
public IdSearchTree(Function<T,Stream<Identifier>> idGetter, List<T> contents) @ L19
- 构造器名:IdSearchTree
- 源码定位:L19
- 修饰符:public
参数:
- idGetter: Function<T,Stream
> - contents: List
说明:
TODO
方法
下面的方法块按源码顺序生成。
public List<T> search(String text) @ L25
- 方法名:search
- 源码定位:L25
- 返回类型:List
- 修饰符:public
参数:
- text: String
说明:
TODO
protected List<T> searchPlainText(String text) @ L31
- 方法名:searchPlainText
- 源码定位:L31
- 返回类型:List
- 修饰符:protected
参数:
- text: String
说明:
TODO
protected List<T> searchIdentifier(String namespace, String path) @ L35
- 方法名:searchIdentifier
- 源码定位:L35
- 返回类型:List
- 修饰符:protected
参数:
- namespace: String
- path: String
说明:
TODO
代码
@OnlyIn(Dist.CLIENT)
public class IdSearchTree<T> implements SearchTree<T> {
protected final Comparator<T> additionOrder;
protected final IdentifierSearchTree<T> identifierSearchTree;
public IdSearchTree(Function<T, Stream<Identifier>> idGetter, List<T> contents) {
ToIntFunction<T> indexLookup = Util.createIndexLookup(contents);
this.additionOrder = Comparator.comparingInt(indexLookup);
this.identifierSearchTree = IdentifierSearchTree.create(contents, idGetter);
}
@Override
public List<T> search(String text) {
int colon = text.indexOf(58);
return colon == -1 ? this.searchPlainText(text) : this.searchIdentifier(text.substring(0, colon).trim(), text.substring(colon + 1).trim());
}
protected List<T> searchPlainText(String text) {
return this.identifierSearchTree.searchPath(text);
}
protected List<T> searchIdentifier(String namespace, String path) {
List<T> namespaces = this.identifierSearchTree.searchNamespace(namespace);
List<T> paths = this.identifierSearchTree.searchPath(path);
return ImmutableList.copyOf(new IntersectionIterator<>(namespaces.iterator(), paths.iterator(), this.additionOrder));
}
}引用的其他类
-
- 引用位置:
字段/方法调用 - 关联成员:
IdentifierSearchTree.create()
- 引用位置:
-
- 引用位置:
实现
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
Util.createIndexLookup()
- 引用位置: