37 lines
1.3 KiB
Java
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";
|
|
}
|
|
}
|