{Health:4.65,AbsorptionAmount:0,HurtTime:16}
说明这个生物发红已经持续16刻了。
这个标签是控制生物的发红时间的,我们不需要太深入研究。
而另外一个标签:
HurtByTimestamp(值:数值)
和HurtTime也与伤害有关,只不过这个标签记录的是“距离该生物上次受到伤害的时间”,单位也是刻,比如:
{Health:6,HurtByTimestamp:853,HurtTime:0}
就说明该生物距离上次受到伤害已经过去853刻的时间了。
真的是这么理解的吗?
实际上还有另外一种理解方式:
就说明该生物距离生成或出生已经过去853刻的时间了。
没错,如果该生物这生还没受到伤害,那么这个值将会记录它已经出生或生成多久了。
而当该生物死亡了呢?
如果这个生物不是玩家的话,那就没了。
但如果是玩家,实际上生物的共通NBT里有这么一个标签:
DeathTime(值:数值)
这对于生物本身没什么用,但它在玩家的NBT里就有用了——它记录者玩家距离上次死亡多久了,主要是用于控制死亡动画,单位当然也是刻。
这个标签我们当然不需要深究,但我们却可以思考一个问题:
为什么生物的NBT里有这个玩家才用得到的标签呢?
答案很不简单,作者猜是这样的:
上古时期(JAVA-Classic),贫瘠的Minecraft迎来了第一个生命——人类。这个神奇的生物不会饥饿,不会口渴,更不会死亡。它们会在世界里乱跑,乱跳。正是因为它们的存在,Minecraft才出现了树、史蒂夫、羊、牛、鸡等物种,给这片本来贫瘠的大地带来勃勃生机。
(哎作者,Minecraft的第一个生命不是草吗?)
所以玩家是由生物进化而来的,自然而然玩家就遗传了生物的DNA(NBT)。
嗯,这样子就解释得通了。
OK生物的共通NBT就先讲到这,我们下章再见!