package cn.nukkit.entity.projectile; import cn.nukkit.Player; import cn.nukkit.entity.Entity; import cn.nukkit.level.format.FullChunk; import cn.nukkit.nbt.tag.CompoundTag; import cn.nukkit.network.protocol.AddEntityPacket; /** * author: MagicDroidX * Nukkit Project */ public class EntityEgg extends EntityProjectile { public static final int NETWORK_ID = 82; @Override public int getNetworkId() { return NETWORK_ID; } @Override public float getWidth() { return 0.25f; } @Override public float getLength() { return 0.25f; } @Override public float getHeight() { return 0.25f; } @Override protected float getGravity() { return 0.03f; } @Override protected float getDrag() { return 0.01f; } public EntityEgg(FullChunk chunk, CompoundTag nbt) { this(chunk, nbt, null); } public EntityEgg(FullChunk chunk, CompoundTag nbt, Entity shootingEntity) { super(chunk, nbt, shootingEntity); } @Override public boolean onUpdate(int currentTick) { if (this.closed) { return false; } boolean hasUpdate = super.onUpdate(currentTick); if (this.age > 1200 || this.isCollided) { this.kill(); hasUpdate = true; } return hasUpdate; } @Override public void spawnTo(Player player) { AddEntityPacket pk = new AddEntityPacket(); pk.type = EntityEgg.NETWORK_ID; pk.entityUniqueId = this.getId(); pk.entityRuntimeId = this.getId(); pk.x = (float) this.x; pk.y = (float) this.y; pk.z = (float) this.z; pk.speedX = (float) this.motionX; pk.speedY = (float) this.motionY; pk.speedZ = (float) this.motionZ; pk.metadata = this.dataProperties; player.dataPacket(pk); super.spawnTo(player); } }