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)