Neutrino 1.15 Mod 开发教程

FledgeXu


捐赠

这里是我的爱发电,如果你认同我的工作,欢迎请我喝杯咖啡。

这是什么

因为本教程还在撰写过程中,下方的目录和实际目录不一定匹配,请以实际目录为准

Neutrino 一个Minecraft 1.15版本的Mod开发教程,它的目标群体是那些有一定Java基础,但是又没什么大型项目开发经验的人。

介于文本量庞大,本项目托管在Github上进行项目管理、错误修复以及部署,此外本项目还提供了一份和教程相对应的代码以供读者参考。

阅读本教程请点击此处

目录

  1. 1. 导论
    1. 1.1. Forge是什么
  2. 1.2. Minecraft如何运作的
  3. 1.3. 开发模型
  4. 1.4. 一些核心概念
  5. 2. 环境配置
    1. 2.1. Forge开发环境的配置
  6. 2.2. 开发环境的介绍
  7. 2.3. 自定义mod信息
  8. 3. 物品
    1. 3.1. 第一个物品
  9. 3.2. 物品材质与模型
  10. 3.3. Item和ItemStack
  11. 3.4. 食物
  12. 3.5. 近战武器
  13. 3.6. 自定义创造模式物品栏
  14. 4. 语言文件与本地化
  15. 5. 方块
    1. 5.1. 第一个方块
  16. 5.2. Block和BlockState
  17. 5.3. 方块模型和材质
  18. 5.4. 方块状态
  19. 5.5. 非实心方块与自定义模型
  20. 5.6. 方块的渲染类型
  21. 6. 特殊模型
    1. 6.1. OBJ 模型
  22. 6.2. B3D 模型
  23. 6.3. 动画
  24. 7. 方块实体
    1. 7.1. 第一个方块实体和其数据保存
  25. 7.2. ITickableTileEntity
  26. 7.3. 方块实体内置的数据同步
  27. 8. 特殊渲染
    1. 8.1. IBakedModel(烘培模型)
  28. 8.2. TileEntityRenderer(方块实体渲染器)
  29. 8.3. ItemStackTileEntityRenderer(物品特殊渲染)
  30. 9. 事件系统
  31. 10. 网络包
    1. 10.1. 自定义网络包
  32. 10.2. 关于Mod安全
  33. 11. 实体
    1. 11.1. 从零构建一个实体和数据同步
  34. 11.2. 创建一个动物和AI
  35. 12. 能力系统
    1. 12.1. 从零构建与使用能力
  36. 12.2. 开始使用预定义能力
  37. 12.3. 附加能力提供器
  38. 13. WorldSavedData(世界数据保存)
  39. 14. Gui
    1. 14.1. 第一个Gui
  40. 14.2. Container
  41. 14.3. HUD
  42. 15. 流体
  43. 16. 世界生成
    1. 16.1. 矿物生成
  44. 16.2. 结构生成
  45. 16.3. 自定义生物群系和世界类型
  46. 16.4. 自定义维度与区块生成器以及生物群系提供器
  47. 17. 数据包
    1. 17.1. 配方
  48. 17.2. 掉落物配方
  49. 18. Data Generator
  50. 19. 命令
  51. 20. 进度
  52. 21. 配置文件
  53. 22. 药水
  54. 23. 粒子效果
  55. 24. 音效
  56. 25. 用户输入
  57. 26. 与其他mod的兼容
  58. 27. Access Transformer
  59. 28. CoreMod

反馈和建议

如果你有任何的反馈和建议欢迎在本帖下方留言,或者去Github上开Issue。

项目贡献

如果你想贡献任何的代码,欢迎PR。

Github地址

许可证

license
This work is licensed under a license Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.


FledgeXu



一只星尘qwq


请问可不可以(需不需要)加入盔甲(或工具)篇?
:slightly_smiling_face:


FledgeXu


盔甲和工具本质上就是特殊的物品,参考原版的实现很容易就能写出来。


FledgeXu


盔甲和工具本质上就是特殊的物品,参考原版的实现很容易就能写出来。


一只星尘qwq


那请问可不可以加入多方块结构篇呢 :pleading_face:


FledgeXu


多方块不是一个技术上的难题,不适合放到教程里。
我会专门出一期视频来讲多方块结构。


一只星尘qwq


好的,期待您的视频 :grinning:


Twily


DeferredRegister<>(IForgeregistry base, String modid)是否已经是Deprecated状态?
(官方说的,在1.16后就是private修饰)
是否应当使用DeferredRegister.create(IForgeregistry base, String modid)类方法?


FledgeXu


是的,这个是在31.20 之后的某个MDK修改的。
教程使用的31.20还没有出现DeferredRegister.create这个方法,所以不用修改。


Twily


奥好的非常感谢 :slightly_smiling_face:


雪澈


为什么我创建第一个方块的时候会无法解析Properties中的方法create?
Cannot resolve method ‘create’ in ‘Properties’


FledgeXu


请去提问区提问,这里不是给你问问题的地方。


FledgeXu


请去提问区提问,这里不是给你问问题的地方。


Oo0


请问可不可以讲讲进度篇


FledgeXu


https://zhangshenxing.gitee.io/vanillamodtutorial/#2.4_进度


FledgeXu


https://zhangshenxing.gitee.io/vanillamodtutorial/#2.4_进度


dasffafa


希望可以添加某些方法的参数意义,例如HUD篇的blit这样参数意义不明的方法


FledgeXu


Blit方法的参数还没有被指定,你可以查看这个gigaherz提供的文件来获取翻译好的函数签名。
第一个Gui - Minecraft Forge Mod Dev tutorial

Blit的使用方法我已经解释过了。


一只星尘qwq


请问能不能添加一篇如何新增伤害类型与对应死亡信息的教程 :slightly_smiling_face:


FledgeXu


emmm,新的伤害类型和死亡信息不是new一个DamageSource就能解决的事吗……


一只星尘qwq


那么请问如何让武器可以造成这种伤害呢?又如何使护甲拥有对该伤害的防护?


FledgeXu


这个是你应该去思考和研究的问题了,没有哪个教程会这么面面俱到的。


一只星尘qwq


好的,谢谢您的解答