手册:数据驱动

来自Minecraft基岩版开发Wiki
LPaicen留言 | 贡献2022年8月9日 (二) 06:23的版本

数据驱动接口通常以JSON的形式使用,它们都需要遵循一定的格式。

格式

游戏使用模式来校验JSON文本,大多数文件的基本模式相同,都是如下框架:

{
  "format_version": "<version>", //格式版本
  "minecraft:<domain>": { //所属域(有些文件中不含“minecraft”命名空间)
    "description": {
      //描述
    },
    //其他内容
  }
}

而大框架下还包含了很多其他内容,这些内容可以分为许多类,并且它们也有一定的格式规范。在使用数据驱动接口前,应先了解它们的格式规范,才能在合适的地方正确使用它们。

描述

描述用于对这个JSON文件所定义的内容进行大致定义,它是一个名为description的对象。在描述对象中有一个名为identifier的参数,它用于定义赋命名空间标识符(有些文件中不含命名空间,仅为标识符);有些文件中还有其他参数,例如实体行为定义文件中有is_spawnableis_summonableis_experimental三个参数。

组件

组件被包含在与描述同级且名为componentsconditions的对象中,它们用于赋予所编写内容一些基本功能和特性。

组件组

组件组是实体行为定义文件中的一种格式,它们被包含在与描述同级且名为component_groups的对象中。每个组件组中都包含了一些组件,这些组件组用于在事件中批量添加或删除组件。组件组的格式如下:

"component_groups": {
  "<name>": { //组件组名称
    //组件
  },
  //……
}

事件

事件包含了许多事件响应,用于在特定条件下(被触发器触发时)执行其中所含的事件响应。事件被包含在与描述同级且名为events的对象中,其基本格式如下:

"events": {
  "<name>": { //事件名称
    //事件响应
  },
  //……
}

置换

置换被包含在方块行为定义文件中与描述同级且名为permutations的数组中,其中有一个名为condition的参数用于设置Molang条件,还有一个名为components的对象用于填写组件。置换用于在特定条件下用其中的组件覆盖已有组件,其格式如下:

"permutations": [
  {
    "condition": "<molang>", //条件
    "components": {
      //组件
    }
  },
  //……
]

过滤器

部分组件中可填写过滤器,其本质上是一个对象,里面包含了testsubjectoperatorvalue四个参数。过滤器用于根据条件筛选目标。

接口

下方列出了国际版数据驱动接口的内容:

以上均为最新测试版的内容,欲查看当前最新测试版或预览版(1.20.50.22)中已被移除或被禁用的组件,请前往过时内容页面查看。

Template:Navbox Addon