# :-: 創造物品欄
這其實很簡單,只要在方塊(或物品)初始化加上一行代碼就行了,不過如果要獨立的物品欄,就要寫上很多行代碼。
**`src/main/java/net/xiaobang/bm/block/BlockRainBow.java`**
~~~
package net.xiaobang.bm.block;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
public class BlockRainBow extends Block
{
public BlockRainBow()
{
super(Material.ground);//
this.setBlockName("bm.rainBow");//設置方塊的非本地化名稱,bm指mod的id
//如果上面的不行就換成這個this.setUnlocalizedName("bm.rainBow");
this.setHardness(-1);//設置方塊的硬度,如黑曜石是50,鐵塊5,金塊3,圓石2,石頭1.5,南瓜1,泥土0.5,甘蔗0,基巖-1。
this.setStepSound(soundTypeGrass);//設置走在方塊上的響聲
this.setResistance(6000000.0F);//設置方塊的爆炸抗性,如木頭的抗性為4,石頭為10,黑曜石為2000,基巖為6000000。
this.setBlockTextureName("bm:rainbow");//設置方塊的材質。應該放在src/main/resources/assets/bm/textures/blocks/這個文件夾里面,名稱是rainbow.png
//如果上面的不行就 this.setTextureName("bm:rainbow");
//setBlockUnbreakable函數(方法)用于設定方塊的硬度為-1,即不可破壞。
//setHarvestLevel函數(方法)用于設定方塊的可挖掘等級,如鉆石鎬是3,鐵2,石1,木金0。
//setLightLevel方法用于設定方塊的光照,其周圍的光照為設定值x15,如巖漿1.0,對應15,紅石火把0.5,對應7.5。
//setLightOpacity方法用于設定方塊的透光率,數值越大透光率越低,如樹葉和蜘蛛網是1,水和冰3。
//setTickRandomly方法用于設定方塊是否會接受隨機Tick(如農作物)。
this.setCreativeTab(CreativeTabs.tabBlock);//把這個方塊放在方塊堆里面
}
}
~~~
# :-: 新建一個創造物品欄
Minecraft的所有物品欄都繼承了`CreativeTabs`類,我們首先新建包`net.xiaobang.bm.creativetab`,并在其下新建類`CreativeTabsBm`,使其繼承`CreativeTabs`類:
**`src/main/java/net/xiaobang/bm/creativetab/CreativeTabsBm.java`**
~~~
package net.xiaobang.bm.creativetab;
import net.xiaobang.bm.block.BlockRainBow;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item;
public class CreativeTabsBm extends CreativeTabs
{
public CreativeTabsBm()
{
super("bm");//返回modid
}
@Override
public Item getTabIconItem()//返回創造物品欄上顯示的物品
{
return new BlockRainBow();
}
}
~~~
然后再在包`net.xiaobang.bm.creativetab`下新建類`CreativeTabsLoader`
**`src/main/java/net/xiaobang/bm/creativetab/CreativeTabsLoader.java`**
~~~
package net.xiaobang.bm.creativetab;
import net.minecraft.creativetab.CreativeTabs;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
public class CreativeTabsLoader
{
public static CreativeTabs tabBm;
public CreativeTabsLoader(FMLPreInitializationEvent event)
{
tabBm = new CreativeTabsBm();
}
}
~~~
并將物品注冊進去:
**`src/main/java/net/xiaobang/bm/block/BlockRainBow.java`**
~~~
package net.xiaobang.bm.block;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
public class BlockRainBow extends Block
{
public BlockRainBow()
{
super(Material.ground);//
this.setBlockName("bm.rainBow");//設置方塊的非本地化名稱,bm指mod的id
//如果上面的不行就換成這個this.setUnlocalizedName("bm.rainBow");
this.setHardness(-1);//設置方塊的硬度,如黑曜石是50,鐵塊5,金塊3,圓石2,石頭1.5,南瓜1,泥土0.5,甘蔗0,基巖-1。
this.setStepSound(soundTypeGrass);//設置走在方塊上的響聲
this.setResistance(6000000.0F);//設置方塊的爆炸抗性,如木頭的抗性為4,石頭為10,黑曜石為2000,基巖為6000000。
this.setBlockTextureName("bm:rainbow");//設置方塊的材質。應該放在src/main/resources/assets/bm/textures/blocks/這個文件夾里面,名稱是rainbow.png
//如果上面的不行就 this.setTextureName("bm:rainbow");
//setBlockUnbreakable函數(方法)用于設定方塊的硬度為-1,即不可破壞。
//setHarvestLevel函數(方法)用于設定方塊的可挖掘等級,如鉆石鎬是3,鐵2,石1,木金0。
//setLightLevel方法用于設定方塊的光照,其周圍的光照為設定值x15,如巖漿1.0,對應15,紅石火把0.5,對應7.5。
//setLightOpacity方法用于設定方塊的透光率,數值越大透光率越低,如樹葉和蜘蛛網是1,水和冰3。
//setTickRandomly方法用于設定方塊是否會接受隨機Tick(如農作物)。
this.setCreativeTab(CreativeTabsLoader.tabBm);
}
}
~~~
最后在CommonProxy的preInit函數添加以下代碼,記得創造物品欄的初始化一定要在物品和方塊的初始化之前:
`src/main/java/net/xiaobang/bm/common/CommonProxy.java`(部分)
~~~
public void preInit(FMLPreInitializationEvent event)
{
new CreativeTabsLoader(event);
//new ItemLoader(event);
//new BlockLoader(event);這兩個已經不需要了,有更好的方法了
new regAll("bm","net/xiaobang/bm/item/","Item");//一鍵注冊所有物品
new regAll("bm","net/xiaobang/bm/block/","Block");//一鍵注冊所有方塊
}
//不要忘了導入CreativeTabsLoader哦
~~~
現在打開游戲,你是不是看到了物品被注冊到了新的創造物品欄,方塊被注冊到了“方塊”創造模式物品欄呢~
(以上教程大部分來自zzzz大佬的1.8.9教程)