ResourceKey.java
net.minecraft.resources.ResourceKey
信息
- 全限定名:net.minecraft.resources.ResourceKey
- 类型:public class
- 包:net.minecraft.resources
- 源码路径:src/main/java/net/minecraft/resources/ResourceKey.java
- 起始行号:L12
- 职责:
TODO
字段/常量
-
VALUES- 类型:
ConcurrentMap<ResourceKey.InternKey,ResourceKey<?>> - 修饰符:
private static final - 源码定位:
L13 - 说明:
TODO
- 类型:
-
registryName- 类型:
Identifier - 修饰符:
private final - 源码定位:
L14 - 说明:
TODO
- 类型:
-
identifier- 类型:
Identifier - 修饰符:
private final - 源码定位:
L15 - 说明:
TODO
- 类型:
内部类/嵌套类型
net.minecraft.resources.ResourceKey.InternKey- 类型:
record - 修饰符:
private - 源码定位:
L67 - 说明:
TODO
- 类型:
构造器
private ResourceKey(Identifier registryName, Identifier identifier) @ L37
- 构造器名:ResourceKey
- 源码定位:L37
- 修饰符:private
参数:
- registryName: Identifier
- identifier: Identifier
说明:
TODO
方法
下面的方法块按源码顺序生成。
public static <T> Codec<ResourceKey<T>> codec(ResourceKey<?extends Registry<T>> registryName) @ L17
- 方法名:codec
- 源码定位:L17
- 返回类型:
Codec<ResourceKey > - 修饰符:public static
参数:
- registryName: ResourceKey<?extends Registry
>
说明:
TODO
public static <T> StreamCodec<ByteBuf,ResourceKey<T>> streamCodec(ResourceKey<?extends Registry<T>> registryName) @ L21
- 方法名:streamCodec
- 源码定位:L21
- 返回类型:
StreamCodec<ByteBuf,ResourceKey > - 修饰符:public static
参数:
- registryName: ResourceKey<?extends Registry
>
说明:
TODO
public static <T> ResourceKey<T> create(ResourceKey<?extends Registry<T>> registryName, Identifier location) @ L25
- 方法名:create
- 源码定位:L25
- 返回类型:
ResourceKey - 修饰符:public static
参数:
- registryName: ResourceKey<?extends Registry
> - location: Identifier
说明:
TODO
public static <T> ResourceKey<Registry<T>> createRegistryKey(Identifier identifier) @ L29
- 方法名:createRegistryKey
- 源码定位:L29
- 返回类型:
ResourceKey<Registry > - 修饰符:public static
参数:
- identifier: Identifier
说明:
TODO
private static <T> ResourceKey<T> create(Identifier registryName, Identifier identifier) @ L33
- 方法名:create
- 源码定位:L33
- 返回类型:
ResourceKey - 修饰符:private static
参数:
- registryName: Identifier
- identifier: Identifier
说明:
TODO
public String toString() @ L42
- 方法名:toString
- 源码定位:L42
- 返回类型:String
- 修饰符:public
参数:
- 无
说明:
TODO
public boolean isFor(ResourceKey<?extends Registry<?>> registry) @ L47
- 方法名:isFor
- 源码定位:L47
- 返回类型:boolean
- 修饰符:public
参数:
- registry: ResourceKey>
说明:
TODO
public <E> Optional<ResourceKey<E>> cast(ResourceKey<?extends Registry<E>> registry) @ L51
- 方法名:cast
- 源码定位:L51
- 返回类型:
Optional<ResourceKey > - 修饰符:public
参数:
- registry: ResourceKey<?extends Registry
>
说明:
TODO
public Identifier identifier() @ L55
- 方法名:identifier
- 源码定位:L55
- 返回类型:Identifier
- 修饰符:public
参数:
- 无
说明:
TODO
public Identifier registry() @ L59
- 方法名:registry
- 源码定位:L59
- 返回类型:Identifier
- 修饰符:public
参数:
- 无
说明:
TODO
public ResourceKey<Registry<T>> registryKey() @ L63
- 方法名:registryKey
- 源码定位:L63
- 返回类型:ResourceKey<Registry
> - 修饰符:public
参数:
- 无
说明:
TODO
代码
public class ResourceKey<T> {
private static final ConcurrentMap<ResourceKey.InternKey, ResourceKey<?>> VALUES = new MapMaker().weakValues().makeMap();
private final Identifier registryName;
private final Identifier identifier;
public static <T> Codec<ResourceKey<T>> codec(ResourceKey<? extends Registry<T>> registryName) {
return Identifier.CODEC.xmap(name -> create(registryName, name), ResourceKey::identifier);
}
public static <T> StreamCodec<ByteBuf, ResourceKey<T>> streamCodec(ResourceKey<? extends Registry<T>> registryName) {
return Identifier.STREAM_CODEC.map(name -> create(registryName, name), ResourceKey::identifier);
}
public static <T> ResourceKey<T> create(ResourceKey<? extends Registry<T>> registryName, Identifier location) {
return create(registryName.identifier, location);
}
public static <T> ResourceKey<Registry<T>> createRegistryKey(Identifier identifier) {
return create(Registries.ROOT_REGISTRY_NAME, identifier);
}
private static <T> ResourceKey<T> create(Identifier registryName, Identifier identifier) {
return (ResourceKey<T>)VALUES.computeIfAbsent(new ResourceKey.InternKey(registryName, identifier), k -> new ResourceKey(k.registry, k.identifier));
}
private ResourceKey(Identifier registryName, Identifier identifier) {
this.registryName = registryName;
this.identifier = identifier;
}
@Override
public String toString() {
return "ResourceKey[" + this.registryName + " / " + this.identifier + "]";
}
public boolean isFor(ResourceKey<? extends Registry<?>> registry) {
return this.registryName.equals(registry.identifier());
}
public <E> Optional<ResourceKey<E>> cast(ResourceKey<? extends Registry<E>> registry) {
return this.isFor(registry) ? Optional.of((ResourceKey<E>)this) : Optional.empty();
}
public Identifier identifier() {
return this.identifier;
}
public Identifier registry() {
return this.registryName;
}
public ResourceKey<Registry<T>> registryKey() {
return createRegistryKey(this.registryName);
}
private record InternKey(Identifier registry, Identifier identifier) {
}
}引用的其他类
-
- 引用位置:
参数/返回值
- 引用位置:
-
- 引用位置:
返回值
- 引用位置:
-
- 引用位置:
参数/字段/返回值
- 引用位置: