我们本次在Fabric下创建自己模组中的物品栏和物品。
1.在Java包中新建一个init包,在init包中新建一个物品注册类ItemInit
用于注册所有物品:
ItemInit.java
package net.joy187.joyggd.init;
import net.minecraft.item.Item;
import net.minecraft.item.SpawnEggItem;
import net.fabricmc.fabric.api.item.v1.FabricItemSettings;
import net.joy187.joyggd.ModMain;
import net.minecraft.util.Identifier;
import net.minecraft.util.registry.Registry;
public class ItemInit {
//声明一个我们的物品
public static final Item SHERIFF = registerItem("sheriff",
new Item(new FabricItemSettings().group(ModMain.ITEMTAB)));
private static Item registerItem(String name, Item item) {
return Registry.register(Registry.ITEM, new Identifier(ModMain.MOD_ID, name), item);
}
public static void registerModItems() {
ModMain.LOGGER.debug("Registering Mod Items for " + ModMain.MOD_ID);
}
}
2.来到项目主类,将我们的物品注册类放入函数中,同时声明一个物品栏:
ModMain.java
package net.joy187.joyggd;
import net.fabricmc.api.ModInitializer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class ModMain implements ModInitializer {
public static final String MOD_ID = "joyggd";
public static final Logger LOGGER = LoggerFactory.getLogger(MOD_ID);
//声明物品栏,图标为我们刚刚的物品
public static final ItemGroup ITEMTAB = FabricItemGroupBuilder.build(
new Identifier(MOD_ID, "itemtab"), () -> new ItemStack(ItemInit.SHERIFF));
@Override
public void onInitialize() {
//将物品注册类进行注册
ItemInit.registerModItems();
}
}
3.来到资源包,在src\main\resources\assets\你的modid\lang
中添加物品和物品栏名称:
英文名称
en_us.json
"item.joyggd.sheriff": "Sheriff",
"itemGroup.joyggd.itemtab": "Item Tab"
中文名称
zh_cn.json
"item.joyggd.sheriff": "物品名称",
"itemGroup.joyggd.itemtab": "物品栏名称"
在models\item
中添加物品模型文件:
sheriff.json
{
"parent": "item/generated",
"textures": {
"layer0": "joyggd:item/sheriff"
}
}
在textures\item
中添加我们的物品贴图文件: