1.6 第一个物品

创建物品文件夹

在模组文件夹中创建contents文件夹,在contents文件夹中创建items文件夹作为物品文件夹。

创建一个物品

我们为创建一颗金蛋作为第一个模组物品。将物品id命名为golden_egg

在物品文件夹中添加金蛋贴图,命名为golden_egg_icon.png,并在同级目录创建golden_egg.json作为金蛋的JSON数据表。金蛋贴图和JSON文件可以在contents\items文件夹中任意子目录创建,游戏会遍历所有子文件夹自动寻找并加载金蛋的数据。

golden_egg.json中写入数据:

{
  "golden_egg": {
    "type": "MATERIALS",
    "iconTextureData": "golden_egg_icon.png",
    "group": "GROUP_FOOD"
  }
}

详细描述见:物品表——材料

  • type属性表示当前物品类型,使用物品类型表中的常量名称字符串作为值。

  • iconTextureData属性表示当前物品图标在模组textures文件夹的相对位置。

  • group表示物品所在分组。

在游戏中,我们把物品分为这么几大类:材料类(Materials)、方块类(Blocks)、工具类(Tools)、抛射物类(Projectiles)、存储类(Chests)

这几类物品的使用场合如下:

在游戏中查看物品

保存这个JSON数据表文件,然后运行TerraCraft。打开查询界面,你会看到金蛋已经加入到了游戏中!

但是,玩家看到的物品名称却是命名空间:名称,而且也没有物品的描述信息。这是因为我们还没有将物品的文字信息加入到翻译文件中。我们的征途是让Mod走向国际化,因此我们不仅需要写中文的翻译文件,也需要写英文翻译文件。

写入语言文件

每次创建一个新的物品,我们还需要把物品的文本信息写入到翻译数据表内。创建languages文件夹作为语言文件夹,并在该文件夹中创建english.jsonchinese.json两个文件作为英文和中文的语言表,注意必须以UTF8格式保存。

注:游戏运行一次后所有模组文件夹会自动创建一个outputs文件夹,用于存放一些导出信息。

对于/languages/english.json英文表,写入如下信息:

{
  "items": [
    [ "golden_egg", "Golden Egg", "This is a golden egg." ]
  ]
}

对于/languages/chinese.json中文表,写入如下信息:

{
  "items": [
    [ "golden_egg", "金蛋", "这是一个金蛋" ]
  ]
}

对于JSON中items数组的每一项,第一个字符串表示物品在Mod私有空间中的名称(id),第二个字符串表示展示名称(Display Name),第三个字符串是对于该物品的描述(Description)

一般建议必须进行英文翻译,即必须填写英文语言文件的数据表,而其他语言根据自己的掌握情况尽可能填写。因为我们切换语言的时候总是基于如下规则进行展示文本替换的:

如果目标语言展示文本不存在,使用英文展示文本。 如果英文展示文本不存在,使用命名空间:名称。 如果不适合使用上述文本,则使用

再次运行游戏,我们可以发现物品的名称和描述可以正确显示。

在中文语言中:

在英文语言中:

Last updated