这一章原本是第六十四章的番外,但由于内容感觉十分水就去掉了。
所以这里就变成了多出来一章,写什么呢?
这一章我们不妨来填一下一些之前挖的坑。
我们在第二十六章讲到family参数时,提到了这么一句话:
『记分板、NBT和标签可以很好的解决这个问题。但在了解这三个东西之前,我们暂且没有除多弄命令方块以外的更好的办法。』
计分板我们已经了解过了,NBT我们会在100章开始进入正式学习阶段。
那么这个『标签』是什么东西?计分板标签吗?
我们知道,Minecraft Java版可以装上各种第三方的模组加载器(Mod Loader),其中最出名的就是Minecraft Forge。在Minecraft1.13版本更新之前,Minecraft Forge内有一个重要的系统:矿物词典(OreDictionary)。
『矿物词典』又是什么鬼?这跟『标签』有什么关系?
Minecraft Forge官方文档中对『矿物词典』的定义如下:
『矿物词典(OreDictionary)主要是为了Mod间兼容而存在。
已注册到矿物词典的物品将能够代替其它拥有相同矿物词典名的物品。这样就可以使用以上任一物品合成相同的结果。
虽然名字是“矿物(Ore)”词典,但是它也可以使用在非矿物的物品上。只要一个物品与另一个物品(比如染料)相似,就都可以注册进矿物词典,并通过矿物词典调用。』
举个例子,在工业时代2(Industrial Craft 2)模组中添加了铜锭,沉浸工程(Immersive Engineering)模组中也添加了铜锭,这两个铜锭由于是不同模组所添加的,所以是不同的物品,这就导致一个问题:
假如我死活搞不到工业时代2的铜锭,只能搞到沉浸工程的铜锭,既然都是铜锭,为什么就不能通用啊!!!我还想造IC2的机器呢!!!
于是,矿物词典就来了。沉浸工程的开发者只需要给自家的铜锭添加上一个铜锭的矿物词典(ingotCopper),工业时代2的开发者也只需要给自家的铜锭添加上一样的矿物词典(ingotCopper),然后你就会惊喜地发现,两边的铜锭可以通用了!
当然,实际情况肯定比这更加复杂,只不过我们又不开发模组,干嘛要去管这些更深层次的东西。我们只需要知道:
不同模组类似的物品可以注册到同一个矿物词典中,来使得不同模组的类似物品能够通用。
那么标签又是什么呢?
MC百科(mcmod.cn)中对标签的解释如下:
『数据包中的标签(Tag)允许玩家使用JSON文件将物品、方块、流体、实体类型和函数分组,标签在原版 1.13 及以上版本中替代了矿物词典的功能。』
需要注意,这里的原版指的是Minecraft Java版,基岩版并没有什么矿物词典和这种类型的标签。
看起来很高端的样子啊?但其实这标签仅仅是一个官方逼死第三方的更高端的『矿物词典』。
和矿物词典一样,不同的物品也可以注册到同一个标签中,来使得不同模组的类似物品能够通用。
但在之前,矿物词典最多也仅仅能让物品在工作台中、熔炉中等特定功能性方块中才能通用,官方的标签却更上一层楼,使得类似物品几乎能在任何地方通用!
比如你可以给你自己开发的箭添加上arrows标签,你这个物品就可以被原版的弓和弩射出去;你可以给你自己的食物添加上fox_food标签,这个食物就可以被喂食给狐狸......
但官方的格局可不止仅仅限制在物品中,让我们把格局打开一点,你就会发现官方让Minecraft中的其他东西也能够用上标签来使得其他东西也能够通用。这些『其他东西』一共有十四类,加上物品就十五类了,包括:方块、实体、流体、游戏事件、物品、猫、生物群系、超平坦模式生成器配置、结构、世界预设、画种类、旗帜图案、乐器、兴趣点和函数。
标签在这些其他东西上的运作方式也一样:具有同一个标签的东西,就可以具有同样的功能或性质。
比如拥有frog_food标签的实体,就会被青蛙当成食物来吃;拥有lava标签的流体,就会具有岩浆的功能;拥有tick标签的函数,会在每游戏刻开始时运行;拥有village标签的结构,会像村庄一样生成......
讲了那么多,那这跟指令有什么关系呢?
回到最开始的那句话:『记分板、NBT和标签可以很好的解决这个问题。但在了解这三个东西之前,我们暂且没有除多弄命令方块以外的更好的办法。』
这章没有结束,请点击下一页继续阅读!
喜欢Minecraft指令手册请大家收藏:(m.2yq.org)Minecraft指令手册爱言情更新速度全网最快。