RegistryComponentsReport.java
net.minecraft.data.info.RegistryComponentsReport
信息
- 全限定名:net.minecraft.data.info.RegistryComponentsReport
- 类型:public class
- 包:net.minecraft.data.info
- 源码路径:src/main/java/net/minecraft/data/info/RegistryComponentsReport.java
- 起始行号:L19
- 实现:DataProvider
- 职责:
TODO
字段/常量
-
output- 类型:
PackOutput - 修饰符:
private final - 源码定位:
L20 - 说明:
TODO
- 类型:
-
registries- 类型:
CompletableFuture<HolderLookup.Provider> - 修饰符:
private final - 源码定位:
L21 - 说明:
TODO
- 类型:
内部类/嵌套类型
- 无
构造器
public RegistryComponentsReport(PackOutput output, CompletableFuture<HolderLookup.Provider> registries) @ L23
- 构造器名:RegistryComponentsReport
- 源码定位:L23
- 修饰符:public
参数:
- output: PackOutput
- registries: CompletableFuture<HolderLookup.Provider>
说明:
TODO
方法
下面的方法块按源码顺序生成。
public CompletableFuture<?> run(CachedOutput cache) @ L28
- 方法名:run
- 源码定位:L28
- 返回类型:CompletableFuture<?>
- 修饰符:public
参数:
- cache: CachedOutput
说明:
TODO
public final String getName() @ L66
- 方法名:getName
- 源码定位:L66
- 返回类型:String
- 修饰符:public final
参数:
- 无
说明:
TODO
代码
public class RegistryComponentsReport implements DataProvider {
private final PackOutput output;
private final CompletableFuture<HolderLookup.Provider> registries;
public RegistryComponentsReport(PackOutput output, CompletableFuture<HolderLookup.Provider> registries) {
this.output = output;
this.registries = registries;
}
@Override
public CompletableFuture<?> run(CachedOutput cache) {
return this.registries
.thenCompose(
registries -> {
RegistryOps<JsonElement> registryOps = registries.createSerializationContext(JsonOps.INSTANCE);
List<CompletableFuture<?>> writes = new ArrayList<>();
BuiltInRegistries.DATA_COMPONENT_INITIALIZERS
.build(registries)
.forEach(
pendingComponents -> {
PackOutput.PathProvider registryPathProvider = this.output.createRegistryComponentPathProvider(pendingComponents.key());
pendingComponents.forEach(
(element, components) -> {
if (!components.isEmpty()) {
Identifier elementId = element.key().identifier();
Path elementPath = registryPathProvider.json(elementId);
DataComponentPatch patch = DataComponentPatch.builder().set(components).build();
JsonObject root = new JsonObject();
root.add(
"components",
DataComponentPatch.CODEC
.encodeStart(registryOps, patch)
.getOrThrow(
err -> new IllegalStateException("Failed to encode components for item " + elementId + ": " + err)
)
);
writes.add(DataProvider.saveStable(cache, root, elementPath));
}
}
);
}
);
return CompletableFuture.allOf(writes.toArray(CompletableFuture[]::new));
}
);
}
@Override
public final String getName() {
return "Default Components";
}
}引用的其他类
-
- 引用位置:
参数/字段
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
DataComponentPatch.builder()
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
实现/方法调用 - 关联成员:
DataProvider.saveStable()
- 引用位置:
-
- 引用位置:
参数/字段
- 引用位置: