From bfdc145eb04157b37fc084e0715c9d6de796b979 Mon Sep 17 00:00:00 2001 From: Boblet Date: Tue, 17 Dec 2024 16:51:02 +0100 Subject: [PATCH] smonking that fentanyl --- changelog | 6 ++-- .../hbm/items/weapon/sedna/BulletConfig.java | 5 ++- .../sedna/DamageSourceSednaNoAttacker.java | 21 ++++++++++++ .../sedna/DamageSourceSednaWithAttacker.java | 32 +++++++++++++++++++ .../weapon/sedna/factory/ConfettiUtil.java | 6 ++-- .../hbm/items/weapon/sedna/factory/Lego.java | 2 +- .../weapon/sedna/factory/XFactory40mm.java | 2 +- .../weapon/sedna/factory/XFactoryEnergy.java | 2 +- .../weapon/sedna/factory/XFactoryRocket.java | 2 +- .../com/hbm/render/tileentity/RenderLoot.java | 4 +-- .../com/hbm/util/DamageResistanceHandler.java | 11 +++++++ src/main/resources/assets/hbm/lang/de_DE.lang | 18 +++++++++++ src/main/resources/assets/hbm/lang/en_US.lang | 18 +++++++++++ 13 files changed, 116 insertions(+), 13 deletions(-) create mode 100644 src/main/java/com/hbm/items/weapon/sedna/DamageSourceSednaNoAttacker.java create mode 100644 src/main/java/com/hbm/items/weapon/sedna/DamageSourceSednaWithAttacker.java diff --git a/changelog b/changelog index 4adc7f7d7..c4cb01488 100644 --- a/changelog +++ b/changelog @@ -8,6 +8,8 @@ * Fixed 9mm soft points being called ".9mm" * Fixed missing localization for the hard plastic autogen material * Fixed the fat mine's crafting recipe still using the deprecated ammo item -* Removed legacy ammo items from all remaining item pools +* Removed legacy ammo items and guns from all remaining item pools * Fixed the rubber grip not having a recipe -* Fixed the coilgun and bolter not being classified correctly \ No newline at end of file +* Fixed the coilgun and bolter not being classified correctly +* Fixed new death messages not working +* Fixed none of the armors having fall resistance \ No newline at end of file diff --git a/src/main/java/com/hbm/items/weapon/sedna/BulletConfig.java b/src/main/java/com/hbm/items/weapon/sedna/BulletConfig.java index d0f860c98..2f5325075 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/BulletConfig.java +++ b/src/main/java/com/hbm/items/weapon/sedna/BulletConfig.java @@ -26,7 +26,6 @@ import net.minecraft.entity.EntityLivingBase; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.DamageSource; -import net.minecraft.util.EntityDamageSourceIndirect; import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.Vec3; import net.minecraft.world.WorldServer; @@ -145,8 +144,8 @@ public class BulletConfig implements Cloneable { DamageSource dmg; - if(shooter != null) dmg = new EntityDamageSourceIndirect(dmgClass.name(), projectile, shooter); - else dmg = new DamageSource(dmgClass.name()); + if(shooter != null) dmg = new DamageSourceSednaWithAttacker(dmgClass.name(), projectile, shooter); + else dmg = new DamageSourceSednaNoAttacker(dmgClass.name()); switch(dmgClass) { case PHYSICAL: dmg.setProjectile(); break; diff --git a/src/main/java/com/hbm/items/weapon/sedna/DamageSourceSednaNoAttacker.java b/src/main/java/com/hbm/items/weapon/sedna/DamageSourceSednaNoAttacker.java new file mode 100644 index 000000000..889583f0d --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/sedna/DamageSourceSednaNoAttacker.java @@ -0,0 +1,21 @@ +package com.hbm.items.weapon.sedna; + +import java.util.Locale; + +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.ChatComponentTranslation; +import net.minecraft.util.DamageSource; +import net.minecraft.util.IChatComponent; + +public class DamageSourceSednaNoAttacker extends DamageSource { + + public DamageSourceSednaNoAttacker(String type) { + super(type.toLowerCase(Locale.US)); + } + + @Override + public IChatComponent func_151519_b(EntityLivingBase died) { + IChatComponent diedName = died.func_145748_c_(); + return new ChatComponentTranslation("death.sedna." + this.damageType, diedName); + } +} diff --git a/src/main/java/com/hbm/items/weapon/sedna/DamageSourceSednaWithAttacker.java b/src/main/java/com/hbm/items/weapon/sedna/DamageSourceSednaWithAttacker.java new file mode 100644 index 000000000..e63ab3097 --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/sedna/DamageSourceSednaWithAttacker.java @@ -0,0 +1,32 @@ +package com.hbm.items.weapon.sedna; + +import java.util.Locale; + +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.ChatComponentTranslation; +import net.minecraft.util.ChatStyle; +import net.minecraft.util.IChatComponent; + +public class DamageSourceSednaWithAttacker extends DamageSourceSednaNoAttacker { + + public Entity projectile; + public Entity shooter; + + public DamageSourceSednaWithAttacker(String type, Entity projectile, Entity shooter) { + super(type.toLowerCase(Locale.US)); + this.projectile = projectile; + this.shooter = shooter; + } + + @Override public Entity getSourceOfDamage() { return this.projectile; } //what even uses this, except for the wackass "shot by bullet" death messages? + @Override public Entity getEntity() { return this.shooter; } + + @Override + public IChatComponent func_151519_b(EntityLivingBase died) { + IChatComponent diedName = died.func_145748_c_(); + IChatComponent shooterName = shooter != null ? shooter.func_145748_c_() : new ChatComponentText("Unknown").setChatStyle(new ChatStyle().setObfuscated(true)); + return new ChatComponentTranslation("death.sedna." + this.damageType + ".attacker", diedName, shooterName); + } +} diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/ConfettiUtil.java b/src/main/java/com/hbm/items/weapon/sedna/factory/ConfettiUtil.java index 78f42363a..7bf6381df 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/ConfettiUtil.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/ConfettiUtil.java @@ -1,5 +1,7 @@ package com.hbm.items.weapon.sedna.factory; +import java.util.Locale; + import com.hbm.packet.PacketDispatcher; import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.particle.helper.AshesCreator; @@ -16,8 +18,8 @@ public class ConfettiUtil { public static void decideConfetti(EntityLivingBase entity, DamageSource source) { if(entity.isEntityAlive()) return; - if(source.damageType.equals(DamageClass.LASER.name())) pulverize(entity); - if(source.damageType.equals(DamageClass.ELECTRIC.name())) pulverize(entity); + if(source.damageType.equals(DamageClass.LASER.name().toLowerCase(Locale.US))) pulverize(entity); + if(source.damageType.equals(DamageClass.ELECTRIC.name().toLowerCase(Locale.US))) pulverize(entity); if(source.isExplosion()) gib(entity); if(source.isFireDamage()) cremate(entity); } diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/Lego.java b/src/main/java/com/hbm/items/weapon/sedna/factory/Lego.java index d8226936d..1613291de 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/Lego.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/Lego.java @@ -272,7 +272,7 @@ public class Lego { public static void standardExplode(EntityBulletBaseMK4 bullet, MovingObjectPosition mop, float range) { standardExplode(bullet, mop, range, 1F); } public static void standardExplode(EntityBulletBaseMK4 bullet, MovingObjectPosition mop, float range, float damageMod) { - ExplosionVNT vnt = new ExplosionVNT(bullet.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, range); + ExplosionVNT vnt = new ExplosionVNT(bullet.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, range, bullet.getThrower()); vnt.setEntityProcessor(new EntityProcessorCrossSmooth(1, bullet.damage * damageMod).setupPiercing(bullet.config.armorThresholdNegation, bullet.config.armorPiercingPercent)); vnt.setPlayerProcessor(new PlayerProcessorStandard()); vnt.setSFX(new ExplosionEffectWeapon(10, 2.5F, 1F)); diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory40mm.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory40mm.java index 59568effd..b814c14c4 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory40mm.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory40mm.java @@ -80,7 +80,7 @@ public class XFactory40mm { }; public static BiConsumer LAMBDA_STANDARD_EXPLODE_DEMO = (bullet, mop) -> { if(mop.typeOfHit == mop.typeOfHit.ENTITY && bullet.ticksExisted < 3) return; - ExplosionVNT vnt = new ExplosionVNT(bullet.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, 5F); + ExplosionVNT vnt = new ExplosionVNT(bullet.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, 5F, bullet.getThrower()); vnt.setBlockAllocator(new BlockAllocatorStandard()); vnt.setBlockProcessor(new BlockProcessorStandard()); vnt.setEntityProcessor(new EntityProcessorCrossSmooth(1, bullet.damage)); diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryEnergy.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryEnergy.java index 8280ee681..02a18afd0 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryEnergy.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryEnergy.java @@ -63,7 +63,7 @@ public class XFactoryEnergy { mop.hitVec.zCoord += dir.offsetZ * 0.5; } - ExplosionVNT vnt = new ExplosionVNT(beam.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, 2F); + ExplosionVNT vnt = new ExplosionVNT(beam.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, 2F, beam.getThrower()); vnt.setEntityProcessor(new EntityProcessorCrossSmooth(1, beam.damage).setDamageClass(beam.config.dmgClass)); vnt.setPlayerProcessor(new PlayerProcessorStandard()); vnt.explode(); diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryRocket.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryRocket.java index d0bc0683c..5cb0217f7 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryRocket.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryRocket.java @@ -95,7 +95,7 @@ public class XFactoryRocket { }; public static BiConsumer LAMBDA_STANDARD_EXPLODE_DEMO = (bullet, mop) -> { if(mop.typeOfHit == mop.typeOfHit.ENTITY && bullet.ticksExisted < 3) return; - ExplosionVNT vnt = new ExplosionVNT(bullet.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, 5F); + ExplosionVNT vnt = new ExplosionVNT(bullet.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, 5F, bullet.getThrower()); vnt.setBlockAllocator(new BlockAllocatorStandard()); vnt.setBlockProcessor(new BlockProcessorStandard()); vnt.setEntityProcessor(new EntityProcessorCrossSmooth(1, bullet.damage)); diff --git a/src/main/java/com/hbm/render/tileentity/RenderLoot.java b/src/main/java/com/hbm/render/tileentity/RenderLoot.java index 301c8ebf1..2a325e92e 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderLoot.java +++ b/src/main/java/com/hbm/render/tileentity/RenderLoot.java @@ -118,8 +118,8 @@ public class RenderLoot extends TileEntitySpecialRenderer { private void renderShotgun() { - GL11.glScaled(0.5, 0.5, 0.5); - GL11.glTranslated(1, 0, 0); + GL11.glScaled(0.125, 0.125, 0.125); + GL11.glTranslated(3, 0, 0); GL11.glRotated(25, 0, 1, 0); GL11.glRotated(90, 1, 0, 0); GL11.glRotated(90, 0, 1, 0); diff --git a/src/main/java/com/hbm/util/DamageResistanceHandler.java b/src/main/java/com/hbm/util/DamageResistanceHandler.java index 2e58a5b1c..d9b169377 100644 --- a/src/main/java/com/hbm/util/DamageResistanceHandler.java +++ b/src/main/java/com/hbm/util/DamageResistanceHandler.java @@ -84,6 +84,7 @@ public class DamageResistanceHandler { registerSet(ModItems.steamsuit_helmet, ModItems.steamsuit_plate, ModItems.steamsuit_legs, ModItems.steamsuit_boots, new ResistanceStats() .addCategory(CATEGORY_PROJECTILE, 2F, 0.15F) .addCategory(CATEGORY_FIRE, 0.5F, 0.25F) + .addExact(DamageSource.fall.damageType, 5F, 0.25F) .setOther(0F, 0.1F)); registerSet(ModItems.dieselsuit_helmet, ModItems.dieselsuit_plate, ModItems.dieselsuit_legs, ModItems.dieselsuit_boots, new ResistanceStats() .addCategory(CATEGORY_PROJECTILE, 1F, 0.15F) @@ -94,48 +95,57 @@ public class DamageResistanceHandler { .addCategory(CATEGORY_PROJECTILE, 2F, 0.15F) .addCategory(CATEGORY_FIRE, 0.5F, 0.35F) .addCategory(CATEGORY_EXPLOSION, 5F, 0.25F) + .addExact(DamageSource.fall.damageType, 0F, 1F) .setOther(0F, 0.1F)); registerSet(ModItems.ajr_helmet, ModItems.ajr_plate, ModItems.ajr_legs, ModItems.ajr_boots, new ResistanceStats() .addCategory(CATEGORY_PROJECTILE, 4F, 0.15F) .addCategory(CATEGORY_FIRE, 0.5F, 0.35F) .addCategory(CATEGORY_EXPLOSION, 7.5F, 0.25F) + .addExact(DamageSource.fall.damageType, 0F, 1F) .setOther(0F, 0.15F)); registerSet(ModItems.ajro_helmet, ModItems.ajro_plate, ModItems.ajro_legs, ModItems.ajro_boots, new ResistanceStats() .addCategory(CATEGORY_PROJECTILE, 4F, 0.15F) .addCategory(CATEGORY_FIRE, 0.5F, 0.35F) .addCategory(CATEGORY_EXPLOSION, 7.5F, 0.25F) + .addExact(DamageSource.fall.damageType, 0F, 1F) .setOther(0F, 0.15F)); registerSet(ModItems.rpa_helmet, ModItems.rpa_plate, ModItems.rpa_legs, ModItems.rpa_boots, new ResistanceStats() .addCategory(CATEGORY_PROJECTILE, 20F, 0.65F) .addCategory(CATEGORY_FIRE, 10F, 0.75F) .addCategory(CATEGORY_EXPLOSION, 15F, 0.25F) .addExact(DamageClass.LASER.name(), 10F, 0.75F) + .addExact(DamageSource.fall.damageType, 0F, 1F) .setOther(10F, 0.15F)); ResistanceStats bj = new ResistanceStats() .addCategory(CATEGORY_PROJECTILE, 5F, 0.5F) .addCategory(CATEGORY_FIRE, 2.5F, 0.5F) .addCategory(CATEGORY_EXPLOSION, 10F, 0.25F) + .addExact(DamageSource.fall.damageType, 0F, 1F) .setOther(2F, 0.15F); registerSet(ModItems.bj_helmet, ModItems.bj_plate, ModItems.bj_legs, ModItems.bj_boots, bj); registerSet(ModItems.bj_helmet, ModItems.bj_plate_jetpack, ModItems.bj_legs, ModItems.bj_boots, bj); registerSet(ModItems.envsuit_helmet, ModItems.envsuit_plate, ModItems.envsuit_legs, ModItems.envsuit_boots, new ResistanceStats() .addCategory(CATEGORY_FIRE, 2F, 0.75F) .addExact(DamageSource.drown.damageType, 0F, 1F) + .addExact(DamageSource.fall.damageType, 5F, 0.75F) .setOther(0F, 0.1F)); registerSet(ModItems.hev_helmet, ModItems.hev_plate, ModItems.hev_legs, ModItems.hev_boots, new ResistanceStats() .addCategory(CATEGORY_PROJECTILE, 2F, 0.25F) .addCategory(CATEGORY_FIRE, 0.5F, 0.5F) .addCategory(CATEGORY_EXPLOSION, 5F, 0.25F) .addExact(DamageSource.onFire.damageType, 0F, 1F) + .addExact(DamageSource.fall.damageType, 10F, 0F) .setOther(2F, 0.25F)); registerSet(ModItems.bismuth_helmet, ModItems.bismuth_plate, ModItems.bismuth_legs, ModItems.bismuth_boots, new ResistanceStats() .addCategory(CATEGORY_PROJECTILE, 2F, 0.15F) .addCategory(CATEGORY_FIRE, 5F, 0.5F) .addCategory(CATEGORY_EXPLOSION, 5F, 0.25F) + .addExact(DamageSource.fall.damageType, 0F, 1F) .setOther(2F, 0.25F)); registerSet(ModItems.fau_helmet, ModItems.fau_plate, ModItems.fau_legs, ModItems.fau_boots, new ResistanceStats() .addCategory(CATEGORY_EXPLOSION, 50F, 0.95F) .addExact(DamageClass.LASER.name(), 25F, 0.95F) + .addExact(DamageSource.fall.damageType, 0F, 1F) .setOther(100F, 0.99F)); registerSet(ModItems.dns_helmet, ModItems.dns_plate, ModItems.dns_legs, ModItems.dns_boots, new ResistanceStats() .addCategory(CATEGORY_EXPLOSION, 100F, 0.99F) @@ -145,6 +155,7 @@ public class DamageResistanceHandler { .addCategory(CATEGORY_FIRE, 5F, 0.5F) .addCategory(CATEGORY_EXPLOSION, 5F, 0.25F) .addExact(DamageClass.LASER.name(), 15F, 0.9F) + .addExact(DamageSource.fall.damageType, 10F, 0.5F) .setOther(5F, 0.25F)); registerSet(ModItems.hazmat_helmet, ModItems.hazmat_plate, ModItems.hazmat_legs, ModItems.hazmat_boots, new ResistanceStats()); diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 1426e3ab0..f86673b35 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -482,6 +482,7 @@ damage.category.EXPL=Explosion damage.category.FIRE=Feuer damage.category.PROJ=Projektil damage.exact.drown=Ertrinken +damage.exact.fall=Fallschaden damage.exact.LASER=Laser damage.exact.onFire=Nachbrennen damage.other=Andere @@ -543,6 +544,23 @@ death.attack.tau=%1$s wurde von %2$s mit negativ geladenen Tauonen durchsiebt. death.attack.tauBlast=%1$s lud die XVL1456 zu lange auf und wurde in Stücke gerissen. death.attack.teleporter=%1$s wurde ins Nichts teleportiert. +death.sedna.electric=%1$s wurde frittiert. +death.sedna.electric.attacker=%1$s wurde von %2$s frittiert. +death.sedna.explosive=%1$s wurde gesprengt. +death.sedna.explosive.attacker=%1$s wurde von %2$s gesprengt. +death.sedna.fire=%1$s wurde eingeäschert. +death.sedna.fire.attacker=%1$s wurde von %2$s eingeäschert. +death.sedna.laser=%1$s wurde pulverisiert. +death.sedna.laser.attacker=%1$s wurde von %2$s pulverisiert. +death.sedna.microwave=%1$s wurde gekocht. +death.sedna.microwave.attacker=%1$s wurde von %2$s gekocht. +death.sedna.subatomic=%1$s wurde atomisiert. +death.sedna.subatomic.attacker=%1$s wurde von %2$s atomisiert. +death.sedna.other=%1$s wurde getötet. +death.sedna.other.attacker=%1$s wurde von %2$s getötet. +death.sedna.physical=%1$s wurde erschossen. +death.sedna.physical.attacker=%1$s wurde von %2$s erschossen. + desc.item.rtgHeat=Hitzelevel: %s desc.gui.rtgBFurnace.desc=Benötigt mindestens 15 Hitze um zu starten$Je mehr Hitze, desto schneller der Vorgang$Hitze über dem maximalen Level hat keinen Effekt$Gold-198 kann zu Quecksilber zerfallen desc.gui.rtgBFurnace.heat=§eHitzelevel: %s diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 295d181a2..588c144e2 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -898,6 +898,7 @@ damage.category.EXPL=Explosion damage.category.FIRE=Fire damage.category.PROJ=Projectile damage.exact.drown=Drowning +damage.exact.fall=Fall damage damage.exact.LASER=Laser damage.exact.onFire=Afterburn damage.other=Other @@ -960,6 +961,23 @@ death.attack.tau=%1$s was riddeled by %2$s using negatively charged tauons. death.attack.tauBlast=%1$s charged the XVL1456 for too long and was blown into pieces. death.attack.teleporter=%1$s was teleported into nothingness. +death.sedna.electric=%1$s was fried. +death.sedna.electric.attacker=%1$s was fried by %2$s. +death.sedna.explosive=%1$s was blown up. +death.sedna.explosive.attacker=%1$s was blown up by %2$s. +death.sedna.fire=%1$s was incinerated. +death.sedna.fire.attacker=%1$s was incinerated by %2$s. +death.sedna.laser=%1$s was pulverized. +death.sedna.laser.attacker=%1$s was pulverized by %2$s. +death.sedna.microwave=%1$s was microwaved. +death.sedna.microwave.attacker=%1$s was microwaved by %2$s. +death.sedna.subatomic=%1$s was atomized. +death.sedna.subatomic.attacker=%1$s was atomized by %2$s. +death.sedna.other=%1$s was killed. +death.sedna.other.attacker=%1$s was killed by %2$s. +death.sedna.physical=%1$s was shot. +death.sedna.physical.attacker=%1$s was shot by %2$s. + desc.gui.assembler.warning=§cError:§r This machine requires an assembly template! desc.gui.chemplant.warning=§cError:§r This machine requires an chemistry template! desc.gui.gasCent.enrichment=§2Enrichment§r$Uranium enrichment requires cascades.$Two-centrifuge cascades will give$uranium fuel, four-centrifuge cascades$will give total separation.