minecraft模组开发-使用反射批量添加创建的物品
minecraft模组开发-使用反射批量添加创建的物品
在使用数据生成时,使用反射批量注册物品 Model ,将自己创建的 ModItems 类中写的所有物品进行注册,下面是一个简单的例子
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
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);
}
}
}
|