开发第一个Fabric Mod
前言
有完善的教程文档,比较全面。zh_cn:start [Fabric Wiki] (fabricmc.net)
工具
开发工具用IDEA,新建项目时可以选择gradle项目,同时下载jdk。
要学习java,不然就像天书。
本文用的是自带的gradle7,jdk16。
下载Fabric模版项目
地址:GitHub - FabricMC/fabric-example-mod: Example Fabric mod
这里有几个版本,本文用的master分支,对应1.16.5。
解压,用IDEA打开就行。
第一次还是慢慢等吧,有空可以查一查怎么加速构建。
执行gradle任务中的build。
成功的人会报成功,然后能在build/libs下找到jar文件。
带入启动器,在游戏里看到这个模组,就算成功。
案例:可合成的附魔金苹果
参考文档:fabric-docs/basic.md at 2021 · natanfudge/fabric-docs · GitHub
可添加REI以查看效果。
准备工作:获取所需的物品id。
F3+H,显示物品id。
minecraft:gold_block
minecraft:golden_apple
minecraft:enchanted_golden_apple
新建一个json。
目录有点复杂,modid是该mod的id。fabric_item可以随意修改。
内容也是照着文档写的。
pattern是合成格子,A和B是代号,在后面补上对应的物品id。
result是产物。
{
"type": "minecraft:crafting_shaped",
"pattern": [
"AAA",
"ABA",
"AAA"
],
"key": {
"A": {
"item": "minecraft:gold_block"
},
"B": {
"item": "minecraft:golden_apple"
}
},
"result": {
"item": "minecraft:enchanted_golden_apple",
"count": 1
}
}
最终效果:
REI能看到配方,用东西在工作台能得到产物。
案例:烤鸡蛋
学习阶段可以多参考现成的模组,比如贴图,代码什么的。
首先,添加烤鸡蛋的Item,这里配置回复4饥饿度,3.2饱食度并注册Item。
public class ExampleMod implements ModInitializer {
public static final FriedEgg FRIED_EGG = new Item(new FabricItemSettings().group(ItemGroup.FOOD).food(new FoodComponent.Builder().hunger(4).saturationModifier(3.2f).build()));
@Override
public void onInitialize() {
Registry.register(Registry.ITEM, new Identifier("modid", "fried_egg"), fried_egg);
}
}
添加贴图,贴图描述。
{
"parent": "item/generated",
"textures": {
"layer0": "modid:item/fried_egg"
}
}
这时候就有了物品,有了效果,还差个配方。
熔炉配方:
{
"type": "minecraft:smelting",
"ingredient": {
"item": "minecraft:egg"
},
"result": "modid:fried_egg",
"experience": 0.35,
"cookingtime": 200
}
篝火配方:
{
"type": "minecraft:campfire_cooking",
"ingredient": {
"item": "minecraft:egg"
},
"result": "modid:fried_egg",
"experience": 0.35,
"cookingtime": 600
}
烟熏炉配方:
{
"type": "minecraft:smoking",
"ingredient": {
"item": "minecraft:egg"
},
"result": "modid:fried_egg",
"experience": 0.35,
"cookingtime": 100
}
最终效果:
能把原版鸡蛋烤熟(√)
烤鸡蛋贴图正常(√)
烤鸡蛋可以吃(√)