MinecraftFabricMod编写Part3物品进阶:物品组

创建简单物品组

要使你的ItemGroup属性显示在创造模式菜单中,请使用FabricItemGroupBuilder创建它们:

public class ExampleMod implements ModInitializer {
 
    public static final ItemGroup FISH_GROUP = FabricItemGroupBuilder.build(
        new Identifier("fishmod", "general"),
        () -> new ItemStack(Items.SALMON));
 
    public static final ItemGroup OTHER_GROUP = FabricItemGroupBuilder.create(
        new Identifier("fishmod", "other"))
        .icon(() -> new ItemStack(Items.TROPICAL_FISH))
        .build();
}

调用FabricItemGroupBuilder#build后,您的组将被添加到创造模式菜单中的物品组列表中。

请确保将您传递到Identifier构造器的参数替换为您的实际模组ID和你需要给予您的物品组用于稍后本地化的翻译键(translation key)。

将物品添加到物品组

创建自定义物品时,请在设置上调用Item.Settings#group,然后传入自定义组:

public static final Item YOUR_ITEM = new Item(new Item.Settings().group(ExampleMod.FISH_GROUP));

使物品组按特定顺序显示特定物品

调用FabricItemGroupBuilder#appendItems,并传递任何Consumer<List<ItemStack>>。然后,您可以按顺序将将你想要添加的堆栈添加到特定列表中。ItemStack.EMPTY可用于在组中放置空格。

public class ExampleMod implements ModInitializer {
 
    public static final ItemGroup FISH_GROUP = FabricItemGroupBuilder.build(
        new Identifier("fishmod", "general"),
        () -> new ItemStack(Blocks.SALMON));
 
    public static final ItemGroup OTHER_GROUP = FabricItemGroupBuilder.create(
        new Identifier("fishmod", "other"))
        .icon(() -> new ItemStack(Items.TROPICAI_FISH))
        .appendItems(stacks -> {
            stacks.add(new ItemStack(Blocks.BONE_BLOCK));
            stacks.add(new ItemStack(Items.APPLE));
            stacks.add(PotionUtil.setPotion(new ItemStack(Items.POTION), Potions.WATER));
            stacks.add(ItemStack.EMPTY);
            stacks.add(new ItemStack(Items.IRON_SHOVEL));
        })
        .build();
}

这里就是添加了骨块(BONE_BLOCK)苹果(APPLE)水瓶(POTTON,水瓶的语法有点特殊)铁锹(IRON_SHOVEL)

posted @ 2022-05-27 09:36  Qigfrog  阅读(434)  评论(0编辑  收藏  举报