From 6972a6825e8a6841506930a96c65726b3263693a Mon Sep 17 00:00:00 2001 From: Bob Date: Mon, 11 Jan 2021 22:50:37 +0100 Subject: [PATCH] xanax, it's xanax --- .../java/assets/hbm/textures/items/xanax.png | Bin 0 -> 189 bytes .../assets/hbm/textures/items/xanax_2.png | Bin 0 -> 220 bytes .../mob/botprime/EntityBOTPrimeBase.java | 3 +- .../java/com/hbm/extprop/HbmLivingProps.java | 132 ++++++++++++++++++ ...dedProperties.java => HbmPlayerProps.java} | 16 +-- src/main/java/com/hbm/items/ModItems.java | 4 +- .../com/hbm/items/armor/ArmorBJJetpack.java | 4 +- .../java/com/hbm/items/armor/ArmorHEV.java | 4 +- .../com/hbm/items/armor/JetpackBooster.java | 4 +- .../com/hbm/items/armor/JetpackBreak.java | 4 +- .../com/hbm/items/armor/JetpackRegular.java | 4 +- .../hbm/items/armor/JetpackVectorized.java | 4 +- .../com/hbm/items/special/ItemDigamma.java | 17 +-- .../java/com/hbm/main/ModEventHandler.java | 37 +++-- .../com/hbm/main/ModEventHandlerClient.java | 5 +- .../java/com/hbm/packet/KeybindPacket.java | 4 +- .../java/com/hbm/packet/RadSurveyPacket.java | 4 +- src/main/java/com/hbm/potion/HbmPotion.java | 7 +- .../tileentity/machine/TileEntityDecon.java | 27 ++-- .../java/com/hbm/util/ContaminationUtil.java | 19 +-- 20 files changed, 212 insertions(+), 87 deletions(-) create mode 100644 src/main/java/assets/hbm/textures/items/xanax.png create mode 100644 src/main/java/assets/hbm/textures/items/xanax_2.png create mode 100644 src/main/java/com/hbm/extprop/HbmLivingProps.java rename src/main/java/com/hbm/extprop/{HbmExtendedProperties.java => HbmPlayerProps.java} (61%) diff --git a/src/main/java/assets/hbm/textures/items/xanax.png b/src/main/java/assets/hbm/textures/items/xanax.png new file mode 100644 index 0000000000000000000000000000000000000000..4c3759188c050f8140e0f2893de1244f3e66a45b GIT binary patch literal 189 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfvYce7#`az;I!jwcK@>k1_u|9|5J62Rx%-6Wk&_bIHU}1*{o~-f3TQurr>mdKI;Vst0Be;n+a literal 0 HcmV?d00001 diff --git a/src/main/java/assets/hbm/textures/items/xanax_2.png b/src/main/java/assets/hbm/textures/items/xanax_2.png new file mode 100644 index 0000000000000000000000000000000000000000..d4a1b8093fa202cc448c0ece84fdcf0d56785443 GIT binary patch literal 220 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf#zZjYy66Xkxpv;rx+joj(2Z1uHup4Z7b`_%v Q0y>Yu)78&qol`;+07h<5&j0`b literal 0 HcmV?d00001 diff --git a/src/main/java/com/hbm/entity/mob/botprime/EntityBOTPrimeBase.java b/src/main/java/com/hbm/entity/mob/botprime/EntityBOTPrimeBase.java index 01c199a41..fae13f40d 100644 --- a/src/main/java/com/hbm/entity/mob/botprime/EntityBOTPrimeBase.java +++ b/src/main/java/com/hbm/entity/mob/botprime/EntityBOTPrimeBase.java @@ -2,6 +2,7 @@ package com.hbm.entity.mob.botprime; import com.hbm.entity.projectile.EntityBulletBase; import com.hbm.handler.BulletConfigSyncingUtil; +import com.hbm.interfaces.IRadiationImmune; import net.minecraft.command.IEntitySelector; import net.minecraft.entity.Entity; @@ -10,7 +11,7 @@ import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.util.Vec3; import net.minecraft.world.World; -public abstract class EntityBOTPrimeBase extends EntityWormBaseNT { +public abstract class EntityBOTPrimeBase extends EntityWormBaseNT implements IRadiationImmune { public int attackCounter = 0; diff --git a/src/main/java/com/hbm/extprop/HbmLivingProps.java b/src/main/java/com/hbm/extprop/HbmLivingProps.java new file mode 100644 index 000000000..00ea9a937 --- /dev/null +++ b/src/main/java/com/hbm/extprop/HbmLivingProps.java @@ -0,0 +1,132 @@ +package com.hbm.extprop; + +import java.util.UUID; + +import com.hbm.lib.ModDamageSource; + +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.ai.attributes.AttributeModifier; +import net.minecraft.entity.ai.attributes.IAttributeInstance; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; +import net.minecraftforge.common.IExtendedEntityProperties; + +public class HbmLivingProps implements IExtendedEntityProperties { + + public static final String key = "NTM_EXT_LIVING"; + public static final UUID digamma_UUID = UUID.fromString("2a3d8aec-5ab9-4218-9b8b-ca812bdf378b"); + public EntityLivingBase entity; + + /// VALS /// + private float radiation; + private float digamma; + + public HbmLivingProps(EntityLivingBase entity) { + this.entity = entity; + } + + /// DATA /// + public static HbmLivingProps registerData(EntityLivingBase entity) { + + entity.registerExtendedProperties(key, new HbmLivingProps(entity)); + return (HbmLivingProps) entity.getExtendedProperties(key); + } + + public static HbmLivingProps getData(EntityLivingBase entity) { + + HbmLivingProps props = (HbmLivingProps) entity.getExtendedProperties(key); + return props != null ? props : registerData(entity); + } + + /// RADIATION /// + public static float getRadiation(EntityLivingBase entity) { + return getData(entity).radiation; + } + + public static void setRadiation(EntityLivingBase entity, float rad) { + getData(entity).radiation = rad; + } + + public static void incrementRadiation(EntityLivingBase entity, float rad) { + HbmLivingProps data = getData(entity); + float radiation = getData(entity).radiation + rad; + + if(radiation > 2500) + radiation = 2500; + if(radiation < 0) + radiation = 0; + + data.setRadiation(entity, radiation); + } + + /// DIGAMA /// + public static float getDigamma(EntityLivingBase entity) { + return getData(entity).digamma; + } + + public static void setDigamma(EntityLivingBase entity, float digamma) { + getData(entity).digamma = digamma; + + float healthMod = (float)Math.pow(0.5, digamma) - 1F; + + IAttributeInstance attributeinstance = entity.getAttributeMap().getAttributeInstance(SharedMonsterAttributes.maxHealth); + + try { + attributeinstance.removeModifier(attributeinstance.getModifier(digamma_UUID)); + } catch(Exception ex) { } + + attributeinstance.applyModifier(new AttributeModifier(digamma_UUID, "digamma", healthMod, 2)); + + if(entity.getHealth() > entity.getMaxHealth()) { + entity.setHealth(entity.getMaxHealth()); + } + + if((entity.getMaxHealth() <= 0 || digamma >= 10.0F) && entity.isEntityAlive()) { + entity.setAbsorptionAmount(0); + entity.attackEntityFrom(ModDamageSource.radiation, 500F); + entity.setHealth(0); + + if(entity.isEntityAlive()) + entity.onDeath(ModDamageSource.radiation); + } + } + + public static void incrementDigamma(EntityLivingBase entity, float digamma) { + HbmLivingProps data = getData(entity); + float dRad = getDigamma(entity) + digamma; + + if(dRad > 10) + dRad = 10; + if(dRad < 0) + dRad = 0; + + data.setDigamma(entity, dRad); + } + + @Override + public void init(Entity entity, World world) { } + + @Override + public void saveNBTData(NBTTagCompound nbt) { + + NBTTagCompound props = new NBTTagCompound(); + + props.setFloat("hfr_radiation", radiation); + props.setFloat("hfr_digamma", digamma); + + nbt.setTag("HbmLivingProps", props); + } + + @Override + public void loadNBTData(NBTTagCompound nbt) { + + NBTTagCompound props = (NBTTagCompound) nbt.getTag("HbmLivingProps"); + + if(props != null) { + radiation = props.getFloat("hfr_radiation"); + digamma = props.getFloat("hfr_digamma"); + } + } +} diff --git a/src/main/java/com/hbm/extprop/HbmExtendedProperties.java b/src/main/java/com/hbm/extprop/HbmPlayerProps.java similarity index 61% rename from src/main/java/com/hbm/extprop/HbmExtendedProperties.java rename to src/main/java/com/hbm/extprop/HbmPlayerProps.java index f65a0c0fc..ae5dcc5c3 100644 --- a/src/main/java/com/hbm/extprop/HbmExtendedProperties.java +++ b/src/main/java/com/hbm/extprop/HbmPlayerProps.java @@ -8,26 +8,26 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; import net.minecraftforge.common.IExtendedEntityProperties; -public class HbmExtendedProperties implements IExtendedEntityProperties { +public class HbmPlayerProps implements IExtendedEntityProperties { - public static final String key = "NTM_EXT_PROPS"; + public static final String key = "NTM_EXT_PLAYER"; public EntityPlayer player; private boolean[] keysPressed = new boolean[EnumKeybind.values().length]; - public HbmExtendedProperties(EntityPlayer player) { + public HbmPlayerProps(EntityPlayer player) { this.player = player; } - public static HbmExtendedProperties registerData(EntityPlayer player) { + public static HbmPlayerProps registerData(EntityPlayer player) { - player.registerExtendedProperties(key, new HbmExtendedProperties(player)); - return (HbmExtendedProperties) player.getExtendedProperties(key); + player.registerExtendedProperties(key, new HbmPlayerProps(player)); + return (HbmPlayerProps) player.getExtendedProperties(key); } - public static HbmExtendedProperties getData(EntityPlayer player) { + public static HbmPlayerProps getData(EntityPlayer player) { - HbmExtendedProperties props = (HbmExtendedProperties) player.getExtendedProperties(key); + HbmPlayerProps props = (HbmPlayerProps) player.getExtendedProperties(key); return props != null ? props : registerData(player); } diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 746a8a44d..52ed07c30 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -3823,10 +3823,10 @@ public class ModItems { .addEffect(new PotionEffect(Potion.jump.id, 20, 0)) .setBlastProtection(0.25F) .setMod(0.2F) - .setFireproof(true) .setHasGeigerSound(true) .setHasCustomGeiger(true) - .addResistance("fall", 0.5F).setUnlocalizedName("hev_helmet").setTextureName(RefStrings.MODID + ":hev_helmet"); + .addResistance("fall", 0.5F) + .addResistance("onFire", 0F).setUnlocalizedName("hev_helmet").setTextureName(RefStrings.MODID + ":hev_helmet"); hev_plate = new ArmorHEV(aMatHEV, 7, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", 1000000, 10000, 2500, 0).cloneStats((ArmorFSB) hev_helmet).setUnlocalizedName("hev_plate").setTextureName(RefStrings.MODID + ":hev_plate"); hev_legs = new ArmorHEV(aMatHEV, 7, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png", 1000000, 10000, 2500, 0).cloneStats((ArmorFSB) hev_helmet).setUnlocalizedName("hev_legs").setTextureName(RefStrings.MODID + ":hev_legs"); hev_boots = new ArmorHEV(aMatHEV, 7, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png", 1000000, 10000, 2500, 0).cloneStats((ArmorFSB) hev_helmet).setUnlocalizedName("hev_boots").setTextureName(RefStrings.MODID + ":hev_boots"); diff --git a/src/main/java/com/hbm/items/armor/ArmorBJJetpack.java b/src/main/java/com/hbm/items/armor/ArmorBJJetpack.java index fe2c112d3..7636fd291 100644 --- a/src/main/java/com/hbm/items/armor/ArmorBJJetpack.java +++ b/src/main/java/com/hbm/items/armor/ArmorBJJetpack.java @@ -2,7 +2,7 @@ package com.hbm.items.armor; import java.util.List; -import com.hbm.extprop.HbmExtendedProperties; +import com.hbm.extprop.HbmPlayerProps; import com.hbm.handler.HbmKeybinds.EnumKeybind; import com.hbm.main.MainRegistry; import com.hbm.packet.AuxParticlePacketNT; @@ -47,7 +47,7 @@ public class ArmorBJJetpack extends ArmorBJ { super.onArmorTick(world, player, stack); - HbmExtendedProperties props = HbmExtendedProperties.getData(player); + HbmPlayerProps props = HbmPlayerProps.getData(player); if(world.isRemote) { diff --git a/src/main/java/com/hbm/items/armor/ArmorHEV.java b/src/main/java/com/hbm/items/armor/ArmorHEV.java index 5cb63f00a..82a1c08b4 100644 --- a/src/main/java/com/hbm/items/armor/ArmorHEV.java +++ b/src/main/java/com/hbm/items/armor/ArmorHEV.java @@ -5,6 +5,7 @@ import java.util.List; import org.lwjgl.opengl.GL11; +import com.hbm.extprop.HbmLivingProps; import com.hbm.items.ModItems; import com.hbm.render.model.ModelArmorHEV; import com.hbm.saveddata.RadiationSavedData; @@ -75,8 +76,7 @@ public class ArmorHEV extends ArmorFSBPowered { private void renderOverlay(RenderGameOverlayEvent.Pre event, EntityPlayer player) { - float in = 0; - in = player.getEntityData().getFloat("hfr_radiation"); + float in = HbmLivingProps.getRadiation(player); float radiation = 0; diff --git a/src/main/java/com/hbm/items/armor/JetpackBooster.java b/src/main/java/com/hbm/items/armor/JetpackBooster.java index 7e1053ba6..07d3579da 100644 --- a/src/main/java/com/hbm/items/armor/JetpackBooster.java +++ b/src/main/java/com/hbm/items/armor/JetpackBooster.java @@ -2,7 +2,7 @@ package com.hbm.items.armor; import java.util.List; -import com.hbm.extprop.HbmExtendedProperties; +import com.hbm.extprop.HbmPlayerProps; import com.hbm.handler.FluidTypeHandler.FluidType; import com.hbm.handler.HbmKeybinds.EnumKeybind; import com.hbm.main.MainRegistry; @@ -33,7 +33,7 @@ public class JetpackBooster extends JetpackBase { public void onArmorTick(World world, EntityPlayer player, ItemStack stack) { - HbmExtendedProperties props = HbmExtendedProperties.getData(player); + HbmPlayerProps props = HbmPlayerProps.getData(player); if(world.isRemote) { diff --git a/src/main/java/com/hbm/items/armor/JetpackBreak.java b/src/main/java/com/hbm/items/armor/JetpackBreak.java index 2e64c078e..63a18db38 100644 --- a/src/main/java/com/hbm/items/armor/JetpackBreak.java +++ b/src/main/java/com/hbm/items/armor/JetpackBreak.java @@ -2,7 +2,7 @@ package com.hbm.items.armor; import java.util.List; -import com.hbm.extprop.HbmExtendedProperties; +import com.hbm.extprop.HbmPlayerProps; import com.hbm.handler.FluidTypeHandler.FluidType; import com.hbm.handler.HbmKeybinds.EnumKeybind; import com.hbm.main.MainRegistry; @@ -34,7 +34,7 @@ public class JetpackBreak extends JetpackBase { public void onArmorTick(World world, EntityPlayer player, ItemStack stack) { - HbmExtendedProperties props = HbmExtendedProperties.getData(player); + HbmPlayerProps props = HbmPlayerProps.getData(player); if(world.isRemote) { diff --git a/src/main/java/com/hbm/items/armor/JetpackRegular.java b/src/main/java/com/hbm/items/armor/JetpackRegular.java index 0af44f498..35e9d2670 100644 --- a/src/main/java/com/hbm/items/armor/JetpackRegular.java +++ b/src/main/java/com/hbm/items/armor/JetpackRegular.java @@ -2,7 +2,7 @@ package com.hbm.items.armor; import java.util.List; -import com.hbm.extprop.HbmExtendedProperties; +import com.hbm.extprop.HbmPlayerProps; import com.hbm.handler.FluidTypeHandler.FluidType; import com.hbm.handler.HbmKeybinds.EnumKeybind; import com.hbm.main.MainRegistry; @@ -32,7 +32,7 @@ public class JetpackRegular extends JetpackBase { public void onArmorTick(World world, EntityPlayer player, ItemStack stack) { - HbmExtendedProperties props = HbmExtendedProperties.getData(player); + HbmPlayerProps props = HbmPlayerProps.getData(player); if(world.isRemote) { diff --git a/src/main/java/com/hbm/items/armor/JetpackVectorized.java b/src/main/java/com/hbm/items/armor/JetpackVectorized.java index b1dd0f1d8..0c124335a 100644 --- a/src/main/java/com/hbm/items/armor/JetpackVectorized.java +++ b/src/main/java/com/hbm/items/armor/JetpackVectorized.java @@ -2,7 +2,7 @@ package com.hbm.items.armor; import java.util.List; -import com.hbm.extprop.HbmExtendedProperties; +import com.hbm.extprop.HbmPlayerProps; import com.hbm.handler.FluidTypeHandler.FluidType; import com.hbm.handler.HbmKeybinds.EnumKeybind; import com.hbm.main.MainRegistry; @@ -35,7 +35,7 @@ public class JetpackVectorized extends JetpackBase { public void onArmorTick(World world, EntityPlayer player, ItemStack stack) { - HbmExtendedProperties props = HbmExtendedProperties.getData(player); + HbmPlayerProps props = HbmPlayerProps.getData(player); if(world.isRemote) { diff --git a/src/main/java/com/hbm/items/special/ItemDigamma.java b/src/main/java/com/hbm/items/special/ItemDigamma.java index af5c3ee52..a9b4e4365 100644 --- a/src/main/java/com/hbm/items/special/ItemDigamma.java +++ b/src/main/java/com/hbm/items/special/ItemDigamma.java @@ -4,6 +4,7 @@ import java.util.List; import com.hbm.config.WeaponConfig; import com.hbm.entity.effect.EntityRagingVortex; +import com.hbm.extprop.HbmLivingProps; import com.hbm.lib.ModDamageSource; import com.hbm.util.I18nUtil; @@ -32,19 +33,7 @@ public class ItemDigamma extends ItemRadioactive { if(entity instanceof EntityPlayer) { EntityPlayer player = (EntityPlayer) entity; - - if(player.ticksExisted % digamma == 0 && !player.capabilities.isCreativeMode) { - - player.getEntityAttribute(SharedMonsterAttributes.maxHealth).applyModifier(new AttributeModifier("digamma", -0.5D, 2)); - - if(player.getHealth() > player.getMaxHealth()) - player.setHealth(player.getMaxHealth()); - - if(player.getMaxHealth() <= 0) { - player.attackEntityFrom(ModDamageSource.radiation, 100F); - player.onDeath(ModDamageSource.radiation); - } - } + HbmLivingProps.incrementDigamma(player, 1F / ((float) digamma)); } } @@ -57,7 +46,7 @@ public class ItemDigamma extends ItemRadioactive { list.add(""); super.addInformation(stack, player, list, bool); - float d = ((int)((1000F / 60) * 10)) / 10F; + float d = ((int)((1000F / digamma) * 10F)) / 10F; list.add(EnumChatFormatting.RED + "[" + I18nUtil.resolveKey("trait.digamma") + "]"); list.add(EnumChatFormatting.DARK_RED + "" + d + "DRX/s"); diff --git a/src/main/java/com/hbm/main/ModEventHandler.java b/src/main/java/com/hbm/main/ModEventHandler.java index a55f16a3d..2e55db96b 100644 --- a/src/main/java/com/hbm/main/ModEventHandler.java +++ b/src/main/java/com/hbm/main/ModEventHandler.java @@ -25,7 +25,8 @@ import com.hbm.entity.mob.EntityTaintedCreeper; import com.hbm.entity.mob.botprime.EntityBOTPrimeHead; import com.hbm.entity.projectile.EntityBurningFOEQ; import com.hbm.entity.projectile.EntityMeteor; -import com.hbm.extprop.HbmExtendedProperties; +import com.hbm.extprop.HbmLivingProps; +import com.hbm.extprop.HbmPlayerProps; import com.hbm.handler.BossSpawnHandler; import com.hbm.handler.RadiationWorldHandler; import com.hbm.handler.HTTPHandler; @@ -71,6 +72,7 @@ import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.IRecipe; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.potion.Potion; import net.minecraft.potion.PotionEffect; import net.minecraft.tileentity.TileEntitySign; @@ -138,17 +140,20 @@ public class ModEventHandler if(event.entity instanceof EntityPlayer) { EntityPlayer player = (EntityPlayer) event.entity; + HbmPlayerProps.getData(player); //this already calls the register method if it's null so no further action required + } + + if(event.entity instanceof EntityLivingBase) { - if(HbmExtendedProperties.getData(player) == null) { - - } + EntityLivingBase living = (EntityLivingBase) event.entity; + HbmLivingProps.getData(living); //ditto } } @SubscribeEvent public void onEntityDeath(LivingDeathEvent event) { - event.entityLiving.getEntityData().setFloat("hfr_radiation", 0); + HbmLivingProps.setRadiation(event.entityLiving, 0); if(event.entity.worldObj.isRemote) return; @@ -280,7 +285,8 @@ public class ModEventHandler if(o instanceof EntityPlayerMP) { EntityPlayerMP player = (EntityPlayerMP)o; - PacketDispatcher.wrapper.sendTo(new RadSurveyPacket(player.getEntityData().getFloat("hfr_radiation")), player); + //TODO: replace with packet that sends all to-sync data + PacketDispatcher.wrapper.sendTo(new RadSurveyPacket(HbmLivingProps.getRadiation(player)), player); } } @@ -319,7 +325,7 @@ public class ModEventHandler } } - float eRad = entity.getEntityData().getFloat("hfr_radiation"); + float eRad = HbmLivingProps.getRadiation(entity); if(entity instanceof EntityCreeper && eRad >= 200 && entity.getHealth() > 0) { @@ -375,12 +381,12 @@ public class ModEventHandler continue; if(eRad > 2500) - entity.getEntityData().setFloat("hfr_radiation", 2500); + HbmLivingProps.setRadiation(entity, 2500); if(eRad >= 1000) { entity.attackEntityFrom(ModDamageSource.radiation, 1000F); - entity.getEntityData().setFloat("hfr_radiation", 0); + HbmLivingProps.setRadiation(entity, 0); if(entity.getHealth() > 0) { entity.setHealth(0); @@ -565,12 +571,13 @@ public class ModEventHandler } } - /*@SubscribeEvent - public void itemSmelted(PlayerEvent.ItemSmeltedEvent e) { - if(e.smelting.getItem().equals(ModItems.ingot_titanium)) { - e.player.addStat(MainRegistry.achievementGetTitanium, 1); - } - }*/ + @SubscribeEvent + public void onPlayerClone(net.minecraftforge.event.entity.player.PlayerEvent.Clone event) { + + NBTTagCompound data = new NBTTagCompound(); + HbmPlayerProps.getData(event.original).saveNBTData(data); + HbmPlayerProps.getData(event.entityPlayer).loadNBTData(data); + } @SubscribeEvent public void itemCrafted(PlayerEvent.ItemCraftedEvent e) { diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index f173b147d..05be5f818 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -7,6 +7,7 @@ import org.lwjgl.opengl.GL11; import com.hbm.entity.mob.EntityHunterChopper; import com.hbm.entity.projectile.EntityChopperMine; +import com.hbm.extprop.HbmLivingProps; import com.hbm.handler.HTTPHandler; import com.hbm.handler.HazmatRegistry; import com.hbm.interfaces.IHoldableWeapon; @@ -90,9 +91,7 @@ public class ModEventHandlerClient { if(player.inventory.hasItem(ModItems.geiger_counter)) { - float rads = 0; - - rads = player.getEntityData().getFloat("hfr_radiation"); + float rads = HbmLivingProps.getRadiation(player); RenderScreenOverlay.renderRadCounter(event.resolution, rads, Minecraft.getMinecraft().ingameGUI); } diff --git a/src/main/java/com/hbm/packet/KeybindPacket.java b/src/main/java/com/hbm/packet/KeybindPacket.java index a7d27c19a..3b3f2a80c 100644 --- a/src/main/java/com/hbm/packet/KeybindPacket.java +++ b/src/main/java/com/hbm/packet/KeybindPacket.java @@ -1,6 +1,6 @@ package com.hbm.packet; -import com.hbm.extprop.HbmExtendedProperties; +import com.hbm.extprop.HbmPlayerProps; import com.hbm.handler.HbmKeybinds.EnumKeybind; import cpw.mods.fml.common.network.simpleimpl.IMessage; @@ -39,7 +39,7 @@ public class KeybindPacket implements IMessage { public IMessage onMessage(KeybindPacket m, MessageContext ctx) { EntityPlayer p = ctx.getServerHandler().playerEntity; - HbmExtendedProperties props = HbmExtendedProperties.getData(p); + HbmPlayerProps props = HbmPlayerProps.getData(p); props.setKeyPressed(EnumKeybind.values()[m.key], m.pressed); diff --git a/src/main/java/com/hbm/packet/RadSurveyPacket.java b/src/main/java/com/hbm/packet/RadSurveyPacket.java index c1fbc6981..932db6588 100644 --- a/src/main/java/com/hbm/packet/RadSurveyPacket.java +++ b/src/main/java/com/hbm/packet/RadSurveyPacket.java @@ -1,5 +1,7 @@ package com.hbm.packet; +import com.hbm.extprop.HbmLivingProps; + import cpw.mods.fml.common.network.simpleimpl.IMessage; import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; import cpw.mods.fml.common.network.simpleimpl.MessageContext; @@ -43,7 +45,7 @@ public class RadSurveyPacket implements IMessage { try { EntityPlayer player = Minecraft.getMinecraft().thePlayer; - player.getEntityData().setFloat("hfr_radiation", m.rad); + HbmLivingProps.setRadiation(player, m.rad); } catch (Exception x) { } return null; diff --git a/src/main/java/com/hbm/potion/HbmPotion.java b/src/main/java/com/hbm/potion/HbmPotion.java index 74274575e..7613cb3a2 100644 --- a/src/main/java/com/hbm/potion/HbmPotion.java +++ b/src/main/java/com/hbm/potion/HbmPotion.java @@ -9,6 +9,7 @@ import com.hbm.config.PotionConfig; import com.hbm.entity.mob.EntityTaintCrab; import com.hbm.entity.mob.EntityTaintedCreeper; import com.hbm.explosion.ExplosionLarge; +import com.hbm.extprop.HbmLivingProps; import com.hbm.lib.ModDamageSource; import com.hbm.util.ContaminationUtil; @@ -112,12 +113,8 @@ public class HbmPotion extends Potion { ContaminationUtil.applyRadData(entity, (float)(level + 1F) * 0.05F); } if(this == radaway) { - - float rad = entity.getEntityData().getFloat("hfr_radiation"); - rad -= (level + 1); - if(rad < 0) rad = 0; - entity.getEntityData().setFloat("hfr_radiation", rad); + HbmLivingProps.incrementRadiation(entity, -(level + 1)); } if(this == bang) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityDecon.java b/src/main/java/com/hbm/tileentity/machine/TileEntityDecon.java index 66c4c7284..32cc4d457 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityDecon.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityDecon.java @@ -2,7 +2,9 @@ package com.hbm.tileentity.machine; import java.util.List; -import net.minecraft.entity.Entity; +import com.hbm.extprop.HbmLivingProps; + +import net.minecraft.entity.EntityLivingBase; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; @@ -10,21 +12,14 @@ public class TileEntityDecon extends TileEntity { @Override public void updateEntity() { - - if (!this.worldObj.isRemote) { - List entities = this.worldObj.getEntitiesWithinAABB(Entity.class, - AxisAlignedBB.getBoundingBox(this.xCoord - 0.5, this.yCoord, this.zCoord - 0.5, this.xCoord + 1.5, - this.yCoord + 2, this.zCoord + 1.5)); - - if (!entities.isEmpty()) { - for (Entity e : entities) { - - float f = e.getEntityData().getFloat("hfr_radiation"); - f -= 0.5F; - - if(f < 0) f = 0; - - e.getEntityData().setFloat("hfr_radiation", f); + + if(!this.worldObj.isRemote) { + + List entities = this.worldObj.getEntitiesWithinAABB(EntityLivingBase.class, AxisAlignedBB.getBoundingBox(this.xCoord - 0.5, this.yCoord, this.zCoord - 0.5, this.xCoord + 1.5, this.yCoord + 2, this.zCoord + 1.5)); + + if(!entities.isEmpty()) { + for(EntityLivingBase e : entities) { + HbmLivingProps.incrementRadiation(e, -0.5F); } } } diff --git a/src/main/java/com/hbm/util/ContaminationUtil.java b/src/main/java/com/hbm/util/ContaminationUtil.java index f05a8e74c..013b23b8b 100644 --- a/src/main/java/com/hbm/util/ContaminationUtil.java +++ b/src/main/java/com/hbm/util/ContaminationUtil.java @@ -1,5 +1,6 @@ package com.hbm.util; +import com.hbm.extprop.HbmLivingProps; import com.hbm.handler.HazmatRegistry; import com.hbm.interfaces.IRadiationImmune; import com.hbm.potion.HbmPotion; @@ -55,8 +56,7 @@ public class ContaminationUtil { f *= calculateRadiationMod(entity); - float rad = e.getEntityData().getFloat("hfr_radiation"); - e.getEntityData().setFloat("hfr_radiation", Math.min(rad + f, 2500)); + HbmLivingProps.incrementRadiation(entity, f); } public static void applyRadDirect(Entity e, float f) { @@ -70,11 +70,12 @@ public class ContaminationUtil { if(e instanceof EntityPlayer && ((EntityPlayer)e).capabilities.isCreativeMode) return; - if(((EntityLivingBase)e).isPotionActive(HbmPotion.mutation)) - return; + EntityLivingBase entity = (EntityLivingBase)e; - float rad = e.getEntityData().getFloat("hfr_radiation"); - e.getEntityData().setFloat("hfr_radiation", Math.min(rad + f, 2500)); + if(entity.isPotionActive(HbmPotion.mutation)) + return; + + HbmLivingProps.incrementRadiation(entity, f); } public static float getRads(Entity e) { @@ -85,14 +86,16 @@ public class ContaminationUtil { if(e instanceof IRadiationImmune) return 0.0F; - return e.getEntityData().getFloat("hfr_radiation"); + EntityLivingBase entity = (EntityLivingBase)e; + + return HbmLivingProps.getRadiation(entity); } public static void printGeigerData(EntityPlayer player) { World world = player.worldObj; - double eRad = ((int)(player.getEntityData().getFloat("hfr_radiation") * 10)) / 10D; + double eRad = ((int)(HbmLivingProps.getRadiation(player) * 10)) / 10D; RadiationSavedData data = RadiationSavedData.getData(player.worldObj); Chunk chunk = world.getChunkFromBlockCoords((int)player.posX, (int)player.posZ);