第一中文网

第一百五十八章 重新认识nbt (第2/4页)

天才一秒记住【第一中文网】地址:www.dyzww.cc

,『一个节点』也只能有『一个值』。因此,如果我们再一次看向『Sama』节点的路径『Apple.cen.Sama』,我们就会发现『Apple.cen.Sama』既可以用来表示『Sama』节点,也可以用来表示『Sama』节点的值。(只不过Sama节点的值是空的)

又比如说,路径『Apple.cen』既表示节点『cen』,也表示节点『cen』的值——从『cen』节点长出的树干以及上面的『Sama』节点。

看起来像『节点.节点』这样的路径解决了寻找节点以及节点的值的问题,但如果『Apple』节点又长出了一条新的树干,这条新的树干上又有一个节点『touhou』该怎么办(图158-4)?此时『Sama』节点的路径又该如何表示?

很明显,现在『Apple』节点长出了两条树干(另外两条是贯穿Apple节点的从根长出来的主干,其实是一条,不要搞错了),我们需要有一个正确的方式来表示这两条树干。比如我们可以取名字,但这似乎过于麻烦了,而且容易把树干和节点搞混。最好也最简单的方法就是给树干编『号数』,也就是使用索引(index)。

将节点『cen』所在的树干编上索引0,那条新的树干编上1,然后我们只需要在路径中的『Apple』后面,『.』前面加上树干的索引,就大功告成了:

Apple[0].cen.Sama

其中,[0]指的就是索引为0的树干,也就是『cen』节点所在的那一条。通过这种方法,我们也可以表示『touhou』节点:

Apple[1].touhou

不过,这些东西跟Nbt有什么关系呢?

这个问题问得好。现在,让我们再来看看另外一颗树(图158-5):

├id:“minecraft:jukebox“

├Isplaying: 1b

├ RecordItem:

│├count: 1b

││

│└id:“minecraft:music_disc_ward“

├x:-1

├y: 60

├z:-53

├RecordStarttick: 0L

└tickcount: 514L

仔细看这东西,你有没有发现?

如果没有发现,那让我们把这棵树的形态转化一下,变成:

{id:“minecraft:jukebox“,x:-1,y:60,z:-53, Isplaying :1b, RecordItem :{count:1b,id:“minecraft:music_disc_ward“}, RecordStarttick:0L, tickcount:514L}

这不就是SNbt吗?

没错,上面那棵树,其实就是下面这个SNbt的Nbt形式,游戏所看到的Nbt就长这个模样。

这棵Nbt其实就是一个放在(-1,60,-53)的唱片机的方块实体。我们会在第十八卷具体了解到方块以及方块实体的内容,在这边你只需要将方块实体当作是方块Nbt即可。从这棵Nbt中,我们和游戏都可以得知,这个唱片机此时正在播放(Isplaying)ward唱片(RecordItem),并且已经播放了25.7秒(tickcount),这个唱片机在此之前没有播放过任何唱片(Rec

本章未完,请点击下一章继续阅读!若浏览器显示没有新章节了,请尝试点击右上角↗️或右下角↘️的菜单,退出阅读模式即可,谢谢!

如遇章节错误,请点击报错(无需登陆)

新书推荐

都市超品仙医 活在两个世界 大秦:这个太子总想着造反 与其说瞎话不如 穿越万界:神功自动满级 诛神乾坤 多子多福,仙女都被他抢了怎么办