起源 JSON 格式
起源(Origin)定义了一种可选择的起源,为玩家授予特殊能力。
文件位置
起源 JSON 文件放在数据包内的 data/<namespace>/origins/origin/ 目录中。
文件名与其 ID 相对应。例如,data/origins/origins/origin/avian.json 的 ID 为 origins:avian。
字段
| 字段 | 类型 | 默认值 | 说明 |
|---|---|---|---|
name | 文本组件 | 可选 | 起源的显示名称。更推荐使用翻译键 origin.<namespace>.<path>.name |
description | 文本组件 | 可选 | 起源提示框中显示的描述。更推荐使用翻译键 origin.<namespace>.<path>.description |
powers | 引用或标签列表 | [] | 此起源授予的能力 ID 或标签。使用 "origins:xxx" 或 "#origins:tag_name" |
icon | 物品堆叠 | 可选 | 在选择界面中作为起源图标显示的物品 |
unchoosable | 布尔值 | false | 若为 true,此起源不会出现在选择界面中,但仍可通过命令或升级分配 |
order | 整数 | Integer.MAX_VALUE | 选择界面中的排序顺序;数值越小越靠前 |
impact | 整数 | 0 | 影响等级:0 = NONE,1 = LOW,2 = MEDIUM,3 = HIGH |
upgrades | Upgrade 对象列表 | [] | 起源升级配置列表 |
示例
{
"powers": [
"#origins:avian"
],
"icon": {
"id": "minecraft:feather"
},
"order": 0,
"impact": 1
}
使用能力标签的 Avian 起源:
{
"powers": [
"example:my_power",
"#origins:common_powers"
],
"icon": {
"id": "minecraft:player_head"
},
"order": 5,
"impact": 2,
"unchoosable": false
}
备注
与旧版(Fabric)版本的主要区别:
- 移除了
loading_priority字段 impact使用整数,而不是字符串枚举powers支持标签引用(#namespace:tag)
升级格式
升级(Upgrade)定义了起源在达成特定进度后如何转变为另一个起源。
| 字段 | 类型 | 默认值 | 描述 |
|---|---|---|---|
condition | Identifier | 必填 | 触发此升级的进度 ID |
origin | Identifier | 必填 | 升级后的目标起源 ID |
announcement | Text Component | 可选 | 升级发生时显示的聊天通知 |
示例
用于起源 JSON 的 upgrades 字段中:
{
"powers": [...],
"icon": {"id": "minecraft:diamond"},
"upgrades": [
{
"condition": "minecraft:end/kill_dragon",
"origin": "origins:elytrian",
"announcement": "You have slain the Ender Dragon! You have evolved into an Elytrian."
},
{
"condition": "minecraft:nether/brew_potion",
"origin": "origins:blazeborn"
}
]
}
如果省略 announcement,则不会显示任何通知消息。