ClientPackSource.java
net.minecraft.client.resources.ClientPackSource
信息
- 全限定名:net.minecraft.client.resources.ClientPackSource
- 类型:public class
- 包:net.minecraft.client.resources
- 源码路径:src/main/java/net/minecraft/client/resources/ClientPackSource.java
- 起始行号:L31
- 继承:BuiltInPackSource
- 职责:
TODO
字段/常量
-
VERSION_METADATA_SECTION- 类型:
PackMetadataSection - 修饰符:
private static final - 源码定位:
L32 - 说明:
TODO
- 类型:
-
BUILT_IN_METADATA- 类型:
ResourceMetadata - 修饰符:
private static final - 源码定位:
L35 - 说明:
TODO
- 类型:
-
HIGH_CONTRAST_PACK- 类型:
String - 修饰符:
public static final - 源码定位:
L36 - 说明:
TODO
- 类型:
-
SPECIAL_PACK_NAMES- 类型:
Map<String,Component> - 修饰符:
private static final - 源码定位:
L37 - 说明:
TODO
- 类型:
-
VANILLA_PACK_INFO- 类型:
PackLocationInfo - 修饰符:
private static final - 源码定位:
L43 - 说明:
TODO
- 类型:
-
VANILLA_SELECTION_CONFIG- 类型:
PackSelectionConfig - 修饰符:
private static final - 源码定位:
L46 - 说明:
TODO
- 类型:
-
BUILT_IN_SELECTION_CONFIG- 类型:
PackSelectionConfig - 修饰符:
private static final - 源码定位:
L47 - 说明:
TODO
- 类型:
-
PACKS_DIR- 类型:
Identifier - 修饰符:
private static final - 源码定位:
L48 - 说明:
TODO
- 类型:
-
externalAssetDir- 类型:
Path - 修饰符:
private final - 源码定位:
L49 - 说明:
TODO
- 类型:
内部类/嵌套类型
- 无
构造器
public ClientPackSource(Path externalAssetSource, DirectoryValidator validator) @ L51
- 构造器名:ClientPackSource
- 源码定位:L51
- 修饰符:public
参数:
- externalAssetSource: Path
- validator: DirectoryValidator
说明:
TODO
方法
下面的方法块按源码顺序生成。
private static PackLocationInfo createBuiltInPackLocation(String id, Component title) @ L56
- 方法名:createBuiltInPackLocation
- 源码定位:L56
- 返回类型:PackLocationInfo
- 修饰符:private static
参数:
- id: String
- title: Component
说明:
TODO
private Path findExplodedAssetPacks(Path externalAssetSource) @ L60
- 方法名:findExplodedAssetPacks
- 源码定位:L60
- 返回类型:Path
- 修饰符:private
参数:
- externalAssetSource: Path
说明:
TODO
private static VanillaPackResources createVanillaPackSource(Path externalAssetRoot) @ L71
- 方法名:createVanillaPackSource
- 源码定位:L71
- 返回类型:VanillaPackResources
- 修饰符:private static
参数:
- externalAssetRoot: Path
说明:
TODO
protected Component getPackTitle(String id) @ L81
- 方法名:getPackTitle
- 源码定位:L81
- 返回类型:Component
- 修饰符:protected
参数:
- id: String
说明:
TODO
protected Pack createVanillaPack(PackResources resources) @ L87
- 方法名:createVanillaPack
- 源码定位:L87
- 返回类型:Pack
- 修饰符:protected
参数:
- resources: PackResources
说明:
TODO
protected Pack createBuiltinPack(String id, Pack.ResourcesSupplier resources, Component name) @ L92
- 方法名:createBuiltinPack
- 源码定位:L92
- 返回类型:Pack
- 修饰符:protected
参数:
- id: String
- resources: Pack.ResourcesSupplier
- name: Component
说明:
TODO
protected void populatePackList(BiConsumer<String,Function<String,Pack>> discoveredPacks) @ L97
- 方法名:populatePackList
- 源码定位:L97
- 返回类型:void
- 修饰符:protected
参数:
- discoveredPacks: BiConsumer<String,Function<String,Pack>>
说明:
TODO
代码
@OnlyIn(Dist.CLIENT)
public class ClientPackSource extends BuiltInPackSource {
private static final PackMetadataSection VERSION_METADATA_SECTION = new PackMetadataSection(
Component.translatable("resourcePack.vanilla.description"), SharedConstants.getCurrentVersion().packVersion(PackType.CLIENT_RESOURCES).minorRange()
);
private static final ResourceMetadata BUILT_IN_METADATA = ResourceMetadata.of(PackMetadataSection.CLIENT_TYPE, VERSION_METADATA_SECTION);
public static final String HIGH_CONTRAST_PACK = "high_contrast";
private static final Map<String, Component> SPECIAL_PACK_NAMES = Map.of(
"programmer_art",
Component.translatable("resourcePack.programmer_art.name"),
"high_contrast",
Component.translatable("resourcePack.high_contrast.name")
);
private static final PackLocationInfo VANILLA_PACK_INFO = new PackLocationInfo(
"vanilla", Component.translatable("resourcePack.vanilla.name"), PackSource.BUILT_IN, Optional.of(CORE_PACK_INFO)
);
private static final PackSelectionConfig VANILLA_SELECTION_CONFIG = new PackSelectionConfig(true, Pack.Position.BOTTOM, false);
private static final PackSelectionConfig BUILT_IN_SELECTION_CONFIG = new PackSelectionConfig(false, Pack.Position.TOP, false);
private static final Identifier PACKS_DIR = Identifier.withDefaultNamespace("resourcepacks");
private final @Nullable Path externalAssetDir;
public ClientPackSource(Path externalAssetSource, DirectoryValidator validator) {
super(PackType.CLIENT_RESOURCES, createVanillaPackSource(externalAssetSource), PACKS_DIR, validator);
this.externalAssetDir = this.findExplodedAssetPacks(externalAssetSource);
}
private static PackLocationInfo createBuiltInPackLocation(String id, Component title) {
return new PackLocationInfo(id, title, PackSource.BUILT_IN, Optional.of(KnownPack.vanilla(id)));
}
private @Nullable Path findExplodedAssetPacks(Path externalAssetSource) {
if (SharedConstants.IS_RUNNING_IN_IDE && externalAssetSource.getFileSystem() == FileSystems.getDefault()) {
Path devAssetDir = externalAssetSource.getParent().resolve("resourcepacks");
if (Files.isDirectory(devAssetDir)) {
return devAssetDir;
}
}
return null;
}
private static VanillaPackResources createVanillaPackSource(Path externalAssetRoot) {
return new VanillaPackResourcesBuilder()
.setMetadata(BUILT_IN_METADATA)
.exposeNamespace("minecraft", "realms")
.applyDevelopmentConfig()
.pushJarResources()
.pushAssetPath(PackType.CLIENT_RESOURCES, externalAssetRoot)
.build(VANILLA_PACK_INFO);
}
@Override
protected Component getPackTitle(String id) {
Component title = SPECIAL_PACK_NAMES.get(id);
return (Component)(title != null ? title : Component.literal(id));
}
@Override
protected @Nullable Pack createVanillaPack(PackResources resources) {
return Pack.readMetaAndCreate(VANILLA_PACK_INFO, fixedResources(resources), PackType.CLIENT_RESOURCES, VANILLA_SELECTION_CONFIG);
}
@Override
protected @Nullable Pack createBuiltinPack(String id, Pack.ResourcesSupplier resources, Component name) {
return Pack.readMetaAndCreate(createBuiltInPackLocation(id, name), resources, PackType.CLIENT_RESOURCES, BUILT_IN_SELECTION_CONFIG);
}
@Override
protected void populatePackList(BiConsumer<String, Function<String, Pack>> discoveredPacks) {
super.populatePackList(discoveredPacks);
if (this.externalAssetDir != null) {
this.discoverPacksInPath(this.externalAssetDir, discoveredPacks);
}
}
}引用的其他类
-
- 引用位置:
方法调用 - 关联成员:
SharedConstants.getCurrentVersion()
- 引用位置:
-
- 引用位置:
参数/字段/方法调用/返回值 - 关联成员:
Component.literal(), Component.translatable()
- 引用位置:
-
- 引用位置:
字段/方法调用 - 关联成员:
Identifier.withDefaultNamespace()
- 引用位置:
-
- 引用位置:
字段/构造调用/返回值 - 关联成员:
PackLocationInfo()
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
字段/构造调用 - 关联成员:
PackSelectionConfig()
- 引用位置:
-
- 引用位置:
返回值
- 引用位置:
-
- 引用位置:
构造调用 - 关联成员:
VanillaPackResourcesBuilder()
- 引用位置:
-
- 引用位置:
字段/构造调用 - 关联成员:
PackMetadataSection()
- 引用位置:
-
- 引用位置:
继承
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
KnownPack.vanilla()
- 引用位置:
-
- 引用位置:
参数/方法调用/返回值 - 关联成员:
Pack.readMetaAndCreate()
- 引用位置:
-
- 引用位置:
字段/方法调用 - 关联成员:
ResourceMetadata.of()
- 引用位置:
-
- 引用位置:
参数
- 引用位置: