package net.minecraft.entity.passive; import net.minecraft.entity.EntityLiving; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.util.DamageSource; import net.minecraft.world.World; public abstract class EntityWaterMob extends EntityLiving implements IAnimals { private static final String __OBFID = "CL_00001653"; public EntityWaterMob(World worldIn) { super(worldIn); } public boolean canBreatheUnderwater() { return true; } /** * Checks if the entity's current position is a valid location to spawn this entity. */ public boolean getCanSpawnHere() { return true; } /** * Whether or not the current entity is in lava */ public boolean handleLavaMovement() { return this.worldObj.checkNoEntityCollision(this.getEntityBoundingBox(), this); } /** * Get number of ticks, at least during which the living entity will be silent. */ public int getTalkInterval() { return 120; } /** * Determines if an entity can be despawned, used on idle far away entities */ protected boolean canDespawn() { return true; } /** * Get the experience points the entity currently has. */ protected int getExperiencePoints(EntityPlayer p_70693_1_) { return 1 + this.worldObj.rand.nextInt(3); } /** * Gets called every tick from main Entity class */ public void onEntityUpdate() { int var1 = this.getAir(); super.onEntityUpdate(); if (this.isEntityAlive() && !this.isInWater()) { --var1; this.setAir(var1); if (this.getAir() == -20) { this.setAir(0); this.attackEntityFrom(DamageSource.drown, 2.0F); } } else { this.setAir(300); } } public boolean isPushedByWater() { return false; } }