欢迎光临散文网 会员登陆 & 注册

新物品!Minecraft Fabric 模组开发系列教程 #2

2023-07-25 12:09 作者:ABlueDog一条蓝狗  | 我要投稿

稍微折腾了半天,摸索出了1.20版本注册物品组的写法

public class ModItems {

    public static final Item CITRINE = registerItem("citrine",
            new Item(new FabricItemSettings()),
            ItemGroups.BUILDING_BLOCKS);
    //这里只能写ItemGroups里已经有的物品组分类,我把这两个添加到了建筑方块分类中,新建物品组的代码在另一个类中

    public static final Item RAW_CITRINE = registerItem("raw_citrine",
            new Item(new FabricItemSettings()),
            ItemGroups.BUILDING_BLOCKS);


    @SafeVarargs
    public static Item registerItem(String name, Item item, RegistryKey<ItemGroup>... itemGroups) {
        Item registerItem = Registry.register(Registries.ITEM, new Identifier("template-mod", name), item);
        for (RegistryKey<ItemGroup> itemGroup : itemGroups) {
            ItemGroupEvents.modifyEntriesEvent(itemGroup).register(entries -> {
                entries.add(registerItem);
            });
        }//下面的写法除了变量类型不同几乎没变化
        return registerItem;
    }

    public static void registerModItems() {
        ExampleMod.LOGGER.debug("registering mod items for" + ExampleMod.MOD_ID);
    }
}
public class ModItemGroup {

    //这里构建一个注册物品组所需的RegistryKey
    public static RegistryKey<ItemGroup> TEMPLATEMOD = RegistryKey.of(RegistryKeys.ITEM_GROUP, new Identifier("template-mod"));

    public static void registerItemGroup() {
        //注册物品组
        Registry.register(Registries.ITEM_GROUP, TEMPLATEMOD, ItemGroup.create(ItemGroup.Row.TOP, 3)
                //显示的物品组名称
                .displayName(Text.translatable("itemGroup.templatemod"))
                //物品组图标
                .icon(() -> new ItemStack(ModItems.CITRINE))
                //添加物品到物品组里面
                .entries((displayContext, entries) -> {
            entries.add(ModItems.CITRINE);
            entries.add(ModItems.RAW_CITRINE);
        }).build());
    }

    public static void registerModItemGroup() {
        ExampleMod.LOGGER.debug("registering mod item group for" + ExampleMod.MOD_ID);
    }
}


新物品!Minecraft Fabric 模组开发系列教程 #2的评论 (共 条)

分享到微博请遵守国家法律