# :-: 第一個方塊
制作一個方塊跟制作物品一樣也就兩個步驟:
1.創建一個方塊,并添加材質
2.實例化并注冊這個方塊
這次教程將一步一步教你如何制作一個彩虹方塊(啊這)。
第一步創建一個方塊和創建一個物品差不多都一個樣,極為相似。這里我們如法炮制,新建一個包,net.xiaobang.bm.block,并新建類BlockRainBow(注意類的名稱前面推薦是Block),讓他繼續Block類(一般繼承Block的都是方塊)
`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(如農作物)。
}
}
~~~
創建完方塊,這次新建文件夾src/main/resources/assets/bm/textures/blocks,把你制作好的彩虹圖片扔進去(還是推薦用paint.net作畫)rainbow.png(在網上找了個彩虹然后一頓亂搞)
`src/main/resources/assets/bm/textures/blocks/rainbow.png`

接下來要在net.xiaobang.bm.loader包里面新建一個類BlockLoader
`src/main/java/net/xiaobang/bm/loader/BlockLoader.java`
~~~
package net.xiaobang.bm.loader;
import net.minecraft.block.Block;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.registry.GameRegistry;
public class BlockLoader
{
public static Block rainBow = new BlockRainBow();
public BlockLoader(FMLPreInitializationEvent event)
{
register(rainBow, "rainBow");
}
private static void register(Block block, String name)
{
GameRegistry.registerBlock(block,name);//注冊方塊
}
}
~~~
oj8k,接下來就要實例化并注冊方塊了,同樣,在CommonProxy類里面添加以下代碼
`src/main/java/net/xiaobang/bm/common/CommonProxy.java(部分)`
~~~
public void preInit(FMLPreInitializationEvent event)
{
new ItemLoader(event);
new BlockLoader(event);
}
~~~
注意BlockLoader在CommonProxy類中要記得導入哦,不然會報錯。
現在啟動游戲,輸入/give @a bm:rainBow就可以得到彩虹方塊了呢~
最后說一句,把所有物品相關的類使用Item開頭,所有方塊相關的類使用Block開頭,等等,并把它們放到對應的包里,是一個好的習慣。
(以上教程大部分來自zzzz大佬的教程)