/**
* Gets called every tick from main Entity class
*/
public void onEntityUpdate()
{
this.prevSwingProgress = this.swingProgress;
super.onEntityUpdate();
this.worldObj.theProfiler.startSection("livingEntityBaseTick");
boolean flag = this instanceof EntityPlayer;
if (this.isEntityAlive())
{
if (this.isEntityInsideOpaqueBlock())
{
this.attackEntityFrom(DamageSource.inWall, 1.0F);
}
else if (flag && !this.worldObj.getWorldBorder().contains(this.getEntityBoundingBox()))
{
double d0 = this.worldObj.getWorldBorder().getClosestDistance(this) + this.worldObj.getWorldBorder().getDamageBuffer();
if (d0 < 0.0D)
{
this.attackEntityFrom(DamageSource.inWall, (float)Math.max(1, MathHelper.floor_double(-d0 * this.worldObj.getWorldBorder().getDamageAmount())));
}
}
}
if (this.isImmuneToFire() || this.worldObj.isRemote)
{
this.extinguish();
}
boolean flag1 = flag && ((EntityPlayer)this).capabilities.disableDamage;
if (this.isEntityAlive())
{
if (this.isInsideOfMaterial(Material.water))
{
if (!this.canBreatheUnderwater() && !this.isPotionActive(Potion.waterBreathing.id) && !flag1)
{
this.setAir(this.decreaseAirSupply(this.getAir()));
if (this.getAir() == -20)
{
this.setAir(0);
for (int i = 0; i < 8; ++i)
{
float f = this.rand.nextFloat() - this.rand.nextFloat();
float f1 = this.rand.nextFloat() - this.rand.nextFloat();
float f2 = this.rand.nextFloat() - this.rand.nextFloat();
this.worldObj.spawnParticle(EnumParticleTypes.WATER_BUBBLE, this.posX + (double)f, this.posY + (double)f1, this.posZ + (double)f2, this.motionX, this.motionY, this.motionZ, new int[0]);
}
this.attackEntityFrom(DamageSource.drown, 2.0F);
}
}
if (!this.worldObj.isRemote && this.isRiding() && this.ridingEntity instanceof EntityLivingBase)
{
this.mountEntity((Entity)null);
}
}
else
{
this.setAir(300);
}
}
if (this.isEntityAlive() && this.isWet())
{
this.extinguish();
}
this.prevCameraPitch = this.cameraPitch;
if (this.hurtTime > 0)
{
--this.hurtTime;
}
if (this.hurtResistantTime > 0 && !(this instanceof EntityPlayerMP))
{
--this.hurtResistantTime;
}
if (this.getHealth() <= 0.0F)
{
this.onDeathUpdate();
}
if (this.recentlyHit > 0)
{
--this.recentlyHit;
}
else
{
this.attackingPlayer = null;
}
if (this.lastAttacker != null && !this.lastAttacker.isEntityAlive())
{
this.lastAttacker = null;
}
if (this.entityLivingToAttack != null)
{
if (!this.entityLivingToAttack.isEntityAlive())
{
this.setRevengeTarget((EntityLivingBase)null);
}
else if (this.ticksExisted - this.revengeTimer > 100)
{
this.setRevengeTarget((EntityLivingBase)null);
}
}
this.updatePotionEffects();
this.prevMovedDistance = this.movedDistance;
this.prevRenderYawOffset = this.renderYawOffset;
this.prevRotationYawHead = this.rotationYawHead;
this.prevRotationYaw = this.rotationYaw;
this.prevRotationPitch = this.rotationPitch;
if(this == Minecraft.getMinecraft().thePlayer) {
this.prevRotationYawHead = PlayerHandler.yaw;
PlayerHandler.prevPitch = PlayerHandler.pitch;
}
this.worldObj.theProfiler.endSection();
}