Merge branch 'HbmMods:master' into Optimization

This commit is contained in:
BallOfEnergy 2024-12-17 10:51:51 -06:00 committed by GitHub
commit 7a0ee15a7e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
13 changed files with 116 additions and 13 deletions

View File

@ -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
* Fixed the coilgun and bolter not being classified correctly
* Fixed new death messages not working
* Fixed none of the armors having fall resistance

View File

@ -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;

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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);
}

View File

@ -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));

View File

@ -80,7 +80,7 @@ public class XFactory40mm {
};
public static BiConsumer<EntityBulletBaseMK4, MovingObjectPosition> 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));

View File

@ -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();

View File

@ -95,7 +95,7 @@ public class XFactoryRocket {
};
public static BiConsumer<EntityBulletBaseMK4, MovingObjectPosition> 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));

View File

@ -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);

View File

@ -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());

View File

@ -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

View File

@ -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.