牛变种定义格式

来自Minecraft Wiki
跳转到导航 跳转到搜索
本文章所述内容仅适用于Java版
本页面包含会在下一次更新中出现的内容。

这些特性在Java版1.21.5的开发版本中加入。

牛变种定义文件变种在数据包中的数据驱动定义文件。

定义格式[编辑 | 编辑源代码]

牛变种在游戏内使用COW_VARIANT注册表,数据包路径为cow_variant,即所有牛变种自定义文件都需要在data/<命名空间>/cow_variant目录中定义。

牛变种定义文件使用JSON格式,并具有下列结构:

  • NBT复合标签/JSON对象 根标签
    • 字符串*asset_id: (命名空间ID)牛的纹理。
    • 字符串model: (默认为normal)牛的模型,需为normal、​coldwarm之一。在原版内依次对应温带牛、寒带牛和热带牛的模型。
    • NBT列表/JSON数组*spawn_conditions:变种生成选择器,控制变种的生成条件与优先级。
      • NBT复合标签/JSON对象:一个变种生成选择器。
        • NBT复合标签/JSON对象condition:此生成选择器可以生效的条件。默认为任何条件下都可以选择此生成选择器。
          • 字符串*type:生成选择器条件类型。
            如果字符串*typebiome,则检查当前生成点的生物群系。
          • 字符串NBT列表/JSON数组*biomes:(一个或多个生物群系(可以用 字符串字符串指定一个生物群系的命名空间ID;若要指定多个生物群系,可以用 字符串字符串指定一个带有#前缀的标签,或指定一个 NBT列表/JSON数组数组,数组中的元素应为 字符串 命名空间ID字符串))检查生成点是否为给定的生物群系,是则选择器有效。
            如果字符串*typemoon_brightness,则检查当前月亮亮度。
          • 双精度浮点数NBT复合标签/JSON对象*range:月亮亮度的范围,当前亮度在给定范围内时选择器有效。亮度值按照满月-下弦月-新月-上弦月的月相顺序从1降到0再回升,具体值见月亮 § 月亮亮度
            如果字符串*typestructure,则检查当前生成点是否在指定的结构片段内。
          • 字符串NBT列表/JSON数组*structures:(一个或多个生成结构(可以用 字符串字符串指定一个生成结构的命名空间ID;若要指定多个生成结构,可以用 字符串字符串指定一个带有#前缀的标签,或指定一个 NBT列表/JSON数组数组,数组中的元素应为 字符串 命名空间ID字符串))检查生成点是否在指定结构的结构片段内,是则选择器有效。
        • 整型*priority:选择此生成选择器的优先级。游戏会挑选所有变种中所有有效的生成选择器,在优先级并列最高的选择器中随机挑选其一并使用对应的变种进行生成。

定义行为[编辑 | 编辑源代码]

牛变种定义数据仅在服务端启动时被加载一次,使用/reload命令不可以使牛变种定义被重新加载,而必须重启服务端。

变种样式[编辑 | 编辑源代码]

游戏根据牛的变种选择其纹理与模型。

变种纹理由字符串asset_id指定。该字段形如<命名空间>:<路径>,将指向至资源包中的assets/<命名空间>/textures/<路径>.png纹理文件。

变种模型由字符串model指定。该字段只能取normalcoldwarm之一,在原版内依次对应温带牛、寒带牛和热带牛的模型。

变种生成[编辑 | 编辑源代码]

生成牛时,游戏根据NBT列表/JSON数组spawn_conditions指定的通用变种选择器选择生成何种变种。

通用变种选择器包含了生成变种的各种条件,以及条件满足时的生成优先级。尝试生成时,游戏会在所有变种的选择器中找出条件成立且优先级最大的选择器,并生成拥有该选择器的变种;如有多个选择器的优先级同为最大,则会随机选取一个选择器,并生成其对应的变种。

历史[编辑 | 编辑源代码]

Java版(即将到来)
1.21.525w05a加入了COW_VARIANT可写注册表和牛变种定义格式。

导航[编辑 | 编辑源代码]