DefaultedMappedRegistry.java
net.minecraft.core.DefaultedMappedRegistry
信息
- 全限定名:net.minecraft.core.DefaultedMappedRegistry
- 类型:public class
- 包:net.minecraft.core
- 源码路径:src/main/java/net/minecraft/core/DefaultedMappedRegistry.java
- 起始行号:L10
- 继承:MappedRegistry
- 实现:DefaultedRegistry
- 职责:
TODO
字段/常量
-
defaultKey- 类型:
Identifier - 修饰符:
private final - 源码定位:
L11 - 说明:
TODO
- 类型:
-
defaultValue- 类型:
Holder.Reference<T> - 修饰符:
private - 源码定位:
L12 - 说明:
TODO
- 类型:
内部类/嵌套类型
- 无
构造器
public DefaultedMappedRegistry(String defaultKey, ResourceKey<?extends Registry<T>> key, Lifecycle lifecycle, boolean intrusiveHolders) @ L14
- 构造器名:DefaultedMappedRegistry
- 源码定位:L14
- 修饰符:public
参数:
- defaultKey: String
- key: ResourceKey<?extends Registry
> - lifecycle: Lifecycle
- intrusiveHolders: boolean
说明:
TODO
方法
下面的方法块按源码顺序生成。
public Holder.Reference<T> register(ResourceKey<T> key, T value, RegistrationInfo registrationInfo) @ L19
- 方法名:register
- 源码定位:L19
- 返回类型:Holder.Reference
- 修饰符:public
参数:
- key: ResourceKey
- value: T
- registrationInfo: RegistrationInfo
说明:
TODO
public int getId(T thing) @ L29
- 方法名:getId
- 源码定位:L29
- 返回类型:int
- 修饰符:public
参数:
- thing: T
说明:
TODO
public Identifier getKey(T thing) @ L35
- 方法名:getKey
- 源码定位:L35
- 返回类型:Identifier
- 修饰符:public
参数:
- thing: T
说明:
TODO
public T getValue(Identifier key) @ L41
- 方法名:getValue
- 源码定位:L41
- 返回类型:T
- 修饰符:public
参数:
- key: Identifier
说明:
TODO
public Optional<T> getOptional(Identifier key) @ L47
- 方法名:getOptional
- 源码定位:L47
- 返回类型:Optional
- 修饰符:public
参数:
- key: Identifier
说明:
TODO
public Optional<Holder.Reference<T>> getAny() @ L52
- 方法名:getAny
- 源码定位:L52
- 返回类型:Optional<Holder.Reference
> - 修饰符:public
参数:
- 无
说明:
TODO
public T byId(int id) @ L57
- 方法名:byId
- 源码定位:L57
- 返回类型:T
- 修饰符:public
参数:
- id: int
说明:
TODO
public Optional<Holder.Reference<T>> getRandom(RandomSource random) @ L63
- 方法名:getRandom
- 源码定位:L63
- 返回类型:Optional<Holder.Reference
> - 修饰符:public
参数:
- random: RandomSource
说明:
TODO
public Identifier getDefaultKey() @ L68
- 方法名:getDefaultKey
- 源码定位:L68
- 返回类型:Identifier
- 修饰符:public
参数:
- 无
说明:
TODO
代码
public class DefaultedMappedRegistry<T> extends MappedRegistry<T> implements DefaultedRegistry<T> {
private final Identifier defaultKey;
private Holder.Reference<T> defaultValue;
public DefaultedMappedRegistry(String defaultKey, ResourceKey<? extends Registry<T>> key, Lifecycle lifecycle, boolean intrusiveHolders) {
super(key, lifecycle, intrusiveHolders);
this.defaultKey = Identifier.parse(defaultKey);
}
@Override
public Holder.Reference<T> register(ResourceKey<T> key, T value, RegistrationInfo registrationInfo) {
Holder.Reference<T> result = super.register(key, value, registrationInfo);
if (this.defaultKey.equals(key.identifier())) {
this.defaultValue = result;
}
return result;
}
@Override
public int getId(@Nullable T thing) {
int id = super.getId(thing);
return id == -1 ? super.getId(this.defaultValue.value()) : id;
}
@Override
public Identifier getKey(T thing) {
Identifier k = super.getKey(thing);
return k == null ? this.defaultKey : k;
}
@Override
public T getValue(@Nullable Identifier key) {
T t = super.getValue(key);
return t == null ? this.defaultValue.value() : t;
}
@Override
public Optional<T> getOptional(@Nullable Identifier key) {
return Optional.ofNullable(super.getValue(key));
}
@Override
public Optional<Holder.Reference<T>> getAny() {
return Optional.ofNullable(this.defaultValue);
}
@Override
public T byId(int id) {
T t = super.byId(id);
return t == null ? this.defaultValue.value() : t;
}
@Override
public Optional<Holder.Reference<T>> getRandom(RandomSource random) {
return super.getRandom(random).or(() -> Optional.of(this.defaultValue));
}
@Override
public Identifier getDefaultKey() {
return this.defaultKey;
}
}引用的其他类
-
- 引用位置:
实现
- 引用位置:
-
- 引用位置:
字段/返回值
- 引用位置:
-
- 引用位置:
继承
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
参数/字段/方法调用/返回值 - 关联成员:
Identifier.parse()
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
参数
- 引用位置: