RegistryDumpReport.java
net.minecraft.data.info.RegistryDumpReport
信息
- 全限定名:net.minecraft.data.info.RegistryDumpReport
- 类型:public class
- 包:net.minecraft.data.info
- 源码路径:src/main/java/net/minecraft/data/info/RegistryDumpReport.java
- 起始行号:L15
- 实现:DataProvider
- 职责:
TODO
字段/常量
output- 类型:
PackOutput - 修饰符:
private final - 源码定位:
L16 - 说明:
TODO
- 类型:
内部类/嵌套类型
- 无
构造器
public RegistryDumpReport(PackOutput output) @ L18
- 构造器名:RegistryDumpReport
- 源码定位:L18
- 修饰符:public
参数:
- output: PackOutput
说明:
TODO
方法
下面的方法块按源码顺序生成。
public CompletableFuture<?> run(CachedOutput cache) @ L22
- 方法名:run
- 源码定位:L22
- 返回类型:CompletableFuture<?>
- 修饰符:public
参数:
- cache: CachedOutput
说明:
TODO
private static <T> JsonElement dumpRegistry(Registry<T> registry) @ L30
- 方法名:dumpRegistry
- 源码定位:L30
- 返回类型:
JsonElement - 修饰符:private static
参数:
- registry: Registry
说明:
TODO
public final String getName() @ L51
- 方法名:getName
- 源码定位:L51
- 返回类型:String
- 修饰符:public final
参数:
- 无
说明:
TODO
代码
public class RegistryDumpReport implements DataProvider {
private final PackOutput output;
public RegistryDumpReport(PackOutput output) {
this.output = output;
}
@Override
public CompletableFuture<?> run(CachedOutput cache) {
JsonObject root = new JsonObject();
BuiltInRegistries.REGISTRY.listElements().forEach(e -> root.add(e.key().identifier().toString(), dumpRegistry((Registry<?>)e.value())));
Path path = this.output.getOutputFolder(PackOutput.Target.REPORTS).resolve("registries.json");
return DataProvider.saveStable(cache, root, path);
}
private static <T> JsonElement dumpRegistry(Registry<T> registry) {
JsonObject result = new JsonObject();
if (registry instanceof DefaultedRegistry) {
Identifier defaultKey = ((DefaultedRegistry)registry).getDefaultKey();
result.addProperty("default", defaultKey.toString());
}
int registryId = ((Registry<Registry<T>>)BuiltInRegistries.REGISTRY).getId(registry);
result.addProperty("protocol_id", registryId);
JsonObject entries = new JsonObject();
registry.listElements().forEach(holder -> {
T value = holder.value();
int protocolId = registry.getId(value);
JsonObject entry = new JsonObject();
entry.addProperty("protocol_id", protocolId);
entries.add(holder.key().identifier().toString(), entry);
});
result.add("entries", entries);
return result;
}
@Override
public final String getName() {
return "Registry Dump";
}
}引用的其他类
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
实现/方法调用 - 关联成员:
DataProvider.saveStable()
- 引用位置:
-
- 引用位置:
参数/字段
- 引用位置: