DamageUtils.java 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. package me.km.capabilities;
  2. import net.minecraft.entity.EntityLivingBase;
  3. import net.minecraft.item.ItemStack;
  4. import net.minecraft.util.DamageSource;
  5. public class DamageUtils
  6. {
  7. public static void init()
  8. {
  9. DamageSource.IN_FIRE.setMagicDamage();
  10. DamageSource.LIGHTNING_BOLT.setMagicDamage();
  11. DamageSource.ON_FIRE.setMagicDamage();
  12. DamageSource.HOT_FLOOR.setMagicDamage();
  13. DamageSource.WITHER.setMagicDamage();
  14. DamageSource.DRAGON_BREATH.setMagicDamage();
  15. // Special
  16. DamageSource.LAVA.setDamageBypassesArmor().setDamageIsAbsolute();
  17. DamageSource.IN_WALL.setDamageIsAbsolute();
  18. DamageSource.CRAMMING.setDamageIsAbsolute();
  19. DamageSource.DROWN.setDamageIsAbsolute();
  20. DamageSource.GENERIC.setDamageIsAbsolute();
  21. }
  22. public static int getMagicDefense(EntityLivingBase liv)
  23. {
  24. int level = 0;
  25. for(ItemStack stack : liv.getArmorInventoryList())
  26. {
  27. if(stack.hasCapability(DefenseProvider.DEFENSE_CAP, null))
  28. {
  29. level += stack.getCapability(DefenseProvider.DEFENSE_CAP, null).getMagicDefense();
  30. }
  31. }
  32. return level;
  33. }
  34. }