Featured image of post 开发教程 | minecraft模组开发-1

开发教程 | minecraft模组开发-1

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);
        }
    }
}
使用 Hugo 构建
主题 StackJimmy 设计