02-物品栏
1. 将自定义物品添加到物品栏
首先编写一个添加方法,通过 FabricItemGroupEntries
中的 add
方法添加:
java
private static void addItemToItemGroup(FabricItemGroupEntries fabricItemGroupEntries)
{
fabricItemGroupEntries.add(ICE_ETHER);
}
最后调用该方法:
java
public static void registerModItems()
{
ItemGroupEvents.modifyEntriesEvent(ItemGroups.INGREDIENTS).register(ModItems::addItemToItemGroup);
Testmod.LOGGER.info("Registering Items");
}
2. 创建物品栏
首先,新建 java 类 ./item/ModItemGroups.java
:
创建物品栏:
java
public static final ItemGroup TEST_GROUP = Registry.register(Registries.ITEM_GROUP,
Identifier.of(Testmod.MOD_ID, "test_group"),
ItemGroup.create(null, -1).displayName(Text.translatable("itemGroup.test_group"))
.icon(() -> new ItemStack(ModItems.ICE_ETHER))
.entries((displayContext, entries) -> {
entries.add(ModItems.ICE_ETHER);
}).build());
接下来编写初始化(注册)方法:
java
public static void registerModItemGroups()
{
Testmod.LOGGER.info("Registering Item Groups");
}
java
@Override
public void onInitialize()
{
ModItems.registerModItems();
ModItemGroups.registerModItemGroups();
}
3. 添加语言文件
在 resourses/assets/testmod/lang/en_us.json
和 zh_cn.json
中添加下面语句:
java
{
"item.testmod.ice_ether": "Ice Ether",
"itemGroup.test_group": "Test Group"
}
java
{
"item.testmod.ice_ether": "冰之以太",
"itemGroup.test_group": "测试物品栏"
}
4. 完整代码
Details
java
package com.nckname.testmod;
import com.nckname.testmod.item.ModItemGroups;
import com.nckname.testmod.item.ModItems;
import net.fabricmc.api.ModInitializer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class Testmod implements ModInitializer
{
public static final String MOD_ID = "testmod";
public static final Logger LOGGER = LoggerFactory.getLogger(MOD_ID);
@Override
public void onInitialize()
{
ModItems.registerModItems();
ModItemGroups.registerModItemGroups();
}
}
java
package com.nckname.testmod.item;
import com.nckname.testmod.Testmod;
import net.minecraft.item.ItemGroup;
import net.minecraft.item.ItemStack;
import net.minecraft.registry.Registries;
import net.minecraft.registry.Registry;
import net.minecraft.registry.RegistryKey;
import net.minecraft.registry.RegistryKeys;
import net.minecraft.text.Text;
import net.minecraft.util.Identifier;
public class ModItemGroups
{
public static final ItemGroup TEST_GROUP = Registry.register(Registries.ITEM_GROUP,
Identifier.of(Testmod.MOD_ID, "test_group"),
ItemGroup.create(null, -1).displayName(Text.translatable("itemGroup.test_group"))
.icon(() -> new ItemStack(ModItems.ICE_ETHER))
.entries((displayContext, entries) -> {
entries.add(ModItems.ICE_ETHER);
}).build());
public static void registerModItemGroups()
{
Testmod.LOGGER.info("Registering Item Groups");
}
}