📜  为什么arnt僵尸攻击海龟蛋 (1)

📅  最后修改于: 2023-12-03 14:48:55.781000             🧑  作者: Mango

为什么僵尸不攻击海龟蛋?

在 Minecraft 中,僵尸晚上会出现并攻击玩家和生物,但是它们不会攻击海龟蛋。原因如下:

1. 僵尸的目标

僵尸会攻击生物和玩家,以获得食物和杀死潜在的威胁。海龟蛋并不是它们的目标,因为它们不会给僵尸提供食物(即使它们可以摧毁蛋)。

2. 海龟蛋的保护机制

海龟蛋有一个独特的保护机制。当它们被放置在沙子或红色沙子上时,它们会生长直到孵化为幼小的海龟。它们还可以通过非常快速的爆炸来保护自己,使得攻击它们的生物骨头受到惩罚。这也可能是为什么僵尸不攻击海龟蛋的原因之一。

3. 代码解释

在 Minecraft 的代码中,海龟蛋有特殊的气味,这样它们就可以吸引动物,这是一个助长它们生长和出生的因素。这种气味还可以使生物停止攻击蛋。以下是 Minecraft 的代码片段:

public boolean isEgg(ItemStack stack) {
    return stack.getItem() instanceof ItemTurtleEgg;
}

public boolean shouldAttackEntity(Entity entity, LivingEntity target) {
    if (target instanceof Player || target instanceof Turtle || target instanceof AbstractFishEntity) {
        return true;
    } else if (target instanceof AgeableEntity && ((AgeableEntity) target).getGrowingAge() < 0) {
        return true;
    } else {
        return this.isEgg(target.getItemStackFromSlot(EquipmentSlotType.HELMET)) || 
               this.isEgg(target.getItemStackFromSlot(EquipmentSlotType.CHEST)) || 
               this.isEgg(target.getItemStackFromSlot(EquipmentSlotType.LEGS)) ||
               this.isEgg(target.getItemStackFromSlot(EquipmentSlotType.FEET));
    }
}
结论

总之,僵尸不会攻击海龟蛋的主要原因是它们不是僵尸的目标,而且海龟蛋还有一些独特的保护机制,可以吸引动物并快速成长。