AtlasProvider.java
net.minecraft.client.data.AtlasProvider
信息
- 全限定名:net.minecraft.client.data.AtlasProvider
- 类型:public class
- 包:net.minecraft.client.data
- 源码路径:src/main/java/net/minecraft/client/data/AtlasProvider.java
- 起始行号:L36
- 实现:DataProvider
- 职责:
TODO
字段/常量
-
TRIM_PALETTE_KEY- 类型:
Identifier - 修饰符:
private static final - 源码定位:
L37 - 说明:
TODO
- 类型:
-
TRIM_PALETTE_VALUES- 类型:
Map<String,Identifier> - 修饰符:
private static final - 源码定位:
L38 - 说明:
TODO
- 类型:
-
VANILLA_PATTERNS- 类型:
List<ResourceKey<TrimPattern>> - 修饰符:
private static final - 源码定位:
L40 - 说明:
TODO
- 类型:
-
HUMANOID_LAYERS- 类型:
List<EquipmentClientInfo.LayerType> - 修饰符:
private static final - 源码定位:
L60 - 说明:
TODO
- 类型:
-
pathProvider- 类型:
PackOutput.PathProvider - 修饰符:
private final - 源码定位:
L63 - 说明:
TODO
- 类型:
内部类/嵌套类型
- 无
构造器
public AtlasProvider(PackOutput output) @ L65
- 构造器名:AtlasProvider
- 源码定位:L65
- 修饰符:public
参数:
- output: PackOutput
说明:
TODO
方法
下面的方法块按源码顺序生成。
private static List<Identifier> patternTextures() @ L69
- 方法名:patternTextures
- 源码定位:L69
- 返回类型:List
- 修饰符:private static
参数:
- 无
说明:
TODO
private static SpriteSource forMaterial(SpriteId sprite) @ L83
- 方法名:forMaterial
- 源码定位:L83
- 返回类型:SpriteSource
- 修饰符:private static
参数:
- sprite: SpriteId
说明:
TODO
private static SpriteSource forMapper(SpriteMapper mapper) @ L87
- 方法名:forMapper
- 源码定位:L87
- 返回类型:SpriteSource
- 修饰符:private static
参数:
- mapper: SpriteMapper
说明:
TODO
private static List<SpriteSource> simpleMapper(SpriteMapper mapper) @ L91
- 方法名:simpleMapper
- 源码定位:L91
- 返回类型:List
- 修饰符:private static
参数:
- mapper: SpriteMapper
说明:
TODO
private static List<SpriteSource> noPrefixMapper(String directory) @ L95
- 方法名:noPrefixMapper
- 源码定位:L95
- 返回类型:List
- 修饰符:private static
参数:
- directory: String
说明:
TODO
private static Stream<MaterialAssetGroup.AssetInfo> extractAllMaterialAssets() @ L99
- 方法名:extractAllMaterialAssets
- 源码定位:L99
- 返回类型:Stream<MaterialAssetGroup.AssetInfo>
- 修饰符:private static
参数:
- 无
说明:
TODO
private static List<SpriteSource> armorTrims() @ L107
- 方法名:armorTrims
- 源码定位:L107
- 返回类型:List
- 修饰符:private static
参数:
- 无
说明:
TODO
private static List<SpriteSource> blocksList() @ L111
- 方法名:blocksList
- 源码定位:L111
- 返回类型:List
- 修饰符:private static
参数:
- 无
说明:
TODO
private static List<SpriteSource> itemsList() @ L120
- 方法名:itemsList
- 源码定位:L120
- 返回类型:List
- 修饰符:private static
参数:
- 无
说明:
TODO
private static List<SpriteSource> bannerPatterns() @ L136
- 方法名:bannerPatterns
- 源码定位:L136
- 返回类型:List
- 修饰符:private static
参数:
- 无
说明:
TODO
private static List<SpriteSource> shieldPatterns() @ L140
- 方法名:shieldPatterns
- 源码定位:L140
- 返回类型:List
- 修饰符:private static
参数:
- 无
说明:
TODO
private static List<SpriteSource> guiSprites() @ L144
- 方法名:guiSprites
- 源码定位:L144
- 返回类型:List
- 修饰符:private static
参数:
- 无
说明:
TODO
public CompletableFuture<?> run(CachedOutput cache) @ L148
- 方法名:run
- 源码定位:L148
- 返回类型:CompletableFuture<?>
- 修饰符:public
参数:
- cache: CachedOutput
说明:
TODO
private CompletableFuture<?> storeAtlas(CachedOutput cache, Identifier atlasId, List<SpriteSource> contents) @ L169
- 方法名:storeAtlas
- 源码定位:L169
- 返回类型:CompletableFuture<?>
- 修饰符:private
参数:
- cache: CachedOutput
- atlasId: Identifier
- contents: List
说明:
TODO
public String getName() @ L173
- 方法名:getName
- 源码定位:L173
- 返回类型:String
- 修饰符:public
参数:
- 无
说明:
TODO
代码
@OnlyIn(Dist.CLIENT)
public class AtlasProvider implements DataProvider {
private static final Identifier TRIM_PALETTE_KEY = Identifier.withDefaultNamespace("trims/color_palettes/trim_palette");
private static final Map<String, Identifier> TRIM_PALETTE_VALUES = extractAllMaterialAssets()
.collect(Collectors.toMap(MaterialAssetGroup.AssetInfo::suffix, asset -> Identifier.withDefaultNamespace("trims/color_palettes/" + asset.suffix())));
private static final List<ResourceKey<TrimPattern>> VANILLA_PATTERNS = List.of(
TrimPatterns.SENTRY,
TrimPatterns.DUNE,
TrimPatterns.COAST,
TrimPatterns.WILD,
TrimPatterns.WARD,
TrimPatterns.EYE,
TrimPatterns.VEX,
TrimPatterns.TIDE,
TrimPatterns.SNOUT,
TrimPatterns.RIB,
TrimPatterns.SPIRE,
TrimPatterns.WAYFINDER,
TrimPatterns.SHAPER,
TrimPatterns.SILENCE,
TrimPatterns.RAISER,
TrimPatterns.HOST,
TrimPatterns.FLOW,
TrimPatterns.BOLT
);
private static final List<EquipmentClientInfo.LayerType> HUMANOID_LAYERS = List.of(
EquipmentClientInfo.LayerType.HUMANOID, EquipmentClientInfo.LayerType.HUMANOID_LEGGINGS
);
private final PackOutput.PathProvider pathProvider;
public AtlasProvider(PackOutput output) {
this.pathProvider = output.createPathProvider(PackOutput.Target.RESOURCE_PACK, "atlases");
}
private static List<Identifier> patternTextures() {
List<Identifier> result = new ArrayList<>(VANILLA_PATTERNS.size() * HUMANOID_LAYERS.size());
for (ResourceKey<TrimPattern> vanillaPattern : VANILLA_PATTERNS) {
Identifier assetId = TrimPatterns.defaultAssetId(vanillaPattern);
for (EquipmentClientInfo.LayerType humanoidLayer : HUMANOID_LAYERS) {
result.add(assetId.withPath(patternPath -> humanoidLayer.trimAssetPrefix() + "/" + patternPath));
}
}
return result;
}
private static SpriteSource forMaterial(SpriteId sprite) {
return new SingleFile(sprite.texture());
}
private static SpriteSource forMapper(SpriteMapper mapper) {
return new DirectoryLister(mapper.prefix(), mapper.prefix() + "/");
}
private static List<SpriteSource> simpleMapper(SpriteMapper mapper) {
return List.of(forMapper(mapper));
}
private static List<SpriteSource> noPrefixMapper(String directory) {
return List.of(new DirectoryLister(directory, ""));
}
private static Stream<MaterialAssetGroup.AssetInfo> extractAllMaterialAssets() {
return ItemModelGenerators.TRIM_MATERIAL_MODELS
.stream()
.map(ItemModelGenerators.TrimMaterialData::assets)
.flatMap(asset -> Stream.concat(Stream.of(asset.base()), asset.overrides().values().stream()))
.sorted(Comparator.comparing(MaterialAssetGroup.AssetInfo::suffix));
}
private static List<SpriteSource> armorTrims() {
return List.of(new PalettedPermutations(patternTextures(), TRIM_PALETTE_KEY, TRIM_PALETTE_VALUES));
}
private static List<SpriteSource> blocksList() {
return List.of(
forMapper(Sheets.BLOCKS_MAPPER),
forMapper(ConduitRenderer.MAPPER),
forMaterial(BellRenderer.BELL_TEXTURE),
forMaterial(EnchantTableRenderer.BOOK_TEXTURE)
);
}
private static List<SpriteSource> itemsList() {
return List.of(
forMapper(Sheets.ITEMS_MAPPER),
new PalettedPermutations(
List.of(
ItemModelGenerators.TRIM_PREFIX_HELMET,
ItemModelGenerators.TRIM_PREFIX_CHESTPLATE,
ItemModelGenerators.TRIM_PREFIX_LEGGINGS,
ItemModelGenerators.TRIM_PREFIX_BOOTS
),
TRIM_PALETTE_KEY,
TRIM_PALETTE_VALUES
)
);
}
private static List<SpriteSource> bannerPatterns() {
return List.of(forMapper(Sheets.BANNER_MAPPER));
}
private static List<SpriteSource> shieldPatterns() {
return List.of(forMapper(Sheets.SHIELD_MAPPER));
}
private static List<SpriteSource> guiSprites() {
return List.of(new DirectoryLister("gui/sprites", ""), new DirectoryLister("mob_effect", "mob_effect/"));
}
@Override
public CompletableFuture<?> run(CachedOutput cache) {
return CompletableFuture.allOf(
this.storeAtlas(cache, AtlasIds.ARMOR_TRIMS, armorTrims()),
this.storeAtlas(cache, AtlasIds.BANNER_PATTERNS, bannerPatterns()),
this.storeAtlas(cache, AtlasIds.BEDS, simpleMapper(Sheets.BED_MAPPER)),
this.storeAtlas(cache, AtlasIds.BLOCKS, blocksList()),
this.storeAtlas(cache, AtlasIds.ITEMS, itemsList()),
this.storeAtlas(cache, AtlasIds.CHESTS, simpleMapper(Sheets.CHEST_MAPPER)),
this.storeAtlas(cache, AtlasIds.DECORATED_POT, simpleMapper(Sheets.DECORATED_POT_MAPPER)),
this.storeAtlas(cache, AtlasIds.GUI, guiSprites()),
this.storeAtlas(cache, AtlasIds.MAP_DECORATIONS, noPrefixMapper("map/decorations")),
this.storeAtlas(cache, AtlasIds.PAINTINGS, noPrefixMapper("painting")),
this.storeAtlas(cache, AtlasIds.PARTICLES, noPrefixMapper("particle")),
this.storeAtlas(cache, AtlasIds.SHIELD_PATTERNS, shieldPatterns()),
this.storeAtlas(cache, AtlasIds.SHULKER_BOXES, simpleMapper(Sheets.SHULKER_MAPPER)),
this.storeAtlas(cache, AtlasIds.SIGNS, simpleMapper(Sheets.SIGN_MAPPER)),
this.storeAtlas(cache, AtlasIds.CELESTIALS, noPrefixMapper("environment/celestial"))
);
}
private CompletableFuture<?> storeAtlas(CachedOutput cache, Identifier atlasId, List<SpriteSource> contents) {
return DataProvider.saveStable(cache, SpriteSources.FILE_CODEC, contents, this.pathProvider.json(atlasId));
}
@Override
public String getName() {
return "Atlas Definitions";
}
}引用的其他类
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
参数/返回值
- 引用位置:
-
- 引用位置:
构造调用 - 关联成员:
DirectoryLister()
- 引用位置:
-
- 引用位置:
构造调用 - 关联成员:
PalettedPermutations()
- 引用位置:
-
- 引用位置:
构造调用 - 关联成员:
SingleFile()
- 引用位置:
-
- 引用位置:
字段
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
实现/方法调用 - 关联成员:
DataProvider.saveStable()
- 引用位置:
-
- 引用位置:
参数/字段
- 引用位置:
-
- 引用位置:
参数/字段/方法调用/返回值 - 关联成员:
Identifier.withDefaultNamespace()
- 引用位置:
-
- 引用位置:
字段
- 引用位置:
-
- 引用位置:
返回值
- 引用位置:
-
- 引用位置:
字段
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
TrimPatterns.defaultAssetId()
- 引用位置: