IndexedAssetSource.java
net.minecraft.client.resources.IndexedAssetSource
信息
- 全限定名:net.minecraft.client.resources.IndexedAssetSource
- 类型:public class
- 包:net.minecraft.client.resources
- 源码路径:src/main/java/net/minecraft/client/resources/IndexedAssetSource.java
- 起始行号:L22
- 职责:
TODO
字段/常量
-
LOGGER- 类型:
Logger - 修饰符:
private static final - 源码定位:
L23 - 说明:
TODO
- 类型:
-
PATH_SPLITTER- 类型:
Splitter - 修饰符:
public static final - 源码定位:
L24 - 说明:
TODO
- 类型:
内部类/嵌套类型
- 无
构造器
- 无
方法
下面的方法块按源码顺序生成。
public static Path createIndexFs(Path assetsDirectory, String index) @ L26
- 方法名:createIndexFs
- 源码定位:L26
- 返回类型:Path
- 修饰符:public static
参数:
- assetsDirectory: Path
- index: String
说明:
TODO
代码
@OnlyIn(Dist.CLIENT)
public class IndexedAssetSource {
private static final Logger LOGGER = LogUtils.getLogger();
public static final Splitter PATH_SPLITTER = Splitter.on('/');
public static Path createIndexFs(Path assetsDirectory, String index) {
Path objectsDirectory = assetsDirectory.resolve("objects");
LinkFileSystem.Builder builder = LinkFileSystem.builder();
Path indexFile = assetsDirectory.resolve("indexes/" + index + ".json");
try (BufferedReader reader = Files.newBufferedReader(indexFile, StandardCharsets.UTF_8)) {
JsonObject root = GsonHelper.parse(reader);
JsonObject objects = GsonHelper.getAsJsonObject(root, "objects", null);
if (objects != null) {
for (Entry<String, JsonElement> entry : objects.entrySet()) {
JsonObject object = (JsonObject)entry.getValue();
String filename = entry.getKey();
List<String> path = PATH_SPLITTER.splitToList(filename);
String hash = GsonHelper.getAsString(object, "hash");
Path file = objectsDirectory.resolve(hash.substring(0, 2) + "/" + hash);
builder.put(path, file);
}
}
} catch (JsonParseException var17) {
LOGGER.error("Unable to parse resource index file: {}", indexFile);
} catch (IOException var18) {
LOGGER.error("Can't open the resource index file: {}", indexFile);
}
return builder.build("index-" + index).getPath("/");
}
}引用的其他类
-
- 引用位置:
方法调用 - 关联成员:
LinkFileSystem.builder()
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
GsonHelper.getAsJsonObject(), GsonHelper.getAsString(), GsonHelper.parse()
- 引用位置: