-技术 -mod -java我的世界fabric-1.21.1mod制作心得二——创造物品栏
‘祈止’前言
如果您没有mod制作经验,那么在看本期前建议看一下上期心得。
上回我们成功注册了物品,成功在我的世界中添加了新物品。但是我们却没法从在创造模式物品栏中取出来,只能通过/give命令间接获得。本期我们将通过‘ fabricAPI ’,将物品添加到创造模式物品栏中。并注册我们自己的创造模式物品栏。
主要java代码
AModItems.java
让我们先尝试把物品添加到原版的创造模式物品栏,这需要借助fabric的API。
在上期我们创建的物品注册文件中:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| private static void addItemGroup(FabricItemGroupEntries entries){ entries.add(物品常量名); }
public static void registerItems(){ ItemGroupEvents .modifyEntriesEvent(ItemGroups.NATURAL) .register(AModItems::addItemGroup); }
|
AModItemGroups.java
如果您需要创建新的创造模式物品栏,那么请创建AModItemGroups.java文件。
这里的物品栏创建建议和原版一样,虽然稍显繁琐。
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
| public static final RegistryKey<ItemGroup> A_GROUP = register("A_group");
private static RegistryKey<ItemGroup> register(String id){ return RegistryKey.of(RegistryKeys.ITEM_GROUP, new Identifier(AMod.MOD_ID, id)); }
public static void registerGroups(){ Registry.register( Registries.ITEM_GROUP, A_GROUP, ItemGroup.create(null, -1) .displayName(Text.translatable("itemGroup.celestial_group")) .icon(() -> new ItemStack(AModItems.物品常量名)) .entries((displayContext, entries) -> { entries.add(AModItems.物品常量名); }).build()); }
|
AMod.java
我们的辅助注册方法需要调用,我们在模组文件里调用。
1 2 3 4 5 6 7 8 9 10
| public void onInitialize() { AModItems.registerItems();
AModItemGroups.registerGroups(); LOGGER.info("Hello Fabric world!"); }
|
配置json文件
语言文件
如果您不知道,可以看上期。
如:en_us.json
1 2 3 4
| { "item.A-mod.物品id": "译名", "itemGroup.A_group": "译名", }
|
语言文件可以直接写在大括号里,和物品翻译在一起。
注意
以上就完成了物品栏注册的全过程。如果您出现物品栏注册失效,翻译失效。但代码没有问题,可以尝试重启IDEA。