# :-: 第一个方块
制作一个方块跟制作物品一样也就两个步骤:
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`
![](https://i.vgy.me/QAB8Qq.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大佬的教程)