Java 类net.minecraft.util.DamageSource 实例源码
项目:DecompiledMinecraft
文件:EntityWitch.java
/**
* Reduces damage, depending on potions
*/
protected float applyPotionDamageCalculations(DamageSource source, float damage)
{
damage = super.applyPotionDamageCalculations(source, damage);
if (source.getEntity() == this)
{
damage = 0.0F;
}
if (source.isMagicDamage())
{
damage = (float)((double)damage * 0.15D);
}
return damage;
}
项目:Halloween
文件:EntityFakeHusk.java
@Override
public boolean attackEntityFrom(DamageSource source, float amount)
{
Entity entity = source.getTrueSource();
boolean takenDamage = super.attackEntityFrom(source, amount);
if (takenDamage && entity != null)
{
this.playSound(ModSoundEvents.ENTITY_FAKE_FADE, 1.0F, ((rand.nextFloat() - rand.nextFloat()) * 0.1F) + 1.0F);
this.spawnExplosionParticle();
this.spawnExplosionParticle(); // TODO - examine why this is being fired twice - twice as many particles?
this.setDead();
}
return takenDamage;
}
项目:BaseClient
文件:EntityGuardian.java
/**
* Called when the entity is attacked.
*/
public boolean attackEntityFrom(DamageSource source, float amount)
{
if (!this.func_175472_n() && !source.isMagicDamage() && source.getSourceOfDamage() instanceof EntityLivingBase)
{
EntityLivingBase entitylivingbase = (EntityLivingBase)source.getSourceOfDamage();
if (!source.isExplosion())
{
entitylivingbase.attackEntityFrom(DamageSource.causeThornsDamage(this), 2.0F);
entitylivingbase.playSound("damage.thorns", 0.5F, 1.0F);
}
}
this.wander.makeUpdate();
return super.attackEntityFrom(source, amount);
}
项目:DecompiledMinecraft
文件:EntityXPOrb.java
/**
* Called when the entity is attacked.
*/
public boolean attackEntityFrom(DamageSource source, float amount)
{
if (this.isEntityInvulnerable(source))
{
return false;
}
else
{
this.setBeenAttacked();
this.xpOrbHealth = (int)((float)this.xpOrbHealth - amount);
if (this.xpOrbHealth <= 0)
{
this.setDead();
}
return false;
}
}
项目:BaseClient
文件:EntityMinecartTNT.java
/**
* Called when the entity is attacked.
*/
public boolean attackEntityFrom(DamageSource source, float amount)
{
Entity entity = source.getSourceOfDamage();
if (entity instanceof EntityArrow)
{
EntityArrow entityarrow = (EntityArrow)entity;
if (entityarrow.isBurning())
{
this.explodeCart(entityarrow.motionX * entityarrow.motionX + entityarrow.motionY * entityarrow.motionY + entityarrow.motionZ * entityarrow.motionZ);
}
}
return super.attackEntityFrom(source, amount);
}
项目:Backmemed
文件:EntityWitherSkeleton.java
/**
* Called when the mob's health reaches 0.
*/
public void onDeath(DamageSource cause)
{
super.onDeath(cause);
if (cause.getEntity() instanceof EntityCreeper)
{
EntityCreeper entitycreeper = (EntityCreeper)cause.getEntity();
if (entitycreeper.getPowered() && entitycreeper.isAIEnabled())
{
entitycreeper.incrementDroppedSkulls();
this.entityDropItem(new ItemStack(Items.SKULL, 1, 1), 0.0F);
}
}
}
项目:BaseClient
文件:EntityLivingBase.java
public void fall(float distance, float damageMultiplier)
{
super.fall(distance, damageMultiplier);
PotionEffect potioneffect = this.getActivePotionEffect(Potion.jump);
float f = potioneffect != null ? (float)(potioneffect.getAmplifier() + 1) : 0.0F;
int i = MathHelper.ceiling_float_int((distance - 3.0F - f) * damageMultiplier);
if (i > 0)
{
this.playSound(this.getFallSoundString(i), 1.0F, 1.0F);
this.attackEntityFrom(DamageSource.fall, (float)i);
int j = MathHelper.floor_double(this.posX);
int k = MathHelper.floor_double(this.posY - 0.20000000298023224D);
int l = MathHelper.floor_double(this.posZ);
Block block = this.worldObj.getBlockState(new BlockPos(j, k, l)).getBlock();
if (block.getMaterial() != Material.air)
{
Block.SoundType block$soundtype = block.stepSound;
this.playSound(block$soundtype.getStepSound(), block$soundtype.getVolume() * 0.5F, block$soundtype.getFrequency() * 0.75F);
}
}
}
项目:CustomWorldGen
文件:Potion.java
public void affectEntity(@Nullable Entity source, @Nullable Entity indirectSource, EntityLivingBase entityLivingBaseIn, int amplifier, double health)
{
if ((this != MobEffects.INSTANT_HEALTH || entityLivingBaseIn.isEntityUndead()) && (this != MobEffects.INSTANT_DAMAGE || !entityLivingBaseIn.isEntityUndead()))
{
if (this == MobEffects.INSTANT_DAMAGE && !entityLivingBaseIn.isEntityUndead() || this == MobEffects.INSTANT_HEALTH && entityLivingBaseIn.isEntityUndead())
{
int j = (int)(health * (double)(6 << amplifier) + 0.5D);
if (source == null)
{
entityLivingBaseIn.attackEntityFrom(DamageSource.magic, (float)j);
}
else
{
entityLivingBaseIn.attackEntityFrom(DamageSource.causeIndirectMagicDamage(source, indirectSource), (float)j);
}
}
}
else
{
int i = (int)(health * (double)(4 << amplifier) + 0.5D);
entityLivingBaseIn.heal((float)i);
}
}
项目:BaseClient
文件:EntityLivingBase.java
public void fall(float distance, float damageMultiplier)
{
super.fall(distance, damageMultiplier);
PotionEffect potioneffect = this.getActivePotionEffect(Potion.jump);
float f = potioneffect != null ? (float)(potioneffect.getAmplifier() + 1) : 0.0F;
int i = MathHelper.ceiling_float_int((distance - 3.0F - f) * damageMultiplier);
if (i > 0)
{
this.playSound(this.getFallSoundString(i), 1.0F, 1.0F);
this.attackEntityFrom(DamageSource.fall, (float)i);
int j = MathHelper.floor_double(this.posX);
int k = MathHelper.floor_double(this.posY - 0.20000000298023224D);
int l = MathHelper.floor_double(this.posZ);
Block block = this.worldObj.getBlockState(new BlockPos(j, k, l)).getBlock();
if (block.getMaterial() != Material.air)
{
Block.SoundType block$soundtype = block.stepSound;
this.playSound(block$soundtype.getStepSound(), block$soundtype.getVolume() * 0.5F, block$soundtype.getFrequency() * 0.75F);
}
}
}
项目:Backmemed
文件:EntityEnderman.java
protected void updateAITasks()
{
if (this.isWet())
{
this.attackEntityFrom(DamageSource.drown, 1.0F);
}
if (this.world.isDaytime() && this.ticksExisted >= this.targetChangeTime + 600)
{
float f = this.getBrightness(1.0F);
if (f > 0.5F && this.world.canSeeSky(new BlockPos(this)) && this.rand.nextFloat() * 30.0F < (f - 0.4F) * 2.0F)
{
this.setAttackTarget((EntityLivingBase)null);
this.teleportRandomly();
}
}
super.updateAITasks();
}
项目:Halloween
文件:EntityFakeCreeper.java
@Override
public boolean attackEntityFrom(DamageSource source, float amount)
{
Entity entity = source.getTrueSource();
boolean takenDamage = super.attackEntityFrom(source, amount);
if (takenDamage && entity != null)
{
this.playSound(ModSoundEvents.ENTITY_FAKE_FADE, 1.0F, ((rand.nextFloat() - rand.nextFloat()) * 0.1F) + 1.0F);
this.spawnExplosionParticle();
this.spawnExplosionParticle(); // TODO - examine why this is being fired twice - twice as many particles?
this.setDead();
}
return takenDamage;
}
项目:BaseClient
文件:EntityBlaze.java
protected void updateAITasks()
{
if (this.isWet())
{
this.attackEntityFrom(DamageSource.drown, 1.0F);
}
--this.heightOffsetUpdateTime;
if (this.heightOffsetUpdateTime <= 0)
{
this.heightOffsetUpdateTime = 100;
this.heightOffset = 0.5F + (float)this.rand.nextGaussian() * 3.0F;
}
EntityLivingBase entitylivingbase = this.getAttackTarget();
if (entitylivingbase != null && entitylivingbase.posY + (double)entitylivingbase.getEyeHeight() > this.posY + (double)this.getEyeHeight() + (double)this.heightOffset)
{
this.motionY += (0.30000001192092896D - this.motionY) * 0.30000001192092896D;
this.isAirBorne = true;
}
super.updateAITasks();
}
项目:BaseClient
文件:EntitySilverfish.java
/**
* Called when the entity is attacked.
*/
public boolean attackEntityFrom(DamageSource source, float amount)
{
if (this.isEntityInvulnerable(source))
{
return false;
}
else
{
if (source instanceof EntityDamageSource || source == DamageSource.magic)
{
this.summonSilverfish.func_179462_f();
}
return super.attackEntityFrom(source, amount);
}
}
项目:Backmemed
文件:EntityMinecart.java
public void killMinecart(DamageSource source)
{
this.setDead();
if (this.world.getGameRules().getBoolean("doEntityDrops"))
{
ItemStack itemstack = new ItemStack(Items.MINECART, 1);
if (this.hasCustomName())
{
itemstack.setStackDisplayName(this.getCustomNameTag());
}
this.entityDropItem(itemstack, 0.0F);
}
}
项目:Backmemed
文件:EntityWitch.java
/**
* Reduces damage, depending on potions
*/
protected float applyPotionDamageCalculations(DamageSource source, float damage)
{
damage = super.applyPotionDamageCalculations(source, damage);
if (source.getEntity() == this)
{
damage = 0.0F;
}
if (source.isMagicDamage())
{
damage = (float)((double)damage * 0.15D);
}
return damage;
}
项目:BaseClient
文件:EntityDragon.java
public boolean attackEntityFromPart(EntityDragonPart dragonPart, DamageSource source, float p_70965_3_)
{
if (dragonPart != this.dragonPartHead)
{
p_70965_3_ = p_70965_3_ / 4.0F + 1.0F;
}
float f = this.rotationYaw * (float)Math.PI / 180.0F;
float f1 = MathHelper.sin(f);
float f2 = MathHelper.cos(f);
this.targetX = this.posX + (double)(f1 * 5.0F) + (double)((this.rand.nextFloat() - 0.5F) * 2.0F);
this.targetY = this.posY + (double)(this.rand.nextFloat() * 3.0F) + 1.0D;
this.targetZ = this.posZ - (double)(f2 * 5.0F) + (double)((this.rand.nextFloat() - 0.5F) * 2.0F);
this.target = null;
if (source.getEntity() instanceof EntityPlayer || source.isExplosion())
{
this.attackDragonFrom(source, p_70965_3_);
}
return true;
}
项目:BaseClient
文件:EntityCreeper.java
/**
* Called when the mob's health reaches 0.
*/
public void onDeath(DamageSource cause)
{
super.onDeath(cause);
if (cause.getEntity() instanceof EntitySkeleton)
{
int i = Item.getIdFromItem(Items.record_13);
int j = Item.getIdFromItem(Items.record_wait);
int k = i + this.rand.nextInt(j - i + 1);
this.dropItem(Item.getItemById(k), 1);
}
else if (cause.getEntity() instanceof EntityCreeper && cause.getEntity() != this && ((EntityCreeper)cause.getEntity()).getPowered() && ((EntityCreeper)cause.getEntity()).isAIEnabled())
{
((EntityCreeper)cause.getEntity()).func_175493_co();
this.entityDropItem(new ItemStack(Items.skull, 1, 4), 0.0F);
}
}
项目:BaseClient
文件:EntitySkeleton.java
/**
* Called when the mob's health reaches 0.
*/
public void onDeath(DamageSource cause)
{
super.onDeath(cause);
if (cause.getSourceOfDamage() instanceof EntityArrow && cause.getEntity() instanceof EntityPlayer)
{
EntityPlayer entityplayer = (EntityPlayer)cause.getEntity();
double d0 = entityplayer.posX - this.posX;
double d1 = entityplayer.posZ - this.posZ;
if (d0 * d0 + d1 * d1 >= 2500.0D)
{
entityplayer.triggerAchievement(AchievementList.snipeSkeleton);
}
}
else if (cause.getEntity() instanceof EntityCreeper && ((EntityCreeper)cause.getEntity()).getPowered() && ((EntityCreeper)cause.getEntity()).isAIEnabled())
{
((EntityCreeper)cause.getEntity()).func_175493_co();
this.entityDropItem(new ItemStack(Items.skull, 1, this.getSkeletonType() == 1 ? 1 : 0), 0.0F);
}
}
项目:DecompiledMinecraft
文件:EntityMob.java
/**
* Called when the entity is attacked.
*/
public boolean attackEntityFrom(DamageSource source, float amount)
{
if (this.isEntityInvulnerable(source))
{
return false;
}
else if (super.attackEntityFrom(source, amount))
{
Entity entity = source.getEntity();
return this.riddenByEntity != entity && this.ridingEntity != entity ? true : true;
}
else
{
return false;
}
}
项目:DecompiledMinecraft
文件:EntityBlaze.java
protected void updateAITasks()
{
if (this.isWet())
{
this.attackEntityFrom(DamageSource.drown, 1.0F);
}
--this.heightOffsetUpdateTime;
if (this.heightOffsetUpdateTime <= 0)
{
this.heightOffsetUpdateTime = 100;
this.heightOffset = 0.5F + (float)this.rand.nextGaussian() * 3.0F;
}
EntityLivingBase entitylivingbase = this.getAttackTarget();
if (entitylivingbase != null && entitylivingbase.posY + (double)entitylivingbase.getEyeHeight() > this.posY + (double)this.getEyeHeight() + (double)this.heightOffset)
{
this.motionY += (0.30000001192092896D - this.motionY) * 0.30000001192092896D;
this.isAirBorne = true;
}
super.updateAITasks();
}
项目:DecompiledMinecraft
文件:EntityMinecartTNT.java
/**
* Called when the entity is attacked.
*/
public boolean attackEntityFrom(DamageSource source, float amount)
{
Entity entity = source.getSourceOfDamage();
if (entity instanceof EntityArrow)
{
EntityArrow entityarrow = (EntityArrow)entity;
if (entityarrow.isBurning())
{
this.explodeCart(entityarrow.motionX * entityarrow.motionX + entityarrow.motionY * entityarrow.motionY + entityarrow.motionZ * entityarrow.motionZ);
}
}
return super.attackEntityFrom(source, amount);
}
项目:Backmemed
文件:AbstractHorse.java
/**
* Called when the mob's health reaches 0.
*/
public void onDeath(DamageSource cause)
{
super.onDeath(cause);
if (!this.world.isRemote && this.horseChest != null)
{
for (int i = 0; i < this.horseChest.getSizeInventory(); ++i)
{
ItemStack itemstack = this.horseChest.getStackInSlot(i);
if (!itemstack.func_190926_b())
{
this.entityDropItem(itemstack, 0.0F);
}
}
}
}
项目:Backmemed
文件:AbstractChestHorse.java
/**
* Called when the mob's health reaches 0.
*/
public void onDeath(DamageSource cause)
{
super.onDeath(cause);
if (this.func_190695_dh())
{
if (!this.world.isRemote)
{
this.dropItem(Item.getItemFromBlock(Blocks.CHEST), 1);
}
this.setChested(false);
}
}
项目:Backmemed
文件:EntityMinecartFurnace.java
public void killMinecart(DamageSource source)
{
super.killMinecart(source);
if (!source.isExplosion() && this.world.getGameRules().getBoolean("doEntityDrops"))
{
this.entityDropItem(new ItemStack(Blocks.FURNACE, 1), 0.0F);
}
}
项目:CustomWorldGen
文件:EntityWolf.java
public boolean attackEntityAsMob(Entity entityIn)
{
boolean flag = entityIn.attackEntityFrom(DamageSource.causeMobDamage(this), (float)((int)this.getEntityAttribute(SharedMonsterAttributes.ATTACK_DAMAGE).getAttributeValue()));
if (flag)
{
this.applyEnchantments(this, entityIn);
}
return flag;
}
项目:DecompiledMinecraft
文件:EntitySnowman.java
/**
* Called frequently so the entity can update its state every tick as required. For example, zombies and skeletons
* use this to react to sunlight and start to burn.
*/
public void onLivingUpdate()
{
super.onLivingUpdate();
if (!this.worldObj.isRemote)
{
int i = MathHelper.floor_double(this.posX);
int j = MathHelper.floor_double(this.posY);
int k = MathHelper.floor_double(this.posZ);
if (this.isWet())
{
this.attackEntityFrom(DamageSource.drown, 1.0F);
}
if (this.worldObj.getBiomeGenForCoords(new BlockPos(i, 0, k)).getFloatTemperature(new BlockPos(i, j, k)) > 1.0F)
{
this.attackEntityFrom(DamageSource.onFire, 1.0F);
}
for (int l = 0; l < 4; ++l)
{
i = MathHelper.floor_double(this.posX + (double)((float)(l % 2 * 2 - 1) * 0.25F));
j = MathHelper.floor_double(this.posY);
k = MathHelper.floor_double(this.posZ + (double)((float)(l / 2 % 2 * 2 - 1) * 0.25F));
BlockPos blockpos = new BlockPos(i, j, k);
if (this.worldObj.getBlockState(blockpos).getBlock().getMaterial() == Material.air && this.worldObj.getBiomeGenForCoords(new BlockPos(i, 0, k)).getFloatTemperature(blockpos) < 0.8F && Blocks.snow_layer.canPlaceBlockAt(this.worldObj, blockpos))
{
this.worldObj.setBlockState(blockpos, Blocks.snow_layer.getDefaultState());
}
}
}
}
项目:CustomWorldGen
文件:EntityLivingBase.java
/**
* Reduces damage, depending on potions
*/
protected float applyPotionDamageCalculations(DamageSource source, float damage)
{
if (source.isDamageAbsolute())
{
return damage;
}
else
{
if (this.isPotionActive(MobEffects.RESISTANCE) && source != DamageSource.outOfWorld)
{
int i = (this.getActivePotionEffect(MobEffects.RESISTANCE).getAmplifier() + 1) * 5;
int j = 25 - i;
float f = damage * (float)j;
damage = f / 25.0F;
}
if (damage <= 0.0F)
{
return 0.0F;
}
else
{
int k = EnchantmentHelper.getEnchantmentModifierDamage(this.getArmorInventoryList(), source);
if (k > 0)
{
damage = CombatRules.getDamageAfterMagicAbsorb(damage, (float)k);
}
return damage;
}
}
}
项目:BaseClient
文件:Entity.java
/**
* Called when a lightning bolt hits the entity.
*/
public void onStruckByLightning(EntityLightningBolt lightningBolt)
{
this.attackEntityFrom(DamageSource.lightningBolt, 5.0F);
++this.fire;
if (this.fire == 0)
{
this.setFire(8);
}
}
项目:Industrial-Foregoing
文件:LavaStrawHandler.java
@Override
public void onDrink(World world, BlockPos pos, FluidStack stack, EntityPlayer player, boolean fromFluidContainer) {
player.attackEntityFrom(DamageSource.LAVA, 7);
player.setFire(30);
NBTTagCompound tag = player.getEntityData();
tag.setLong("lavaDrink", world.getTotalWorldTime());
}
项目:PurificatiMagicae
文件:EntityBeetle.java
@Override
public boolean attackEntityAsMob(Entity entityIn)
{
if (entityIn instanceof EntityLivingBase)
{
((EntityLivingBase) entityIn).addPotionEffect(new PotionEffect(MobEffects.POISON, 100, 1));
}
return entityIn.attackEntityFrom(DamageSource.causeMobDamage(this), (float) getEntityAttribute(SharedMonsterAttributes.ATTACK_DAMAGE).getAttributeValue());
}
项目:DecompiledMinecraft
文件:EntityHorse.java
public void fall(float distance, float damageMultiplier)
{
if (distance > 1.0F)
{
this.playSound("mob.horse.land", 0.4F, 1.0F);
}
int i = MathHelper.ceiling_float_int((distance * 0.5F - 3.0F) * damageMultiplier);
if (i > 0)
{
this.attackEntityFrom(DamageSource.fall, (float)i);
if (this.riddenByEntity != null)
{
this.riddenByEntity.attackEntityFrom(DamageSource.fall, (float)i);
}
Block block = this.worldObj.getBlockState(new BlockPos(this.posX, this.posY - 0.2D - (double)this.prevRotationYaw, this.posZ)).getBlock();
if (block.getMaterial() != Material.air && !this.isSilent())
{
Block.SoundType block$soundtype = block.stepSound;
this.worldObj.playSoundAtEntity(this, block$soundtype.getStepSound(), block$soundtype.getVolume() * 0.5F, block$soundtype.getFrequency() * 0.75F);
}
}
}
项目:Mods
文件:EntityStatue.java
public boolean attackEntityFrom(DamageSource source, float amount)
{
if (this.isEntityInvulnerable(source))
{
return false;
}
if (source.damageType.equals("player")) {
if(this.data != null)
this.entityDropItem(ItemStatue.getStatue(this), 0);
this.setDead();
return true;
}
return false;
}
项目:Bewitchment
文件:ItemAthame.java
@Override
public boolean hitEntity(ItemStack stack, EntityLivingBase target, EntityLivingBase attacker) {
if (!target.world.isRemote)
if (target instanceof EntityEnderman && attacker instanceof EntityPlayer) {
target.attackEntityFrom(DamageSource.causePlayerDamage((EntityPlayer) attacker), 20);
stack.damageItem(50, attacker);
} else {
stack.damageItem(1, attacker);
}
return true;
}
项目:Backmemed
文件:BlockMagma.java
/**
* Triggered whenever an entity collides with this block (enters into the block)
*/
public void onEntityWalk(World worldIn, BlockPos pos, Entity entityIn)
{
if (!entityIn.isImmuneToFire() && entityIn instanceof EntityLivingBase && !EnchantmentHelper.hasFrostWalkerEnchantment((EntityLivingBase)entityIn))
{
entityIn.attackEntityFrom(DamageSource.hotFloor, 1.0F);
}
super.onEntityWalk(worldIn, pos, entityIn);
}
项目:DecompiledMinecraft
文件:EntitySlime.java
protected void func_175451_e(EntityLivingBase p_175451_1_)
{
int i = this.getSlimeSize();
if (this.canEntityBeSeen(p_175451_1_) && this.getDistanceSqToEntity(p_175451_1_) < 0.6D * (double)i * 0.6D * (double)i && p_175451_1_.attackEntityFrom(DamageSource.causeMobDamage(this), (float)this.getAttackStrength()))
{
this.playSound("mob.attack", 1.0F, (this.rand.nextFloat() - this.rand.nextFloat()) * 0.2F + 1.0F);
this.applyEnchantments(this, p_175451_1_);
}
}
项目:UniversalRemote
文件:EntityPlayerProxy.java
@Override
public DamageSource getLastDamageSource() {
if (m_realPlayer == null) {
return super.getLastDamageSource();
} else {
return m_realPlayer.getLastDamageSource();
}
}
项目:Backmemed
文件:EntityLivingBase.java
protected void collideWithNearbyEntities()
{
List<Entity> list = this.world.getEntitiesInAABBexcluding(this, this.getEntityBoundingBox(), EntitySelectors.<Entity>getTeamCollisionPredicate(this));
if (!list.isEmpty())
{
int i = this.world.getGameRules().getInt("maxEntityCramming");
if (i > 0 && list.size() > i - 1 && this.rand.nextInt(4) == 0)
{
int j = 0;
for (int k = 0; k < list.size(); ++k)
{
if (!((Entity)list.get(k)).isRiding())
{
++j;
}
}
if (j > i - 1)
{
this.attackEntityFrom(DamageSource.field_191291_g, 6.0F);
}
}
for (int l = 0; l < list.size(); ++l)
{
Entity entity = (Entity)list.get(l);
this.collideWithEntity(entity);
}
}
}
项目:BaseClient
文件:Entity.java
/**
* Will deal the specified amount of damage to the entity if the entity isn't immune to fire damage. Args:
* amountDamage
*/
protected void dealFireDamage(int amount)
{
if (!this.isImmuneToFire)
{
this.attackEntityFrom(DamageSource.inFire, (float)amount);
}
}
项目:TheOink
文件:OinkSausage.java
@Override
public void onDeath(DamageSource cause) {
super.onDeath(cause);
if (!this.world.isRemote)
{
this.dead = true;
this.world.createExplosion(this, this.posX, this.posY, this.posZ, 50F, false);
this.setDead();
}
}
项目:BaseClient
文件:Entity.java
/**
* Called whenever the entity is walking inside of lava.
*/
protected void setOnFireFromLava()
{
if (!this.isImmuneToFire)
{
this.attackEntityFrom(DamageSource.lava, 4.0F);
this.setFire(15);
}
}