天才一秒记住【第一中文网】地址:www.dyzww.cc
在上一章,你应该已经理解了什么叫作Nbt树,但理解不代表会运用。要真正搞懂Nbt树的理念,我们得投入实践,学会阅读Nbt树甚至表示出一个Nbt树。
Nbt数据树常常会表示成下面这样的格式:
<数据类型>[root或其他具体名称]:根、父级标签或其他具体的名称或描述
│
├<数据类型>[名称]:值或描述
......
└<数据类型>[名称]:值或描述
注:在上面的格式中,<>代表必定会出现,[]代表可能会出现(含义跟指令格式中的一样)。
许多网站和程序,比如minecraft wiki、常用的Java版Nbt编辑器NbtExplorer,都采用了上述格式来表示Nbt。
举个简单的例子,在minecraft wiki上,Java版书与笔的物品Nbt是这么表示出来的:
? tag:父级标签
└? pages:书与笔的各个页面。
空└?:一个单页。每一页是一个字符串,不能超过个字符。
在上面的这个例子中,由于minecraft wiki使用一个图片标识来表示数据类型,所以这里用一些特殊符号来代替:
?——pound复合标签
?——List列表
?——String字符串
仔细观察minecraft wiki给出的Nbt树,结合我们前面所学的知识,你应该不难得出上面这个例子所表示的意思:
『对于物品书与笔,在其物品Nbt标签中的tag复合标签下,有一个名为pages的列表型标签。这个pages列表是一个由多个字符串类型的值组成的列表,每个值都代表着书与笔中的一页,且每个值都不得拥有超过个字符。』
什么?你很难理解?或许我们需要睁大眼睛,逐行研究上面的例子。
第一行:? tag:父级标签
根据上面的格式『<数据类型>[root或其他具体名称]:根、父级标签或其他具体的名称或描述』,我们不难知道这在表示一个名为tag的复合标签。同时,它被解释为『父级标签』,说明minecraft wiki在这里给出的Nbt树是在描述这个标签的孩子(也就是值)。
等等,为什么minecraft wiki不直接从根开始,而是从这个tag标签开始呢?
回忆一下第十一卷的内容,tag标签是物品通用标签内的一个标签,用来储存物品的额外信息。所有额外的物品标签都在tag标签内,因此minecraft wiki不从根开始描述的原因也就不难理解——使文章详略得当。
问题解决,我们来看看第二行:└? pages:书与笔的各个页面。
最开始的└意味着在这里,Nbt数据树的这条树枝上有一个节点,而且由于└没有继续向下延伸,因此这个节点是该树枝上最后一个节点。第二个?代表的意思很明确,即该节点对应的Nbt标签是个列表。『pages』是该列表的标签名,而后面的『书与笔的各个页面。』是对该标签的一个描述。
第三行更加简单:└?:一个单页。每一页是一个字符串,不能超过个字符。
最开始的└不用说,?估计也不用说。但?后面的标签名称呢?
还是那句话,这是个列表,列表是由多个相同类型的值组成,而不是标签。换句话说,这部分Nbt树实际上描述的不是个标签,而是个值,自然也就不需要给出名称,因为没有名称。
冒号右
本章未完,请点击下一章继续阅读!若浏览器显示没有新章节了,请尝试点击右上角↗️或右下角↘️的菜单,退出阅读模式即可,谢谢!