用户:MashKJo/1.12.2模组开发教程/8.NBT系统的使用

MashKJo留言 | 贡献2024年12月9日 (一) 16:55的版本 (创建页面,内容为“NBT是什么?首先,我们先引用一段Minecraft Wiki上对NBT的介绍。 {{quote|'''NBT(二进制命名标签''','''N'''amed'''B'''inary '''T'''ags''')'''格式是一种由众多的'''标签'''所组成的树状数据结构。在Minecraft中,其被广泛用于向存档文件中存储数据。所有的标签都有一个独立的数字ID和名称,以及一个负载。 另一种玩家更熟悉的是字符串形式的NBT,通常在命令里使…”)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)

NBT是什么?首先,我们先引用一段Minecraft Wiki上对NBT的介绍。

NBT(二进制命名标签NamedBinary Tags格式是一种由众多的标签所组成的树状数据结构。在Minecraft中,其被广泛用于向存档文件中存储数据。所有的标签都有一个独立的数字ID和名称,以及一个负载。

另一种玩家更熟悉的是字符串形式的NBT,通常在命令里使用。这种格式常被称为SNBT(字符串化的二进制命名标签,Stringified NBT)。

字符串形式的NBT很像序列化之后的JsonElement,实际上NBT系统的设计确实和Gson有许多相似之处。

所有NBT类的基类是NBTBase类,而NBTBase的继承树如下:

\-NBTBase
 \-NBTPrimitive
  |-NBTTagByte
  |-NBTTagDouble
  |-NBTTagFloat
  |-NBTTagInt
  |-NBTTagLong
  |-NBTTagShort
 |-NBTTagByteArray
 |-NBTTagCompound
 |-NBTTagEnd
 |-NBTTagIntArray
 |-NBTTagList
 |-NBTTagLongArray
 |-NBTTagString