下面列出了net.minecraft.util.DamageSource#causePlayerDamage ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
private int getArmorValue(ItemArmor item, ItemStack stack)
{
int armorPoints = item.damageReduceAmount;
int prtPoints = 0;
int armorToughness = (int)item.toughness;
int armorType = item.getArmorMaterial()
.getDamageReductionAmount(EntityEquipmentSlot.LEGS);
if(useEnchantments.isChecked())
{
Enchantment protection = Enchantments.PROTECTION;
int prtLvl =
EnchantmentHelper.getEnchantmentLevel(protection, stack);
EntityPlayerSP player = WMinecraft.getPlayer();
DamageSource dmgSource = DamageSource.causePlayerDamage(player);
prtPoints = protection.calcModifierDamage(prtLvl, dmgSource);
}
return armorPoints * 5 + prtPoints * 3 + armorToughness + armorType;
}
public void damage(double amount, Entity source) {
DamageSource reason = DamageSource.GENERIC;
if (source instanceof HumanEntity) {
reason = DamageSource.causePlayerDamage(((CraftHumanEntity) source).getHandle());
} else if (source instanceof LivingEntity) {
reason = DamageSource.causeMobDamage(((CraftLivingEntity) source).getHandle());
}
entity.attackEntityFrom(reason, (float) amount);
}