又比如说,路径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“
├IsPying──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,IsPying:1b,RecordItem:{Count:1b,id:“minecraft:music_disc_ward“},RecordStartTick:0L,TickCount:514L}
这不就是SNBT吗?
没错,上面那棵树,其实就是下面这个SNBT的NBT形式,游戏所看到的NBT就长这个模样。
这棵NBT其实就是一个放在(-1,60,-53)的唱片机的方块实体。我们会在第十八卷具体了解到方块以及方块实体的内容,在这边你只需要将方块实体当作是方块NBT即可。从这棵NBT中,我们和游戏都可以得知,这个唱片机此时正在播放(IsPying)ward唱片(RecordItem),并且已经播放了25.7秒(TickCount),这个唱片机在此之前没有播放过任何唱片(RecordStartTick)。
你可以在MinecraftWiki上搜索唱片机来具体了解上述标签的作用,NBT都讲到这了你应该不可能看不懂MinecraftWiki上关于NBT的内容吧?
本章节尚未完结,共3页当前第2页,请点击下一页继续阅读------>>>