minecraft-src/net/minecraft/data/models/EquipmentModelProvider.java
2025-07-04 02:00:41 +03:00

37 lines
1.3 KiB
Java

package net.minecraft.data.models;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.CompletableFuture;
import net.minecraft.data.CachedOutput;
import net.minecraft.data.DataProvider;
import net.minecraft.data.PackOutput;
import net.minecraft.data.PackOutput.PathProvider;
import net.minecraft.data.PackOutput.Target;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.item.equipment.EquipmentModel;
import net.minecraft.world.item.equipment.EquipmentModels;
public class EquipmentModelProvider implements DataProvider {
private final PathProvider pathProvider;
public EquipmentModelProvider(PackOutput packOutput) {
this.pathProvider = packOutput.createPathProvider(Target.RESOURCE_PACK, "models/equipment");
}
@Override
public CompletableFuture<?> run(CachedOutput output) {
Map<ResourceLocation, EquipmentModel> map = new HashMap();
EquipmentModels.bootstrap((resourceLocation, equipmentModel) -> {
if (map.putIfAbsent(resourceLocation, equipmentModel) != null) {
throw new IllegalStateException("Tried to register equipment model twice for id: " + resourceLocation);
}
});
return DataProvider.saveAll(output, EquipmentModel.CODEC, this.pathProvider, map);
}
@Override
public String getName() {
return "Equipment Model Definitions";
}
}