Skip to content

虚拟组件

本页面镜像自
BedrockWiki

根据原始项目协议授权。本文经过AI翻译处理,如有内容遗漏,可以提交PR进行补充。

弃用警告

'虚拟组件'是一个旧版概念,现已被实体属性取代。建议尽可能使用实体属性代替。

虚拟组件是仅用于数据存储的"无功能"组件。它们本身不会产生任何实际效果,需要配合其他机制才能发挥作用。这类组件的主要价值在于可将数据存储在实体上,并通过Molang查询来驱动图形/游戏机制。

典型案例包括 variant(变种)和 mark_variant(标记变种)。这些组件接受整数值设置,在原版资源包中用于定义猫和马匹的贴图选择。另一个典型案例是 is_tamed(驯服状态),用于控制马匹能否被骑乘。

虚拟组件的优势在于能够将数据与实体绑定,并通过Molang查询调用这些信息。

整型虚拟组件

整型组件存储整数值(例如1、10、1423),可使用Molang查询进行读取,是最常用的虚拟组件类型。

布尔型虚拟组件

布尔型组件存储单一状态信息,包括 True(真)和 False(假)。以 is_tamed 为例,组件存在表示为 True(已驯服),不存在则为 False(未驯服)。

组件列表

类型查询语句组件名称备注
整型q.variantminecraft:variant
整型q.mark_variantminecraft:mark_variant
整型q.skin_idminecraft:skin_id
整型*使用类似 "test": "is_color" 的过滤器,下方提供颜色列表minecraft:color同时在材质系统中设置颜色
整型*无对应过滤器语法,可使用 "has_component"minecraft:color2同时在材质系统中设置颜色
布尔型q.is_illager_captainminecraft:is_illager_captain
布尔型q.is_babyminecraft:is_baby禁用minecraft:breedable组件功能
布尔型q.is_shearedminecraft:is_sheared
布尔型q.is_saddledminecraft:is_saddled
布尔型q.is_tamedminecraft:is_tamed
布尔型q.is_chestedminecraft:is_chested死亡时会掉落储存箱
布尔型q.is_poweredminecraft:is_charged
布尔型q.is_stunnedminecraft:is_stunned
布尔型q.can_climbminecraft:can_climb允许实体攀爬梯子
布尔型q.can_flyminecraft:can_fly标记实体具有飞行能力,路径查找器将不限于下方有固体方块的位置
布尔型q.can_power_jumpminecraft:can_power_jump允许实体执行强力跳跃(如原版马匹动作)
布尔型q.is_ignitedminecraft:is_ignited
布尔型q.out_of_controlminecraft:out_of_control新版功能,用于处理船体硬编码运动/粒子效果,Molang q查询可安全
布尔型q.has_any_family('monster')minecraft:type_family可检测指定Family类型(如'monster')返回布尔值

color与color2组件颜色对照表

json
-   black
-   blue
-   brown
-   cyan
-   gray
-   green
-   light_blue
-   light_green
-   magenta
-   orange
-   pink
-   purple
-   red
-   silver
-   white
-   yellow