文章目录
写在前面
不定时更新
好记性不如烂笔头
好好学英语
github上有许多优质的mod项目可供参考和学习,推荐几个项目(最好玩过这些mod再去参考他们的源代码):
Galacticraft(星系): 各类机器的合成表以及对JEI的兼容、多方块结构(发射台、NASA工作台)、世界生成
TinkersConstruct(匠魂):流体的合成表、工具的各类属性、世界生成
EnderStorage(末影存储)
RefinedStorage(精致存储):存档额外数据的读写、多方块结构
Chisels&Bits
Pam’s Harvestcraft(潘马斯农场)
Immersive Engineering(沉浸工程):多方块结构的模型
Note:别找了,工业和神秘时代没有开源
基于Minecraft 1.12.2, Forge 14.23.5.2768
Ctrl(Command)+F 真好用
打包:gradle: other▶︎reobfJar
zzzz-ustc大佬的详细mod制作教程(mc1.8.9)
Harbinger的mod制作教程(1.12.2-14.23.5.2772, MCP: stable_39)
创建方块
继承net.minecraft.block.Block类或其子类
方块基本属性(WIP)
除特殊说明外,所有属性都应在构造函数中设置。
- 必要性说明:
- F:Fatal 必须设置,不设置可能导致游戏崩溃等严重错误
- S:Suggest 建议进行设置
- O:Optional 可选设置
属性 | 必要性 | 类型 | 作用 | 设置方法 | 参见 |
---|---|---|---|---|---|
方块材料 | F | net.minecraft. block.material.Material |
在super的参数中设置 | ||
地图颜色 | O | net.minecraft. block.material.MapColor |
方块在地图上显示的颜色 | 在super的参数中设置,不设置则默认跟随方块材料定义的颜色 | |
方块ID | F | String |
方块的唯一Id | 使用setRegistryName 方法,在注册方块时设置/在构造函数中设置 |
|
方块硬度 | S | float |
方块的硬度,影响挖掘速度 | 使用setHardness 方法 |
|
方块音效 | O | net.minecraft. block.SoundType |
方块的音效,包括踩上去和破坏时发出的音效 | 使用setSoundType 方法 |
|
收获等级 | S | String &int |
收获方块的工具和工具等级 | 使用setHarvestLevel 方法 |
|
是否透明 | S | boolean |
是否为透明方块 | 重写isOpaqueCube 方法(Deprecated) |
|
是否为完整方块 | S | boolean |
是否为完整的一个方块 | 重写isFullCube 方法(Deprecated) |
|
渲染方式 | S | net.minecraft. util.EnumBlockRenderType |
方块在在游戏中的渲染方式 | 重写getRenderType 方法 |
渲染方式 |
方块行为(WIP)
行为 | 设置方法 | 默认 |
---|