# :-: 第一個物品
制作一個物品分為兩步:
1.創建一個物品,并添加材質
2.實例化并注冊這個物品
在Minecraft中,有烈火般的烈焰棒(廢話),咱們這次做來做個鉆石顏色的棒子(真的想不出來要做什么了),這一次教程會一步一步地帶著你完成制作新物品的全過程。
好現在我們來創建一個新的物品,如果你有經常翻看net.minecraft源碼,在item包里面會看到在mc中遇到的各種物品,都繼承了Item類,那么我們做的物品也要繼承這個類(繼承這個類的一般都是物品)
新建一個包net.xiaobang.bm.item,并在其中創建一個類ItemDiamondStick(注意注意類的名稱前面推薦是Item,禁止亂搞)
`src/main/java/net/xiaobang/bm/item/ItemDiamondStick.java`
~~~
package net.xiaobang.bm.item;
import net.minecraft.item.Item;
public class ItemDiamondStick extends Item
{
public ItemDiamondStick()
{
super();
this.setUnlocalizedName("diamondStick");//注意不能中文,除非編碼換為GBK,但你改中文也沒用,到最后還是要在lang(語言文件)設置名稱
//這個setUnlocalizedName為該物品添加了一個非本地化的名稱,該名稱為item.+設置的名稱,比如這里就是item.diamondStick,這個名稱要盡量使用**小寫駝峰式寫法,即第一個詞以小寫字母開始,第二個詞開始首字母大寫,中間不使用任何符號分隔。
this.setTextureName("bm:ds");//這里是設置物品的材質,bm禁止大寫和含有特殊符號,ds是文件的地址,應該放在src/main/resources/assets/bm/textures/items/這個文件夾里面,名稱是ds.png,注意必須是png文件。
}
}
~~~
物品創建好后要去畫個材質,我推薦個軟件[https://www.getpaint.net/](https://www.getpaint.net/),叫paint.net(注意注意這不是網站是個軟件名稱)
注意材質的大小必須是16的倍數X16的倍數(也可以是32x32)新建文件夾src/main/resources/assets/bm/textures/items,把制作完成的ds.png扔進文件夾里面,(照著烈焰棒的圖片瞎搞)**`src/main/resources/assets/fmltutor/textures/items/ds.png`**

ok物品創建好了,接下來要去實例化注冊物品了,新建一個包net.xiaobang.bm.loader,并在其中創建一個類ItemLoader
`src/main/java/net/xiaobang/bm/loader/ItemLoader.java`
~~~
package net.xiaobang.bm.loader;
import net.minecraft.item.Item;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.registry.GameRegistry;
import net.xiaobang.bm.item.
public class ItemLoader
{
public static ItemDiamondStick ds = new ItemDiamondStick();//實例化物品
public ItemLoader(FMLPreInitializationEvent event)
{
register(ds, "diamondStick");//調用注冊物品方法(函數)
}
private static void register(Item item, String name)
{
GameRegistry.registerItem(item,name);//注冊物品,GameRegistry是Forge提供的一個用來注冊物品、方塊、合成表、燒煉規則等各種常見內容的類,比如下面的用于注冊的方法我們在后面都會遇到并加以講解。
}
}
~~~
最后還有在CommonProxy中preInit函數(方法)中添加以下代碼:
`src/main/java/net/xiaobang/bm/common/CommonProxy.java(部分)`
~~~
public void preInit(FMLPreInitializationEvent event)
{
new ItemLoader(event);
}
~~~
ok現在運行客戶端,輸入/give @a bm:diamondStick你手中就會出現一個鉆石顏色的棒子
(以上大部分來自zzzz大佬的教程)