mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-01-25 10:32:49 +00:00
some improved damage handling code for armor
This commit is contained in:
parent
503e5169bc
commit
458500f35e
@ -4,6 +4,7 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
||||
import com.hbm.entity.mob.EntityDuck;
|
||||
import com.hbm.lib.ModDamageSource;
|
||||
import com.hbm.main.MainRegistry;
|
||||
import com.hbm.packet.AuxParticlePacketNT;
|
||||
@ -115,6 +116,9 @@ public class HbmLivingProps implements IExtendedEntityProperties {
|
||||
|
||||
public static void setDigamma(EntityLivingBase entity, float digamma) {
|
||||
|
||||
if(entity instanceof EntityDuck)
|
||||
digamma = 0.0F;
|
||||
|
||||
getData(entity).digamma = digamma;
|
||||
|
||||
float healthMod = (float)Math.pow(0.5, digamma) - 1F;
|
||||
|
||||
@ -4666,7 +4666,7 @@ public class ModItems {
|
||||
gas_mask_olde = new ArmorGasMask().setUnlocalizedName("gas_mask_olde").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":gas_mask_olde");
|
||||
mask_rag = new ModArmor(aMatRags, 7, 0).setUnlocalizedName("mask_rag").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":mask_rag");
|
||||
mask_piss = new ModArmor(aMatRags, 7, 0).setUnlocalizedName("mask_piss").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":mask_piss");
|
||||
hat = new ArmorHat(ArmorMaterial.IRON, 7, 0).setUnlocalizedName("nossy_hat").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":hat");
|
||||
hat = new ArmorHat(MainRegistry.aMatAlloy, 7, 0).setUnlocalizedName("nossy_hat").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":hat");
|
||||
beta = new ItemDrop().setUnlocalizedName("beta").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":beta");
|
||||
//oxy_mask = new ArmorModel(ArmorMaterial.IRON, 7, 0).setUnlocalizedName("oxy_mask").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":oxy_mask");
|
||||
|
||||
|
||||
@ -1,8 +1,15 @@
|
||||
package com.hbm.items.armor;
|
||||
|
||||
import net.minecraft.entity.item.EntityItem;
|
||||
import java.util.List;
|
||||
|
||||
public class ArmorHat extends ArmorModel {
|
||||
import net.minecraft.entity.item.EntityItem;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.EnumChatFormatting;
|
||||
import net.minecraftforge.event.entity.living.LivingAttackEvent;
|
||||
import net.minecraftforge.event.entity.living.LivingHurtEvent;
|
||||
|
||||
public class ArmorHat extends ArmorModel implements IAttackHandler, IDamageHandler {
|
||||
|
||||
public ArmorHat(ArmorMaterial armorMaterial, int renderIndex, int armorType) {
|
||||
super(armorMaterial, renderIndex, armorType);
|
||||
@ -14,4 +21,32 @@ public class ArmorHat extends ArmorModel {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) {
|
||||
list.add(EnumChatFormatting.BLUE + "+2 DT");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handleDamage(LivingHurtEvent event, ItemStack stack) {
|
||||
|
||||
if(event.source.isUnblockable())
|
||||
return;
|
||||
|
||||
event.ammount -= 2F;
|
||||
|
||||
if(event.ammount < 0)
|
||||
event.ammount = 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handleAttack(LivingAttackEvent event, ItemStack armor) {
|
||||
|
||||
if(event.source.isUnblockable())
|
||||
return;
|
||||
|
||||
if(event.ammount <= 2F) {
|
||||
event.entityLiving.worldObj.playSoundAtEntity(event.entityLiving, "random.break", 5F, 1.0F + event.entityLiving.getRNG().nextFloat() * 0.5F);
|
||||
event.setCanceled(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
9
src/main/java/com/hbm/items/armor/IAttackHandler.java
Normal file
9
src/main/java/com/hbm/items/armor/IAttackHandler.java
Normal file
@ -0,0 +1,9 @@
|
||||
package com.hbm.items.armor;
|
||||
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraftforge.event.entity.living.LivingAttackEvent;
|
||||
|
||||
public interface IAttackHandler {
|
||||
|
||||
public void handleAttack(LivingAttackEvent event, ItemStack armor);
|
||||
}
|
||||
9
src/main/java/com/hbm/items/armor/IDamageHandler.java
Normal file
9
src/main/java/com/hbm/items/armor/IDamageHandler.java
Normal file
@ -0,0 +1,9 @@
|
||||
package com.hbm.items.armor;
|
||||
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraftforge.event.entity.living.LivingHurtEvent;
|
||||
|
||||
public interface IDamageHandler {
|
||||
|
||||
public void handleDamage(LivingHurtEvent event, ItemStack stack);
|
||||
}
|
||||
@ -493,6 +493,7 @@ public class MainRegistry {
|
||||
EntityRegistry.registerGlobalEntityID(EntityFBI.class, "entity_ntm_fbi", EntityRegistry.findGlobalUniqueEntityId(), 0x008000, 0x404040);
|
||||
EntityRegistry.registerGlobalEntityID(EntityRADBeast.class, "entity_ntm_radiation_blaze", EntityRegistry.findGlobalUniqueEntityId(), 0x303030, 0x008000);
|
||||
EntityRegistry.registerGlobalEntityID(EntitySiegeZombie.class, "entity_meme_zombie", EntityRegistry.findGlobalUniqueEntityId(), 0x303030, 0x008000);
|
||||
EntityRegistry.registerGlobalEntityID(EntitySiegeSkeleton.class, "entity_meme_skeleton", EntityRegistry.findGlobalUniqueEntityId(), 0x303030, 0x000080);
|
||||
EntityRegistry.registerGlobalEntityID(EntitySiegeUFO.class, "entity_meme_ufo", EntityRegistry.findGlobalUniqueEntityId(), 0x303030, 0x800000);
|
||||
|
||||
EntityRegistry.registerModEntity(EntitySPV.class, "entity_self_propelled_vehicle_mark_1", 160, this, 1000, 1, true);
|
||||
|
||||
@ -38,6 +38,8 @@ import com.hbm.handler.SiegeOrchestrator;
|
||||
import com.hbm.items.IEquipReceiver;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.items.armor.ArmorFSB;
|
||||
import com.hbm.items.armor.IAttackHandler;
|
||||
import com.hbm.items.armor.IDamageHandler;
|
||||
import com.hbm.items.armor.ItemArmorMod;
|
||||
import com.hbm.items.armor.ItemModRevive;
|
||||
import com.hbm.items.armor.ItemModShackles;
|
||||
@ -882,13 +884,24 @@ public class ModEventHandler {
|
||||
|
||||
EntityLivingBase e = event.entityLiving;
|
||||
|
||||
if(e instanceof EntityPlayer && ArmorUtil.checkArmor((EntityPlayer)e, ModItems.euphemium_helmet, ModItems.euphemium_plate, ModItems.euphemium_legs, ModItems.euphemium_boots)) {
|
||||
e.worldObj.playSoundAtEntity(e, "random.break", 5F, 1.0F + e.getRNG().nextFloat() * 0.5F);
|
||||
event.setCanceled(true);
|
||||
if(e instanceof EntityPlayer) {
|
||||
|
||||
EntityPlayer player = (EntityPlayer) e;
|
||||
|
||||
if(ArmorUtil.checkArmor(player, ModItems.euphemium_helmet, ModItems.euphemium_plate, ModItems.euphemium_legs, ModItems.euphemium_boots)) {
|
||||
e.worldObj.playSoundAtEntity(e, "random.break", 5F, 1.0F + e.getRNG().nextFloat() * 0.5F);
|
||||
event.setCanceled(true);
|
||||
}
|
||||
|
||||
if(player.inventory.armorInventory[2] != null && player.inventory.armorInventory[2].getItem() instanceof ArmorFSB)
|
||||
((ArmorFSB)player.inventory.armorInventory[2].getItem()).handleAttack(event);
|
||||
|
||||
for(ItemStack stack : player.inventory.armorInventory) {
|
||||
if(stack != null && stack.getItem() instanceof IAttackHandler) {
|
||||
((IAttackHandler)stack.getItem()).handleAttack(event, stack);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(e instanceof EntityPlayer && ((EntityPlayer)e).inventory.armorInventory[2] != null && ((EntityPlayer)e).inventory.armorInventory[2].getItem() instanceof ArmorFSB)
|
||||
((ArmorFSB)((EntityPlayer)e).inventory.armorInventory[2].getItem()).handleAttack(event);
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
@ -932,9 +945,21 @@ public class ModEventHandler {
|
||||
}
|
||||
}
|
||||
|
||||
/// FSB ARMOR ///
|
||||
if(e instanceof EntityPlayer && ((EntityPlayer)e).inventory.armorInventory[2] != null && ((EntityPlayer)e).inventory.armorInventory[2].getItem() instanceof ArmorFSB)
|
||||
((ArmorFSB)((EntityPlayer)e).inventory.armorInventory[2].getItem()).handleHurt(event);
|
||||
if(e instanceof EntityPlayer) {
|
||||
|
||||
EntityPlayer player = (EntityPlayer) e;
|
||||
|
||||
/// FSB ARMOR ///
|
||||
if(player.inventory.armorInventory[2] != null && player.inventory.armorInventory[2].getItem() instanceof ArmorFSB)
|
||||
((ArmorFSB)player.inventory.armorInventory[2].getItem()).handleHurt(event);
|
||||
|
||||
|
||||
for(ItemStack stack : player.inventory.armorInventory) {
|
||||
if(stack != null && stack.getItem() instanceof IDamageHandler) {
|
||||
((IDamageHandler)stack.getItem()).handleDamage(event, stack);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user