ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# :-: 第一个物品 制作一个物品分为两步: 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`** ![](https://i.vgy.me/B4TR4Z.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大佬的教程)