minecraft-src/net/minecraft/client/resources/model/EquipmentAssetManager.java
2025-07-04 03:15:13 +03:00

36 lines
1.6 KiB
Java

package net.minecraft.client.resources.model;
import java.util.Map;
import java.util.Map.Entry;
import java.util.stream.Collectors;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.resources.FileToIdConverter;
import net.minecraft.resources.ResourceKey;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.server.packs.resources.ResourceManager;
import net.minecraft.server.packs.resources.SimpleJsonResourceReloadListener;
import net.minecraft.util.profiling.ProfilerFiller;
import net.minecraft.world.item.equipment.EquipmentAsset;
import net.minecraft.world.item.equipment.EquipmentAssets;
@Environment(EnvType.CLIENT)
public class EquipmentAssetManager extends SimpleJsonResourceReloadListener<EquipmentClientInfo> {
public static final EquipmentClientInfo MISSING = new EquipmentClientInfo(Map.of());
private static final FileToIdConverter ASSET_LISTER = FileToIdConverter.json("equipment");
private Map<ResourceKey<EquipmentAsset>, EquipmentClientInfo> equipmentAssets = Map.of();
public EquipmentAssetManager() {
super(EquipmentClientInfo.CODEC, ASSET_LISTER);
}
protected void apply(Map<ResourceLocation, EquipmentClientInfo> map, ResourceManager resourceManager, ProfilerFiller profilerFiller) {
this.equipmentAssets = (Map<ResourceKey<EquipmentAsset>, EquipmentClientInfo>)map.entrySet()
.stream()
.collect(Collectors.toUnmodifiableMap(entry -> ResourceKey.create(EquipmentAssets.ROOT_ID, (ResourceLocation)entry.getKey()), Entry::getValue));
}
public EquipmentClientInfo get(ResourceKey<EquipmentAsset> key) {
return (EquipmentClientInfo)this.equipmentAssets.getOrDefault(key, MISSING);
}
}