001package net.minecraft.util; 002 003import net.minecraft.entity.Entity; 004import net.minecraft.entity.EntityLiving; 005import net.minecraft.entity.player.EntityPlayer; 006import net.minecraft.item.ItemStack; 007 008public class EntityDamageSource extends DamageSource 009{ 010 protected Entity damageSourceEntity; 011 012 public EntityDamageSource(String par1Str, Entity par2Entity) 013 { 014 super(par1Str); 015 this.damageSourceEntity = par2Entity; 016 } 017 018 public Entity getEntity() 019 { 020 return this.damageSourceEntity; 021 } 022 023 /** 024 * Returns the message to be displayed on player death. 025 */ 026 public String getDeathMessage(EntityLiving par1EntityLiving) 027 { 028 ItemStack itemstack = this.damageSourceEntity instanceof EntityLiving ? ((EntityLiving)this.damageSourceEntity).getHeldItem() : null; 029 String s = "death.attack." + this.damageType; 030 String s1 = s + ".item"; 031 return itemstack != null && itemstack.hasDisplayName() && StatCollector.func_94522_b(s1) ? StatCollector.translateToLocalFormatted(s1, new Object[] {par1EntityLiving.func_96090_ax(), this.damageSourceEntity.func_96090_ax(), itemstack.getDisplayName()}): StatCollector.translateToLocalFormatted(s, new Object[] {par1EntityLiving.func_96090_ax(), this.damageSourceEntity.func_96090_ax()}); 032 } 033 034 /** 035 * Return whether this damage source will have its damage amount scaled based on the current difficulty. 036 */ 037 public boolean isDifficultyScaled() 038 { 039 return this.damageSourceEntity != null && this.damageSourceEntity instanceof EntityLiving && !(this.damageSourceEntity instanceof EntityPlayer); 040 } 041}