企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# :-: 第一个方块 制作一个方块跟制作物品一样也就两个步骤: 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大佬的教程)