NetworkRegistryLoadTask.java
net.minecraft.resources.NetworkRegistryLoadTask
信息
- 全限定名:net.minecraft.resources.NetworkRegistryLoadTask
- 类型:public class
- 包:net.minecraft.resources
- 源码路径:src/main/java/net/minecraft/resources/NetworkRegistryLoadTask.java
- 起始行号:L23
- 继承:RegistryLoadTask
- 职责:
TODO
字段/常量
-
NETWORK_REGISTRATION_INFO- 类型:
RegistrationInfo - 修饰符:
private static final - 源码定位:
L24 - 说明:
TODO
- 类型:
-
entries- 类型:
Map<ResourceKey<?extends Registry<?>>,RegistryDataLoader.NetworkedRegistryData> - 修饰符:
private final - 源码定位:
L25 - 说明:
TODO
- 类型:
-
knownDataSource- 类型:
ResourceProvider - 修饰符:
private final - 源码定位:
L26 - 说明:
TODO
- 类型:
内部类/嵌套类型
- 无
构造器
public NetworkRegistryLoadTask(RegistryDataLoader.RegistryData<T> data, Lifecycle lifecycle, Map<ResourceKey<?>,Exception> loadingErrors, Map<ResourceKey<?extends Registry<?>>,RegistryDataLoader.NetworkedRegistryData> entries, ResourceProvider knownDataSource) @ L28
- 构造器名:NetworkRegistryLoadTask
- 源码定位:L28
- 修饰符:public
参数:
- data: RegistryDataLoader.RegistryData
- lifecycle: Lifecycle
- loadingErrors: Map<ResourceKey<?>,Exception>
- entries: Map<ResourceKey>,RegistryDataLoader.NetworkedRegistryData>
- knownDataSource: ResourceProvider
说明:
TODO
方法
下面的方法块按源码顺序生成。
public CompletableFuture<?> load(RegistryOps.RegistryInfoLookup context, Executor executor) @ L40
- 方法名:load
- 源码定位:L40
- 返回类型:CompletableFuture<?>
- 修饰符:public
参数:
- context: RegistryOps.RegistryInfoLookup
- executor: Executor
说明:
TODO
代码
public class NetworkRegistryLoadTask<T> extends RegistryLoadTask<T> {
private static final RegistrationInfo NETWORK_REGISTRATION_INFO = new RegistrationInfo(Optional.empty(), Lifecycle.experimental());
private final Map<ResourceKey<? extends Registry<?>>, RegistryDataLoader.NetworkedRegistryData> entries;
private final ResourceProvider knownDataSource;
public NetworkRegistryLoadTask(
RegistryDataLoader.RegistryData<T> data,
Lifecycle lifecycle,
Map<ResourceKey<?>, Exception> loadingErrors,
Map<ResourceKey<? extends Registry<?>>, RegistryDataLoader.NetworkedRegistryData> entries,
ResourceProvider knownDataSource
) {
super(data, lifecycle, loadingErrors);
this.entries = entries;
this.knownDataSource = knownDataSource;
}
@Override
public CompletableFuture<?> load(RegistryOps.RegistryInfoLookup context, Executor executor) {
RegistryDataLoader.NetworkedRegistryData registryEntries = this.entries.get(this.registryKey());
if (registryEntries == null) {
return CompletableFuture.completedFuture(null);
} else {
RegistryOps<Tag> nbtOps = RegistryOps.create(NbtOps.INSTANCE, context);
RegistryOps<JsonElement> jsonOps = RegistryOps.create(JsonOps.INSTANCE, context);
FileToIdConverter knownDataPathConverter = FileToIdConverter.registry(this.registryKey());
List<CompletableFuture<RegistryLoadTask.PendingRegistration<T>>> elements = new ArrayList<>(registryEntries.elements().size());
for (RegistrySynchronization.PackedRegistryEntry entry : registryEntries.elements()) {
ResourceKey<T> elementKey = ResourceKey.create(this.registryKey(), entry.id());
Optional<Tag> networkContents = entry.data();
if (networkContents.isPresent()) {
elements.add(
CompletableFuture.supplyAsync(
() -> new RegistryLoadTask.PendingRegistration<>(
elementKey,
RegistryLoadTask.PendingRegistration.loadFromNetwork(this.data.elementCodec(), nbtOps, elementKey, networkContents.get()),
NETWORK_REGISTRATION_INFO
),
executor
)
);
} else {
elements.add(
CompletableFuture.supplyAsync(
() -> new RegistryLoadTask.PendingRegistration<>(
elementKey,
RegistryLoadTask.PendingRegistration.findAndLoadFromResource(
this.data.elementCodec(), jsonOps, elementKey, knownDataPathConverter, this.knownDataSource
),
NETWORK_REGISTRATION_INFO
),
executor
)
);
}
}
return Util.sequence(elements).thenAcceptAsync(pendingRegistrations -> {
this.registerElements(pendingRegistrations.stream());
Map<TagKey<T>, List<Holder<T>>> pendingTags = TagLoader.loadTagsFromNetwork(registryEntries.tags(), this.readOnlyRegistry());
this.registerTags(pendingTags);
}, executor);
}
}
}引用的其他类
-
- 引用位置:
字段/构造调用 - 关联成员:
RegistrationInfo()
- 引用位置:
-
- 引用位置:
参数/字段
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
FileToIdConverter.registry()
- 引用位置:
-
- 引用位置:
参数/字段
- 引用位置:
-
- 引用位置:
方法调用/继承 - 关联成员:
RegistryLoadTask.PendingRegistration.findAndLoadFromResource(), RegistryLoadTask.PendingRegistration.loadFromNetwork()
- 引用位置:
-
- 引用位置:
参数/方法调用 - 关联成员:
RegistryOps.create()
- 引用位置:
-
- 引用位置:
参数/字段/方法调用 - 关联成员:
ResourceKey.create()
- 引用位置:
-
- 引用位置:
参数/字段
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
TagLoader.loadTagsFromNetwork()
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
Util.sequence()
- 引用位置: