图案
你可能注意到(如果没有的话,很快就会了)有些“WorldEdit”命令要求一个“图案”[1]参数。图案可以是非常简单(例如单方块 - stone
)到非常复杂的。图案决定了通过命令、工具或其他方式对世界地形进行修改时的内容。
可用图案
信息
这里的列表可能不完整,因为图案刚刚被添加进 WorldEdit,我们的 API 允许其他插件注册新的图案,可能不会在这里列出。
提示
这里是一个介绍了自 WorldEdit 7 被加入的图案的视频:https://www.youtube.com/watch?v=S5wCVMf3SvM
单方块图案
只使用一个方块的最基础图案。一个方块是被两个部分决定的:方块类型,及额外的方块状态。这两个链接指向 Minecraft Wiki[2],与 WorldEdit 内置的 TAB 命令参数补全一起,可以帮助你找到你需要的方块。额外的方块状态通过格式 方块种类[状态1=值1,状态2=值2,...]
应用至方块。需要注意的是当状态参数没有被指定或是部分缺省的情况下,这些状态将会使用默认值。
示例:单方块图案
将一个选区用石头填充:
//set stone
将一个选区用指定音色和音高的音符盒填充:
//set note_block[instrument=chime,note=18]
将一个选区用朝东且较大面朝上的橡木台阶填充:
//set oak_stairs[facing=east,half=top]
随机图案
这个图案允许从任意数量的图案中设置随机的方块。参数的格式为一系列用逗号分隔的图案名称,它们会被随机选中。你也可以通过 <占比>%<图案>
的格式设置权重。
示例:随机图案
将一个选区用随机分布的多种石头填充:
//set stone,diorite,andesite,granite
将一个选区用大部分红色羊毛、小部分比例的玻璃(5:1的比例,见下文)填充:
//set 50%red_wool,10%red_stained_glass
信息
除了以百分号标注外,权重相加之和还需要等于 100。它们是累积性的,且会自动分配。也就是说,5%dirt,15%stone
意味着 25% 的方块为泥土,而 75% 的方块为石头。换句话说,权重实际占比与各个图案的权重相关联,而不与 100 的比值挂钩。正因如此,单独的5%dirt
图案是无效的。如果你只想要将区域内 5% 的方块修改为泥土,则你需要使用“噪声蒙版”。
提示
你可以使用任意图案自由搭配,而不仅仅是单方块图案。继续阅读本文可以了解更多图案...
随机状态图案
在任意方块名称的前方加上英文星号(*
)会随机选择每个位置上对应方块的状态。
示例:随机状态图案
将以一个选区用随机朝向的橡木原木填充:
//set *oak_log
剪贴板图案
#clipboard
图案会从你的剪贴板中复制内容作为填充的图案。这意味着用户可以通过这个功能快速完成建造一部分繁杂的建筑任务,并将它不限次数地重复。你也可以通过参数 @[x,y,z]
让图案偏移。
示例:使用剪贴板图案
将一个选区内所有的方块都替换成剪贴板的内容:
//replace #existing #clipboard
使用图 1 的结构将小山的部分方块替换,注意图片中重复的方块。
使用偏移对齐剪贴板的内容:
//set #clipboard@[2,0,1]
种类或状态修改图案[3]
若要使用该图案,则参数需以 ^
符号开头。这允许你直接设置方块的状态或种类而无需修改其他内容。例如,这个图案,会允许你将橡木楼梯修改为金合欢木楼梯而不改变其朝向等内容。你也可以指定一个方块种类(在允许的情况下,修改方块而不是状态),或是任意数量的状态(在允许的情况下,只修改方块的状态而不改变方块种类本身)
示例:种类/状态应用图案
将一个选区内的所有橡木楼梯替换为金合欢木楼梯,而不改变其它状态,如:
//replace oak_stairs ^acacia_stairs
将一个选区内所有含水的方块更换为不含水的状态:
//set ^[waterlogged=false]
将所有台阶替换为两两叠加的完整方块:
//replace ##slabs ^[type=double]
方块类型图案
这个图案允许放置指定类型方块中的随机一种方块,这些类型的名称一般称为“标签”。“标签”允许将一些方块用一个名称归为一组。Minecraft 本身有许多自带这些标签的方块(见链接),也允许用户通过数据包修改或添加这些标签。你可能已经注意到上一个示例中已经将其以蒙版应用在了命令中(##slabs
,即所有的半砖类方块)。
这类图案的格式为 ##<标签名称>
,这会随机地在带有该标签的一类方块中选择。你也可以将这个图案与上文提及的随机状态图案混用,如同 ##*<标签名称>
来使用随机状态下的方块,而不仅仅是默认状态的方块。
示例:方块分类图案用法
将一个选区内的所有方块替换为各色的羊毛:
//replace #existing ##wool
将一个选区内以随机种类的台阶,包括但不限于上/下/全半砖替换,且随机设置为含水状态:
//set ##*slabs
特殊方块数据格式
一些方块有额外的格式,用以设置特殊内容。
告示牌文本
你可以以英文竖杠符号(|
)为分隔,设置告示牌上的文本。需要注意的是,如果文本有空格,则你必须将图案中的文本用英文双引号(""
)括起。
示例:设置告示牌文本
简单示例:
//set oak_sign|第一行文本|第二行文本
带有空格和指定的朝向:
//set "oak_wall_sign[facing=north]|你好 世界|第二行|第三行文本"
玩家头颅
你可以通过英文竖杠设置图案中玩家头颅所使用的皮肤头颅。
示例:设置头颅上的皮肤
//set player_head|dinnerbone
刷怪笼
你可以设置刷怪笼所生成的实体(通过英文竖杠,格式见下)。需要注意的是实体的名称必须为有效的实体 ID。前缀 minecraft: 是可选填入的,如果你的服务器是模组服且需要用到模组实体,则必须指定其命名空间。
示例:创建一个鱿鱼刷怪笼
//set spawner|squid
另见
- ff98sha, 2023.11.11,《中文 Minecraft Wiki 现已迁移至 zh.minecraft.wiki》, https://www.mcbbs.net/thread-1476946-1-1.html