Minecraft 1.12.2 ForgeMod开发笔记(2)
添加一个新的基础物品
每个添加到Minecraft的物品,生物,方块需要注册,官方文档中推荐使用注册事件进行注册,具体如下
(1)创建一个继承于Item类的公共类,留空即可
(2)创建一个专门用于注册的类
(3)在用于注册的类中实例化物品,注册,代码如下(物品为image)
需要注意的是,这只是一般的注册方法
在新版(1.19)中还有另一种方法,使用DeferredRegister类
详情参阅最新的forge doc
另外,1.12.2版本中的Forge 14.23.5.2836之后Forge貌似经历了一次大更新
所以针对于2836版本的Harbinger教程对于之后的版本可能有些不适用
比如setTranslationKey改成了setUnlocalizedName
在文中有一项Register<Item>
需要说明的是,这属于泛型
在JDK5中引入的一个新类型,泛型对于输入比使用形参更加宽泛
单个泛型方法可以输入整形,浮点型等多种变量,甚至可以输入一个java类
详细参阅资料,在这里表示传入的类型是Item类
2.打开调试,使用give命令,成功添加物品

2.物品贴图问题
这里只是简单描述添加一个物品贴图
首先,mod除代码外的所有资源都会存放在resources文件夹内,请确保这个文件夹的图标看起来是这样的

其下新建assets,在这个文件夹下创建一个与你modid相同的文件夹
至于什么是modid,在新建项目填写的文件名就是
在这个文件夹下再创建lang,models,textures
在models下新建item,新建image.json,添加如下代码
image是你创建的物品名,dd就是你的modid
在texture下新建items,把与物品名同名的png塞进去
这时候贴图和模型就正常载入了
注:如果发现贴图没有载入,请检查目录是否正确
如果目录正确,这就是IDEA的bug,不是你的锅
(虽然官方issue不承认)
解决方法如下:
打开build.gradle,添加如下代码
这时候task前面会出现一个绿色小三角,每次测试前点击手动加载资源即可
另外如果上述方法以及网上的方法均失效的时候,去偷个别的mod里的gradle或者干脆放弃idea,我的gradle从理想镜框架里面偷的
模型也需要注册,代码如下
资料:
官方文档(1.12.2):https://mcforge-cn.readthedocs.io/zh/latest/
菜鸟教程——java泛型:https://www.runoob.com/java/java-generics.html
IDEA的bug相关资料:https://stackoverflow.com/questions/25513788/intellij-cant-find-classpath-test-resource
Harbinger教程:https://harbinger.covertdragon.team/