开发第一个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。

Fabric 模组开发入门-第1张图片

解压,用IDEA打开就行。

Fabric 模组开发入门-第2张图片

第一次还是慢慢等吧,有空可以查一查怎么加速构建。

Fabric 模组开发入门-第3张图片执行gradle任务中的build。

Fabric 模组开发入门-第4张图片

成功的人会报成功,然后能在build/libs下找到jar文件。

Fabric 模组开发入门-第5张图片Fabric 模组开发入门-第6张图片带入启动器,在游戏里看到这个模组,就算成功。

Fabric 模组开发入门-第7张图片

案例:可合成的附魔金苹果

参考文档: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

Fabric 模组开发入门-第8张图片

新建一个json。

目录有点复杂,modid是该mod的id。fabric_item可以随意修改。

Fabric 模组开发入门-第9张图片

内容也是照着文档写的。

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能看到配方,用东西在工作台能得到产物。

Fabric 模组开发入门-第10张图片

Fabric 模组开发入门-第11张图片

案例:烤鸡蛋

学习阶段可以多参考现成的模组,比如贴图,代码什么的。


首先,添加烤鸡蛋的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);
    }
}

添加贴图,贴图描述。

Fabric 模组开发入门-第12张图片

Fabric 模组开发入门-第13张图片

{
  "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
}

最终效果:

能把原版鸡蛋烤熟(√)

Fabric 模组开发入门-第14张图片

烤鸡蛋贴图正常(√)

Fabric 模组开发入门-第15张图片

烤鸡蛋可以吃(√)

Fabric 模组开发入门-第16张图片