minecraft模组开发-使用反射批量添加创建的物品
在使用数据生成时,使用反射批量注册物品 Model ,将自己创建的 ModItems 类中写的所有物品进行注册,下面是一个简单的例子
package net.wssz.tutorialmod.datagen;
import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput;
import net.fabricmc.fabric.api.datagen.v1.provider.FabricModelProvider;
import net.minecraft.data.client.BlockStateModelGenerator;
import net.minecraft.data.client.ItemModelGenerator;
import net.minecraft.data.client.Models;
import net.minecraft.item.Item;
import net.wssz.tutorialmod.block.ModBlocks;
import net.wssz.tutorialmod.item.ModItems;
import java.lang.reflect.Field;
public class ModModelsProvider extends FabricModelProvider {
public ModModelsProvider(FabricDataOutput output) {
super(output);
}
@Override
public void generateBlockStateModels(BlockStateModelGenerator blockStateModelGenerator) {
blockStateModelGenerator.registerSimpleCubeAll(ModBlocks.RED_IRON_ORE);
}
@Override
public void generateItemModels(ItemModelGenerator itemModelGenerator) {
Field[] fields = ModItems.class.getDeclaredFields();
try {
for (Field field : fields) {
if (field.getType().equals(Item.class)) {
itemModelGenerator.register((Item) field.get(null), Models.GENERATED);
}
}
} catch (IllegalAccessException e) {
throw new RuntimeException(e);
}
}
}
评论 (0)