跳到主要内容

⚙️ 配置

简介

这里的配置特指每个包下 resources 目录中的 configuration 文件夹。配置文件存储在该文件夹中,并且支持 JSON 和 YML 格式。你可以在 configuration 文件夹中创建任意数量的子目录。

专业提示

区块标识符

CraftEngine 引入了此功能,以解决 YAML 配置中的一些痛点——特别是在单个文件中需要定义多个相同类型的配置时。在 YAML 配置中,以下格式是不允许的:

items:
default:topaz_helmet:
template: default:topaz_armor
arguments:
part: helmet
slot: head
blocks:
default:topaz_ore:
...more
items:
default:topaz_boots:
template: default:topaz_armor
arguments:
part: boots
slot: feet

因此,你需要在配置区块名称后面添加 # + 任意标识符,这让你能够在单个 YAML 文件中配置多个相同类型的区块。

items#0:
default:topaz_helmet:
template: default:topaz_armor
arguments:
part: helmet
slot: head
blocks:
default:topaz_ore:
...more
items#1:
default:topaz_boots:
template: default:topaz_armor
arguments:
part: boots
slot: feet

区块分隔符

通过使用 ::,你可以将一个标准键拆分为具有复杂层级结构的映射键。例如,以下两种配置是等效的:

# 单行格式
key::subkey::nested_key: value

# 展开格式
key:
subkey:
nested_key: value
信息

这有助于在某些情况下减少配置所需的行数,使整体设置更简洁、视觉上更清晰。

基于版本的配置

提示

对于普通用户来说,此选项意义不大。然而,如果您是资源包创作者,可以使用此功能指定某些设置仅适用于特定版本。

CraftEngine 支持三种不同的版本指定格式,分别是:

  1. 固定版本:$$1.21.4
  2. 版本范围:$$1.20.1~1.21.4
  3. 版本比较:$$>=1.21.4, $$<1.21.8

它们可用于值选择或参数覆写与合并。

示例 1:值选择

items:
default:topaz_trident:
material: trident
client-bound-material:
$$1.20.1~1.21.1: bow
$$1.21.2~1.21.3: honey_bottle
custom-model-data: 1001
data:
item-name: <!i><#FF8C00><i18n:item.topaz_trident>
components:
minecraft:max_damage: 300

示例 2:区块合并

items:
default:topaz_trident:
material: trident
custom-model-data: 1001
data:
item-name: <!i><#FF8C00><i18n:item.topaz_trident>
components:
minecraft:max_damage: 300
$$>=1.21.2:
client-bound-data:
components:
minecraft:consumable:
consume_seconds: 128000
animation: spear