第189章 ,/.

Minecraft指令手册 你好MC 2852 字 21小时前

前十二章,我们详细地了解了生物的共通NBT以及NBT格式。但别忘了,本卷的名字叫做:

实体与NBT

所以接下来,我们就要回归正题。

——第一节:关于下落的方块这个大类只有一种实体这档事

在第一百二十九章里,我们知道了很多关于实体的东东。比如:下落的方块是个实体。

但有没有人想过这么一个问题:

我在对下落的方块这种实体举例子的时候,为什么举了一个“下落的方块”实体的例子?

深入思考的话,我们就会得出一个神奇的结论:下落的方块这种实体只有一个实体——下落的方块(FallingSand[1.13之前]、falling_block[1.13及之后])

所以这就可以解释你在用kill清除实体时,就不会跳出来“下落的沙子”了,更不会跳出来“沙子”(因为这名字已经被掉落物占了),而是统一“下落的方块”。因为人家变成实体之后就统一成了一个实体。

再深入思考,我们又会得到一个问题:

统一成一个实体后,下落的方块是如何确定自身到底是什么方块的?

为了解决这个问题,我们可以回顾一下第一百零八章到第一百零九章对掉落物的介绍,就会得出一个对掉落物确定自己到底是什么物品的方法的结论:

用NBT存储物品的信息

按理来说,用实验法来研究生物,得出结论后也就差不多了。但我们不是在进行一个生物实验,而是在学习NBT。况且,就算我们这是一本生物书,生物学它本身也是一个:

...→观察并思考→提出问题→收集资料→作出假设→制定实验计划→实施实验并记录→得出结果→研究并思考→提出新的问题→...

所以我们可以研究这个结论,并提出一个新的问题:

为什么掉落物要用NBT来存储物品的信息呢,而不用item_<物品ID>这样子每个物品的掉落物都有一个对应的单独实体?

答案很简单:

①Mojang这个喜欢3的家伙很懒(主要原因)

②如果这样子做的话虽然也能达到目的,但游戏会更大

深入思考,我们还会得出一个震惊的结论:

这样子的话,那么掉落物这个大类也只有一个实体唉:掉落物

实际上还真是这样的,掉落物确实只有一个实体:minecraft:item

(注意!minecraft:item_frame这个实体实际上是物品展示框,而不是掉落物)

得出了这些结论,我们再来看看下落的方块。刚才我们发现下落的方块只有一个实体:下落的方块。这说明了什么?

下落的方块也是使用NBT来存储方块的信息。

这就是上面那个问题的答案。

——第二节:下落的方块的NBT

下落的方块中存储着方块信息的NBT是:

BlockState(复合标签)

意思是:Block(方块)State(状态)

这个复合标签里有两个重要的东西:

Name(字符串):这个正在下落的方块的ID

Properties(复合标签):可选,这个正在下落的方块的方块状态

举个例子。比如,现在这里有一个沙子被炸飞了,那么它的BlockState很有可能是:

{BlockState:{Name:“minecraft:sand“}}

Properties这个先不管,方块状态等我们以后讲到你就立马会了。

我们可以使用/summon minecraft:falling_block(1.11及之后,之前为/summon minecraft:FallingSand)来生成一个下落的方块。按照生成掉落物的经验,我们就可以搞出一些神奇的东西,比如:

/summon minecraft:falling_block ~~~{BlockState:{Name:“minecraft:diamond_block“}}

执行它,你的下半身就会立马被一个钻石块包裹。然后这个钻石块开始下落,接着就消失了!

如果你用循环命令方块来执行,建议你稍微改一下指令:

/summon minecraft:falling_block ~~2 ~{BlockState:{Name:“minecraft:diamond_block“}}

开启!你就会发现你搞出来了一个不断在空中振动(???)的没有碰撞箱(???)的钻石块(???)。