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 { public static final EquipmentClientInfo MISSING = new EquipmentClientInfo(Map.of()); private static final FileToIdConverter ASSET_LISTER = FileToIdConverter.json("equipment"); private Map, EquipmentClientInfo> equipmentAssets = Map.of(); public EquipmentAssetManager() { super(EquipmentClientInfo.CODEC, ASSET_LISTER); } protected void apply(Map map, ResourceManager resourceManager, ProfilerFiller profilerFiller) { this.equipmentAssets = (Map, EquipmentClientInfo>)map.entrySet() .stream() .collect(Collectors.toUnmodifiableMap(entry -> ResourceKey.create(EquipmentAssets.ROOT_ID, (ResourceLocation)entry.getKey()), Entry::getValue)); } public EquipmentClientInfo get(ResourceKey key) { return (EquipmentClientInfo)this.equipmentAssets.getOrDefault(key, MISSING); } }