Package com.hbm_m.powerarmor.resist
Class DamageResistanceHandler
java.lang.Object
com.hbm_m.powerarmor.resist.DamageResistanceHandler
Damage Resistance Handler for HBM Modernized
Ported from original HBM 1.7.10 with full DT+DR system support
ОСОБЕННОСТИ:
- Силовая броня регистрируется ТОЛЬКО через registerSet()
- Защита применяется ТОЛЬКО при полном сете
- Система отскакивания стрел (deflectArrows)
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classArmor set representationstatic enumstatic classIndividual resistance entrystatic classResistance statistics for armor/entity -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final Stringstatic final StringCurrently cached DT reductionstatic final Stringstatic final Stringstatic HashMap<Class<? extends net.minecraft.world.entity.Entity>,DamageResistanceHandler.ResistanceStats> static HashMap<net.minecraft.world.item.Item,DamageResistanceHandler.ResistanceStats> -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic floatcalculateDamage(net.minecraft.world.entity.LivingEntity entity, net.minecraft.world.damagesource.DamageSource damage, float amount, float pierceDT, float pierceDR) Calculate damage with full DT+DR systemstatic float[]getDTDR(net.minecraft.world.entity.LivingEntity entity, net.minecraft.world.damagesource.DamageSource damage, float amount, float pierceDT, float pierceDR) Get DT (Damage Threshold) and DR (Damage Resistance) for entitystatic voidInitialize armor stats after items are registered Call this from FMLCommonSetupEvent or similarstatic voidregisterEntity(Class<? extends net.minecraft.world.entity.Entity> entityClass, DamageResistanceHandler.ResistanceStats stats) Register entity resistancestatic voidregisterItem(net.minecraft.world.item.Item item, DamageResistanceHandler.ResistanceStats stats) Register individual armor piece (для курток и одиночной одежды)static voidregisterSet(net.minecraft.world.item.Item helmet, net.minecraft.world.item.Item chestplate, net.minecraft.world.item.Item leggings, net.minecraft.world.item.Item boots, DamageResistanceHandler.ResistanceStats stats) Register armor set with resistance statsstatic booleanshouldDeflectProjectile(net.minecraft.world.entity.LivingEntity entity, net.minecraft.world.damagesource.DamageSource damage) Check if entity should deflect projectiles (arrows, tridents, etc.)static StringtypeToCategory(net.minecraft.world.damagesource.DamageSource source) Convert damage source to category string
-
Field Details
-
CATEGORY_EXPLOSION
Currently cached DT reduction- See Also:
-
CATEGORY_FIRE
- See Also:
-
CATEGORY_PHYSICAL
- See Also:
-
CATEGORY_ENERGY
- See Also:
-
itemStats
public static HashMap<net.minecraft.world.item.Item,DamageResistanceHandler.ResistanceStats> itemStats -
setStats
public static HashMap<DamageResistanceHandler.ArmorSet,DamageResistanceHandler.ResistanceStats> setStats -
entityStats
public static HashMap<Class<? extends net.minecraft.world.entity.Entity>,DamageResistanceHandler.ResistanceStats> entityStats
-
-
Constructor Details
-
DamageResistanceHandler
public DamageResistanceHandler()
-
-
Method Details
-
shouldDeflectProjectile
public static boolean shouldDeflectProjectile(net.minecraft.world.entity.LivingEntity entity, net.minecraft.world.damagesource.DamageSource damage) Check if entity should deflect projectiles (arrows, tridents, etc.) Called BEFORE damage is applied -
calculateDamage
public static float calculateDamage(net.minecraft.world.entity.LivingEntity entity, net.minecraft.world.damagesource.DamageSource damage, float amount, float pierceDT, float pierceDR) Calculate damage with full DT+DR system- Parameters:
pierceDT- Armor piercing value that reduces DT (e.g., 3.0 = ignores 3 points of DT)pierceDR- Armor piercing percentage that reduces DR effectiveness (0.0-1.0)
-
getDTDR
public static float[] getDTDR(net.minecraft.world.entity.LivingEntity entity, net.minecraft.world.damagesource.DamageSource damage, float amount, float pierceDT, float pierceDR) Get DT (Damage Threshold) and DR (Damage Resistance) for entity -
typeToCategory
Convert damage source to category string -
registerSet
public static void registerSet(net.minecraft.world.item.Item helmet, net.minecraft.world.item.Item chestplate, net.minecraft.world.item.Item leggings, net.minecraft.world.item.Item boots, DamageResistanceHandler.ResistanceStats stats) Register armor set with resistance stats -
registerItem
public static void registerItem(net.minecraft.world.item.Item item, DamageResistanceHandler.ResistanceStats stats) Register individual armor piece (для курток и одиночной одежды) -
registerEntity
public static void registerEntity(Class<? extends net.minecraft.world.entity.Entity> entityClass, DamageResistanceHandler.ResistanceStats stats) Register entity resistance -
initArmorStats
public static void initArmorStats()Initialize armor stats after items are registered Call this from FMLCommonSetupEvent or similar
-