基本蒙版
蒙版决定了哪些块将受到命令、笔刷等的影响。
合并蒙版
为了得到一个匹配多个蒙版交集的蒙版,使用空格将它们分隔开。交集将在所有给定的蒙版都匹配时生效。
示例:合并蒙版
替换表面石头为泥土,使用蒙版交集:
//replace "stone <air" dirt
设置一个蒙版,限制当前笔刷只能修改选择区域内的空气方块:
/mask "air #sel"
可用蒙版
方块蒙版
最简单的蒙版之一,方块蒙版匹配一个或多个方块或方块状态。就像:doc:单方块模式 <patterns>
一样,你可以仅指定方块类型,或指定带有任意数量状态的方块类型。与模式不同,蒙版不会对未指定的方块状态使用默认值-它们将“模糊”匹配未指定状态的任何值。
为了匹配多个方块,用逗号隔开每个方块。
示例:使用方块蒙版
从选择区域中移除所有橡木栅栏:
//replace oak_fence air
从选择区域中移除所有连接在东侧的橡木栅栏和橡木栅栏门:
//replace oak_fence[east=true],oak_fence_gate air
蒙版反选
符号!
可用于反选其后的所有内容。也就是说,它匹配任何不由另一个蒙版匹配的内容。可以跟随任何其他蒙版。
示例:反选蒙版
替换任何不是泥土、石头或草的方块为石头:
//replace !dirt,stone,grass_block stone
存在方块蒙版
蒙版#existing
将匹配任何非空气的方块。请注意,这不同于!air
,因为游戏实际上在某些情况下使用多种类型的空气。
实体方块蒙版
蒙版#solid
将匹配任何被认为是“实体”的方块。也就是,阻止实体(如玩家)通过的方块。
偏移蒙版
在另一个蒙版之前加上>
(覆盖)或<
(底层),将匹配位于另一个蒙版上方或下方的方块。
示例:偏移蒙版
在选择区域的木板上方创建一层台阶:
//replace >##planks smooth_stone_slab
区域蒙版
虽然对于像替换这样的命令来说没有意义,但设置区域蒙版对于在有限区域内使用笔刷非常有用。例如,如果你想在墙的底部刷一些泥土,你可以选择墙,然后反选一个区域蒙版,以使泥土不影响墙(但仍影响周围的地面)。
第一种区域蒙版是#region
(别名:#sel
,#selection
),它将在运行命令时复制你的区域并将其用作蒙版。
第二种区域蒙版是#dregion
(d代表动态,也称为#dsel
,#dselection
),它将始终与你当前的选择保持更新。
方块类别蒙版
方块类别或 标签 也可以用作蒙版。类别蒙版将匹配属于该类别的任何方块。就像模式一样,语法是##<tag>
。
示例:方块类别蒙版
用一层雪替换所有地毯:
//replace ##carpets snow
随机噪声蒙版
噪声蒙版可以创建随机噪声。指定%<percent>
将匹配给定百分比的方块。与加权模式不同,%50
实际上是50%的方块。
方块状态蒙版
与方块蒙版一样,此蒙版匹配方块状态。与方块蒙版不同,你不需要指定方块类型。这意味着你可以匹配具有给定值的任何具有属性的方块。
状态蒙版有两种模式,宽松和严格。在宽松模式(^[state=value,...]
)中,它将匹配具有给定方块状态等于给定值的任何方块,或者甚至没有这些属性的任何方块。在严格模式(^=[state=value,...]
)中,它将仅匹配具有方块状态等于该值的方块。
示例:使用方块状态蒙版
移除所有关闭的门、门和活板门:
//replace ^=[open=false] air
表达式蒙版
此蒙版可以对每个方块进行数学表达式评估。蒙版以=
开始,
然后必须有一个表达式,其中可以使用变量x
,y
和z
。如果表达式返回正值,蒙版将匹配。
示例:表达式蒙版
仅编辑特定y坐标以下的方块:
//gmask =y<64
仅编辑离空气两个方块的方块:
//gmask =queryRel(0,-2,0,0,0)
生物群系蒙版
生物群系蒙版匹配具有给定生物群系的方块。其语法是$<biome id>
。生物群系ID必须是 命名空间id,对于原生生物群系,可选的是minecraft:
,对于mod添加的生物群系,需要mod id
。
表面蒙版
表面蒙版匹配至少有一个面暴露在空气中的方块。这意味着它只匹配对象的表面,而不是完全被其他方块遮挡的方块。
蒙版是#surface
(别名#exposed
)。