From 01df6f20c2d1e45bb6d3f8520c32b649da9b16f4 Mon Sep 17 00:00:00 2001 From: Boblet Date: Fri, 2 May 2025 11:40:07 +0200 Subject: [PATCH] "music neva stops, no" - hatsune miku --- changelog | 7 +++ .../projectile/EntityBulletBeamBase.java | 25 ++++++++ .../hbm/items/weapon/sedna/BulletConfig.java | 2 +- .../sedna/factory/GunFactoryClient.java | 3 +- .../weapon/sedna/factory/LegoClient.java | 19 +++++++ .../weapon/sedna/factory/XFactory10ga.java | 2 +- .../weapon/sedna/factory/XFactory22lr.java | 2 +- .../weapon/sedna/factory/XFactory357.java | 2 +- .../weapon/sedna/factory/XFactory44.java | 2 +- .../weapon/sedna/factory/XFactory45.java | 4 +- .../weapon/sedna/factory/XFactory50.java | 6 +- .../weapon/sedna/factory/XFactory556mm.java | 2 +- .../weapon/sedna/factory/XFactory762mm.java | 4 +- .../weapon/sedna/factory/XFactory9mm.java | 2 +- .../sedna/factory/XFactoryAccelerator.java | 8 +-- .../sedna/factory/XFactoryBlackPowder.java | 2 +- .../weapon/sedna/factory/XFactoryEnergy.java | 34 ++++++++++- .../weapon/sedna/factory/XFactoryTurret.java | 2 +- .../tileentity/machine/TileEntityGeiger.java | 57 ++++++++++--------- .../machine/storage/TileEntityBarrel.java | 12 ++-- .../networkproviders/PneumaticNetwork.java | 3 +- src/main/resources/assets/hbm/lang/de_DE.lang | 2 +- src/main/resources/assets/hbm/lang/en_US.lang | 2 +- 23 files changed, 144 insertions(+), 60 deletions(-) diff --git a/changelog b/changelog index abd85fa46..d97933113 100644 --- a/changelog +++ b/changelog @@ -17,6 +17,13 @@ * Halved recoil on the zebra rifle * The laser pistols now make a click when dry firing * Solid fuel in the rotary furnace no longer ticks down if no recipe is actually being done +* Pneumatic tube round robin will now progress even if a destination is not accessible, preventing cases where the tubes are stuck if one of the containers has run full +* Tesla cannons now accept low-wavelength capacitors + * The resulting beam is non-penetrating and 20% less powerful than standard capacitor beams + * In addition to the splash damage, the beam will split and fire smaller beams at any living entity in a 20 block radius, with half damage + * Sub-beams do not cause splash damage + * Sub-beams will strike the initially hit entity again, meaning that the more sub-beams there are, the more powerful the initial strike ends up being +* Renamed the default capacitor ammo to "capacitor (standard)" to avoid confusion ## Fixed * Fixed a potential crash caused by cargo dropships landing on cargo docks with no satellite chip installed diff --git a/src/main/java/com/hbm/entity/projectile/EntityBulletBeamBase.java b/src/main/java/com/hbm/entity/projectile/EntityBulletBeamBase.java index 849bebff5..036971822 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityBulletBeamBase.java +++ b/src/main/java/com/hbm/entity/projectile/EntityBulletBeamBase.java @@ -38,6 +38,15 @@ public class EntityBulletBeamBase extends Entity implements IEntityAdditionalSpa public EntityLivingBase getThrower() { return this.thrower; } + public EntityBulletBeamBase(EntityLivingBase entity, BulletConfig config, float baseDamage) { + this(entity.worldObj); + + this.thrower = entity; + this.setBulletConfig(config); + + this.damage = baseDamage * this.config.damageMult; + } + public EntityBulletBeamBase(EntityLivingBase entity, BulletConfig config, float baseDamage, float angularInaccuracy, double sideOffset, double heightOffset, double frontOffset) { this(entity.worldObj); @@ -69,6 +78,22 @@ public class EntityBulletBeamBase extends Entity implements IEntityAdditionalSpa performHitscan(); } + + public void setRotationsFromVector(Vec3 delta) { + this.rotationPitch = (float) (-Math.asin(delta.yCoord / delta.lengthVector()) * 180D / Math.PI); + this.rotationYaw = (float) (-Math.atan2(delta.xCoord, delta.zCoord) * 180D / Math.PI); + + this.headingX = (double) (-MathHelper.sin(this.rotationYaw / 180.0F * (float) Math.PI) * MathHelper.cos(this.rotationPitch / 180.0F * (float) Math.PI)); + this.headingZ = (double) (MathHelper.cos(this.rotationYaw / 180.0F * (float) Math.PI) * MathHelper.cos(this.rotationPitch / 180.0F * (float) Math.PI)); + this.headingY = (double) (-MathHelper.sin((this.rotationPitch) / 180.0F * (float) Math.PI)); + } + + public void performHitscanExternal(double range) { + this.headingX *= range; + this.headingY *= range; + this.headingZ *= range; + performHitscan(); + } @Override protected void entityInit() { 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 faefed4f7..4406ed660 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/BulletConfig.java +++ b/src/main/java/com/hbm/items/weapon/sedna/BulletConfig.java @@ -123,7 +123,7 @@ public class BulletConfig implements Cloneable { public BulletConfig setupDamageClass(DamageClass clazz) { this.dmgClass = clazz; return this; } public BulletConfig setRicochetAngle(float angle) { this.ricochetAngle = angle; return this; } public BulletConfig setRicochetCount(int count) { this.maxRicochetCount = count; return this; } - public BulletConfig setDamageFalloutByPen(boolean falloff) { this.damageFalloffByPen = falloff; return this; } + public BulletConfig setDamageFalloffByPen(boolean falloff) { this.damageFalloffByPen = falloff; return this; } public BulletConfig setGrav(double gravity) { this.gravity = gravity; return this; } public BulletConfig setLife(int expires) { this.expires = expires; return this; } public BulletConfig setImpactsEntities(boolean impact) { this.impactsEntities = impact; return this; } diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactoryClient.java b/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactoryClient.java index 0f90253ef..bec3726fe 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactoryClient.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactoryClient.java @@ -200,7 +200,8 @@ public class GunFactoryClient { nuke_tots.setRenderer(LegoClient.RENDER_GRENADE); nuke_hive.setRenderer(LegoClient.RENDER_HIVE); - setRendererBulkBeam(LegoClient.RENDER_LIGHTNING, energy_tesla, energy_tesla_overcharge); + setRendererBulkBeam(LegoClient.RENDER_LIGHTNING, energy_tesla, energy_tesla_overcharge, energy_tesla_ir); + setRendererBulkBeam(LegoClient.RENDER_LIGHTNING_SUB, energy_tesla_ir_sub); setRendererBulkBeam(LegoClient.RENDER_TAU, tau_uranium); setRendererBulkBeam(LegoClient.RENDER_TAU_CHARGE, tau_uranium_charge); setRendererBulkBeam(LegoClient.RENDER_LASER_RED, energy_las, energy_las_overcharge, energy_las_ir); diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/LegoClient.java b/src/main/java/com/hbm/items/weapon/sedna/factory/LegoClient.java index cbc73d0cd..68c38fe65 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/LegoClient.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/LegoClient.java @@ -273,6 +273,25 @@ public class LegoClient { RenderArcFurnace.fullbright(false); }; + public static BiConsumer RENDER_LIGHTNING_SUB = (bullet, interp) -> { + + RenderArcFurnace.fullbright(true); + GL11.glPushMatrix(); + GL11.glRotatef(180 - bullet.rotationYaw, 0, 1F, 0); + GL11.glRotatef(-bullet.rotationPitch - 90, 1F, 0, 0); + Vec3 delta = Vec3.createVectorHelper(0, bullet.beamLength, 0); + double age = MathHelper.clamp_double(1D - ((double) bullet.ticksExisted - 2 + interp) / (double) bullet.getBulletConfig().expires, 0, 1); + GL11.glScaled(age / 2 + 0.15, 1, age / 2 + 0.15); + double scale = 0.075D; + int colorInner = ((int)(0x20 * age) << 16) | ((int)(0x20 * age) << 8) | (int) (0x40 * age); + int colorOuter = ((int)(0x40 * age) << 16) | ((int)(0x40 * age) << 8) | (int) (0x80 * age); + BeamPronter.prontBeam(delta, EnumWaveType.RANDOM, EnumBeamType.SOLID, colorInner, colorInner, bullet.ticksExisted / 3, (int)(bullet.beamLength / 2 + 1), (float)scale * 1F, 4, 0.25F); + BeamPronter.prontBeam(delta, EnumWaveType.RANDOM, EnumBeamType.SOLID, colorOuter, colorOuter, bullet.ticksExisted, (int)(bullet.beamLength / 2 + 1), (float)scale * 7F, 2, 0.0625F); + BeamPronter.prontBeam(delta, EnumWaveType.RANDOM, EnumBeamType.SOLID, colorOuter, colorOuter, bullet.ticksExisted / 2, (int)(bullet.beamLength / 2 + 1), (float)scale * 7F, 2, 0.0625F); + GL11.glPopMatrix(); + RenderArcFurnace.fullbright(false); + }; + public static BiConsumer RENDER_TAU = (bullet, interp) -> { RenderArcFurnace.fullbright(true); diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory10ga.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory10ga.java index c452655d3..93c0e6913 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory10ga.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory10ga.java @@ -43,7 +43,7 @@ public class XFactory10ga { float buckshotSpread = 0.035F; g10 = new BulletConfig().setItem(EnumAmmo.G10).setCasing(EnumCasingType.BUCKSHOT_ADVANCED, 4).setProjectiles(10).setDamage(1F/10F).setSpread(buckshotSpread).setRicochetAngle(15).setThresholdNegation(5F).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(0xB52B2B, SpentCasing.COLOR_CASE_12GA).setScale(1F).register("10GA")); g10_shrapnel = new BulletConfig().setItem(EnumAmmo.G10_SHRAPNEL).setCasing(EnumCasingType.BUCKSHOT_ADVANCED, 4).setProjectiles(10).setDamage(1F/10F).setSpread(buckshotSpread).setRicochetAngle(90).setRicochetCount(15).setThresholdNegation(5F).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(0xE5DD00, SpentCasing.COLOR_CASE_12GA).setScale(1F).register("10GAShrapnel")); - g10_du = new BulletConfig().setItem(EnumAmmo.G10_DU).setCasing(EnumCasingType.BUCKSHOT_ADVANCED, 4).setProjectiles(10).setDamage(1F/4F).setSpread(buckshotSpread).setRicochetAngle(15).setThresholdNegation(10F).setArmorPiercing(0.2F).setDoesPenetrate(true).setDamageFalloutByPen(false).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(0x538D53, SpentCasing.COLOR_CASE_12GA).setScale(1F).register("10GADU")); + g10_du = new BulletConfig().setItem(EnumAmmo.G10_DU).setCasing(EnumCasingType.BUCKSHOT_ADVANCED, 4).setProjectiles(10).setDamage(1F/4F).setSpread(buckshotSpread).setRicochetAngle(15).setThresholdNegation(10F).setArmorPiercing(0.2F).setDoesPenetrate(true).setDamageFalloffByPen(false).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(0x538D53, SpentCasing.COLOR_CASE_12GA).setScale(1F).register("10GADU")); g10_slug = new BulletConfig().setItem(EnumAmmo.G10_SLUG).setCasing(EnumCasingType.BUCKSHOT_ADVANCED, 4).setRicochetAngle(15).setThresholdNegation(10F).setArmorPiercing(0.1F).setDoesPenetrate(true).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(0x808080, SpentCasing.COLOR_CASE_12GA).setScale(1F).register("10GASlug")); g10_explosive = new BulletConfig().setItem(EnumAmmo.G10_EXPLOSIVE).setCasing(EnumCasingType.BUCKSHOT_ADVANCED, 4).setWear(3F).setProjectiles(10).setDamage(1F/4F).setSpread(buckshotSpread).setCasing(new SpentCasing(CasingType.SHOTGUN).setColor(0xFAC943, SpentCasing.COLOR_CASE_12GA).setScale(1F).register("10GAEXP")).setOnImpact(LAMBDA_TINY_EXPLODE); diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory22lr.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory22lr.java index c17f707fc..7ebd39553 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory22lr.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory22lr.java @@ -42,7 +42,7 @@ public class XFactory22lr { .setCasing(casing22.clone().register("p22fmj")); p22_jhp = new BulletConfig().setItem(EnumAmmo.P22_JHP).setCasing(EnumCasingType.SMALL, 24).setKnockback(0F).setDamage(1.5F).setHeadshot(1.5F).setArmorPiercing(-0.25F) .setCasing(casing22.clone().register("p22jhp")); - p22_ap = new BulletConfig().setItem(EnumAmmo.P22_AP).setCasing(EnumCasingType.SMALL_STEEL, 24).setKnockback(0F).setDoesPenetrate(true).setDamageFalloutByPen(false).setDamage(1.25F).setThresholdNegation(2.5F).setArmorPiercing(0.15F) + p22_ap = new BulletConfig().setItem(EnumAmmo.P22_AP).setCasing(EnumCasingType.SMALL_STEEL, 24).setKnockback(0F).setDoesPenetrate(true).setDamageFalloffByPen(false).setDamage(1.25F).setThresholdNegation(2.5F).setArmorPiercing(0.15F) .setCasing(casing22.clone().setColor(SpentCasing.COLOR_CASE_44).register("p22ap")); ModItems.gun_am180 = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory357.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory357.java index f55e785eb..adfc26784 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory357.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory357.java @@ -35,7 +35,7 @@ public class XFactory357 { m357_sp = new BulletConfig().setItem(EnumAmmo.M357_SP).setCasing(EnumCasingType.SMALL, 8); m357_fmj = new BulletConfig().setItem(EnumAmmo.M357_FMJ).setCasing(EnumCasingType.SMALL, 8).setDamage(0.8F).setThresholdNegation(2F).setArmorPiercing(0.1F); m357_jhp = new BulletConfig().setItem(EnumAmmo.M357_JHP).setCasing(EnumCasingType.SMALL, 8).setDamage(1.5F).setHeadshot(1.5F).setArmorPiercing(-0.25F); - m357_ap = new BulletConfig().setItem(EnumAmmo.M357_AP).setCasing(EnumCasingType.SMALL_STEEL, 8).setDoesPenetrate(true).setDamageFalloutByPen(false).setDamage(1.25F).setThresholdNegation(5F).setArmorPiercing(0.15F); + m357_ap = new BulletConfig().setItem(EnumAmmo.M357_AP).setCasing(EnumCasingType.SMALL_STEEL, 8).setDoesPenetrate(true).setDamageFalloffByPen(false).setDamage(1.25F).setThresholdNegation(5F).setArmorPiercing(0.15F); m357_express = new BulletConfig().setItem(EnumAmmo.M357_EXPRESS).setCasing(EnumCasingType.SMALL, 8).setDoesPenetrate(true).setDamage(1.5F).setThresholdNegation(2F).setArmorPiercing(0.1F).setWear(1.5F); ModItems.gun_light_revolver = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory44.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory44.java index 91d53aa7a..5a97bc4b5 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory44.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory44.java @@ -77,7 +77,7 @@ public class XFactory44 { .setCasing(casing44.clone().register("m44fmj")); m44_jhp = new BulletConfig().setItem(EnumAmmo.M44_JHP).setCasing(EnumCasingType.SMALL, 6).setDamage(1.5F).setHeadshot(1.5F).setArmorPiercing(-0.25F) .setCasing(casing44.clone().register("m44jhp")); - m44_ap = new BulletConfig().setItem(EnumAmmo.M44_AP).setCasing(EnumCasingType.SMALL_STEEL, 6).setDoesPenetrate(true).setDamageFalloutByPen(false).setDamage(1.25F).setThresholdNegation(7.5F).setArmorPiercing(0.15F) + m44_ap = new BulletConfig().setItem(EnumAmmo.M44_AP).setCasing(EnumCasingType.SMALL_STEEL, 6).setDoesPenetrate(true).setDamageFalloffByPen(false).setDamage(1.25F).setThresholdNegation(7.5F).setArmorPiercing(0.15F) .setCasing(casing44.clone().setColor(SpentCasing.COLOR_CASE_44).register("m44ap")); m44_express = new BulletConfig().setItem(EnumAmmo.M44_EXPRESS).setCasing(EnumCasingType.SMALL, 6).setDoesPenetrate(true).setDamage(1.5F).setThresholdNegation(3F).setArmorPiercing(0.1F).setWear(1.5F) .setCasing(casing44.clone().register("m44express")); diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory45.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory45.java index e9c35b607..6225637a4 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory45.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory45.java @@ -22,9 +22,9 @@ public class XFactory45 { .setCasing(casing9.clone().register("p45fmj")); p45_jhp = new BulletConfig().setItem(EnumAmmo.P45_JHP).setCasing(EnumCasingType.SMALL, 8).setDamage(1.5F).setHeadshot(1.5F).setArmorPiercing(-0.25F) .setCasing(casing9.clone().register("p45jhp")); - p45_ap = new BulletConfig().setItem(EnumAmmo.P45_AP).setCasing(EnumCasingType.SMALL_STEEL, 8).setDoesPenetrate(true).setDamageFalloutByPen(false).setDamage(1.25F).setThresholdNegation(5F).setArmorPiercing(0.15F) + p45_ap = new BulletConfig().setItem(EnumAmmo.P45_AP).setCasing(EnumCasingType.SMALL_STEEL, 8).setDoesPenetrate(true).setDamageFalloffByPen(false).setDamage(1.25F).setThresholdNegation(5F).setArmorPiercing(0.15F) .setCasing(casing9.clone().setColor(SpentCasing.COLOR_CASE_44).register("p45ap")); - p45_du = new BulletConfig().setItem(EnumAmmo.P45_DU).setCasing(EnumCasingType.SMALL_STEEL, 8).setDoesPenetrate(true).setDamageFalloutByPen(false).setDamage(2.5F).setThresholdNegation(15F).setArmorPiercing(0.25F) + p45_du = new BulletConfig().setItem(EnumAmmo.P45_DU).setCasing(EnumCasingType.SMALL_STEEL, 8).setDoesPenetrate(true).setDamageFalloffByPen(false).setDamage(2.5F).setThresholdNegation(15F).setArmorPiercing(0.25F) .setCasing(casing9.clone().setColor(SpentCasing.COLOR_CASE_44).register("p45du")); } } diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory50.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory50.java index aee2cab44..66327e98a 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory50.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory50.java @@ -47,11 +47,11 @@ public class XFactory50 { .setCasing(casing762.clone().register("bmg50fmj")); bmg50_jhp = new BulletConfig().setItem(EnumAmmo.BMG50_JHP).setCasing(EnumCasingType.LARGE, 12).setDamage(1.5F).setHeadshot(1.5F).setArmorPiercing(-0.25F) .setCasing(casing762.clone().register("bmg50jhp")); - bmg50_ap = new BulletConfig().setItem(EnumAmmo.BMG50_AP).setCasing(EnumCasingType.LARGE_STEEL, 12).setDoesPenetrate(true).setDamageFalloutByPen(false).setDamage(1.25F).setThresholdNegation(17.5F).setArmorPiercing(0.15F) + bmg50_ap = new BulletConfig().setItem(EnumAmmo.BMG50_AP).setCasing(EnumCasingType.LARGE_STEEL, 12).setDoesPenetrate(true).setDamageFalloffByPen(false).setDamage(1.25F).setThresholdNegation(17.5F).setArmorPiercing(0.15F) .setCasing(casing762.clone().setColor(SpentCasing.COLOR_CASE_44).register("bmg50ap")); - bmg50_du = new BulletConfig().setItem(EnumAmmo.BMG50_DU).setCasing(EnumCasingType.LARGE_STEEL, 12).setDoesPenetrate(true).setDamageFalloutByPen(false).setDamage(1.5F).setThresholdNegation(21F).setArmorPiercing(0.25F) + bmg50_du = new BulletConfig().setItem(EnumAmmo.BMG50_DU).setCasing(EnumCasingType.LARGE_STEEL, 12).setDoesPenetrate(true).setDamageFalloffByPen(false).setDamage(1.5F).setThresholdNegation(21F).setArmorPiercing(0.25F) .setCasing(casing762.clone().setColor(SpentCasing.COLOR_CASE_44).register("bmg50du")); - bmg50_he = new BulletConfig().setItem(EnumAmmo.BMG50_HE).setCasing(EnumCasingType.LARGE_STEEL, 12).setWear(3F).setDoesPenetrate(true).setDamageFalloutByPen(false).setDamage(1.75F).setOnImpact(LAMBDA_STANDARD_EXPLODE) + bmg50_he = new BulletConfig().setItem(EnumAmmo.BMG50_HE).setCasing(EnumCasingType.LARGE_STEEL, 12).setWear(3F).setDoesPenetrate(true).setDamageFalloffByPen(false).setDamage(1.75F).setOnImpact(LAMBDA_STANDARD_EXPLODE) .setCasing(casing762.clone().setColor(SpentCasing.COLOR_CASE_44).register("bmg50he")); ModItems.gun_m2 = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory556mm.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory556mm.java index 2764ecafe..6165e3b37 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory556mm.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory556mm.java @@ -64,7 +64,7 @@ public class XFactory556mm { .setCasing(casing556.clone().register("r556fmj")); r556_jhp = new BulletConfig().setItem(EnumAmmo.R556_JHP).setCasing(EnumCasingType.SMALL, 8).setDamage(1.5F).setHeadshot(1.5F).setArmorPiercing(-0.25F) .setCasing(casing556.clone().register("r556jhp")); - r556_ap = new BulletConfig().setItem(EnumAmmo.R556_AP).setCasing(EnumCasingType.SMALL_STEEL, 8).setDoesPenetrate(true).setDamageFalloutByPen(false).setDamage(1.25F).setThresholdNegation(10F).setArmorPiercing(0.15F) + r556_ap = new BulletConfig().setItem(EnumAmmo.R556_AP).setCasing(EnumCasingType.SMALL_STEEL, 8).setDoesPenetrate(true).setDamageFalloffByPen(false).setDamage(1.25F).setThresholdNegation(10F).setArmorPiercing(0.15F) .setCasing(casing556.clone().setColor(SpentCasing.COLOR_CASE_44).register("r556ap")); r556_inc_sp = r556_sp.clone().setOnImpact(INCENDIARY); diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory762mm.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory762mm.java index 16d03dea0..cc31aace7 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory762mm.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory762mm.java @@ -54,9 +54,9 @@ public class XFactory762mm { .setCasing(casing762.clone().register("r762fmj")); r762_jhp = new BulletConfig().setItem(EnumAmmo.R762_JHP).setCasing(EnumCasingType.SMALL, 6).setDamage(1.5F).setHeadshot(1.5F).setArmorPiercing(-0.25F) .setCasing(casing762.clone().register("r762jhp")); - r762_ap = new BulletConfig().setItem(EnumAmmo.R762_AP).setCasing(EnumCasingType.SMALL_STEEL, 6).setDoesPenetrate(true).setDamageFalloutByPen(false).setDamage(1.25F).setThresholdNegation(12.5F).setArmorPiercing(0.15F) + r762_ap = new BulletConfig().setItem(EnumAmmo.R762_AP).setCasing(EnumCasingType.SMALL_STEEL, 6).setDoesPenetrate(true).setDamageFalloffByPen(false).setDamage(1.25F).setThresholdNegation(12.5F).setArmorPiercing(0.15F) .setCasing(casing762.clone().setColor(SpentCasing.COLOR_CASE_44).register("r762ap")); - r762_du = new BulletConfig().setItem(EnumAmmo.R762_DU).setCasing(EnumCasingType.SMALL_STEEL, 6).setDoesPenetrate(true).setDamageFalloutByPen(false).setDamage(1.5F).setThresholdNegation(15F).setArmorPiercing(0.25F) + r762_du = new BulletConfig().setItem(EnumAmmo.R762_DU).setCasing(EnumCasingType.SMALL_STEEL, 6).setDoesPenetrate(true).setDamageFalloffByPen(false).setDamage(1.5F).setThresholdNegation(15F).setArmorPiercing(0.25F) .setCasing(casing762.clone().setColor(SpentCasing.COLOR_CASE_44).register("r762du")); r762_he = new BulletConfig().setItem(EnumAmmo.R762_HE).setCasing(EnumCasingType.SMALL_STEEL, 6).setWear(3F).setDamage(1.75F).setOnImpact(LAMBDA_TINY_EXPLODE) .setCasing(casing762.clone().setColor(SpentCasing.COLOR_CASE_44).register("r762he")); diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory9mm.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory9mm.java index 6f13f76a4..5fbb723dd 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory9mm.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory9mm.java @@ -47,7 +47,7 @@ public class XFactory9mm { .setCasing(casing9.clone().register("p9fmj")); p9_jhp = new BulletConfig().setItem(EnumAmmo.P9_JHP).setCasing(EnumCasingType.SMALL, 12).setDamage(1.5F).setHeadshot(1.5F).setArmorPiercing(-0.25F) .setCasing(casing9.clone().register("p9jhp")); - p9_ap = new BulletConfig().setItem(EnumAmmo.P9_AP).setCasing(EnumCasingType.SMALL_STEEL, 12).setDoesPenetrate(true).setDamageFalloutByPen(false).setDamage(1.25F).setThresholdNegation(5F).setArmorPiercing(0.15F) + p9_ap = new BulletConfig().setItem(EnumAmmo.P9_AP).setCasing(EnumCasingType.SMALL_STEEL, 12).setDoesPenetrate(true).setDamageFalloffByPen(false).setDamage(1.25F).setThresholdNegation(5F).setArmorPiercing(0.15F) .setCasing(casing9.clone().setColor(SpentCasing.COLOR_CASE_44).register("p9ap")); ModItems.gun_greasegun = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryAccelerator.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryAccelerator.java index 5773e2ab7..7f8bfa5a9 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryAccelerator.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryAccelerator.java @@ -80,14 +80,14 @@ public class XFactoryAccelerator { public static void init() { - tau_uranium = new BulletConfig().setItem(EnumAmmo.TAU_URANIUM).setCasing(new ItemStack(ModItems.plate_lead, 2), 16).setupDamageClass(DamageClass.SUBATOMIC).setBeam().setLife(5).setRenderRotations(false).setDoesPenetrate(true).setDamageFalloutByPen(false) + tau_uranium = new BulletConfig().setItem(EnumAmmo.TAU_URANIUM).setCasing(new ItemStack(ModItems.plate_lead, 2), 16).setupDamageClass(DamageClass.SUBATOMIC).setBeam().setLife(5).setRenderRotations(false).setDoesPenetrate(true).setDamageFalloffByPen(false) .setOnBeamImpact(BulletConfig.LAMBDA_BEAM_HIT); - tau_uranium_charge = new BulletConfig().setItem(EnumAmmo.TAU_URANIUM).setCasing(new ItemStack(ModItems.plate_lead, 2), 16).setupDamageClass(DamageClass.SUBATOMIC).setBeam().setLife(5).setRenderRotations(false).setDoesPenetrate(true).setDamageFalloutByPen(false).setSpectral(true) + tau_uranium_charge = new BulletConfig().setItem(EnumAmmo.TAU_URANIUM).setCasing(new ItemStack(ModItems.plate_lead, 2), 16).setupDamageClass(DamageClass.SUBATOMIC).setBeam().setLife(5).setRenderRotations(false).setDoesPenetrate(true).setDamageFalloffByPen(false).setSpectral(true) .setOnBeamImpact(BulletConfig.LAMBDA_BEAM_HIT); - coil_tungsten = new BulletConfig().setItem(EnumAmmo.COIL_TUNGSTEN).setVel(7.5F).setLife(50).setDoesPenetrate(true).setDamageFalloutByPen(false).setSpectral(true) + coil_tungsten = new BulletConfig().setItem(EnumAmmo.COIL_TUNGSTEN).setVel(7.5F).setLife(50).setDoesPenetrate(true).setDamageFalloffByPen(false).setSpectral(true) .setOnUpdate(LAMBDA_UPDATE_TUNGSTEN); - coil_ferrouranium = new BulletConfig().setItem(EnumAmmo.COIL_FERROURANIUM).setVel(7.5F).setLife(50).setDoesPenetrate(true).setDamageFalloutByPen(false).setSpectral(true) + coil_ferrouranium = new BulletConfig().setItem(EnumAmmo.COIL_FERROURANIUM).setVel(7.5F).setLife(50).setDoesPenetrate(true).setDamageFalloffByPen(false).setSpectral(true) .setOnUpdate(LAMBDA_UPDATE_FERRO); tauChargeMag.addConfigs(tau_uranium_charge); diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryBlackPowder.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryBlackPowder.java index e3366bca2..e8637d22a 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryBlackPowder.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryBlackPowder.java @@ -24,7 +24,7 @@ public class XFactoryBlackPowder { public static BulletConfig stone = new BulletConfig().setItem(EnumAmmo.STONE).setBlackPowder(true).setHeadshot(1F).setSpread(0.025F).setRicochetAngle(15); public static BulletConfig flint = new BulletConfig().setItem(EnumAmmo.STONE_AP).setBlackPowder(true).setHeadshot(1F).setSpread(0.01F).setRicochetAngle(5).setDoesPenetrate(true).setDamage(1.5F); - public static BulletConfig iron = new BulletConfig().setItem(EnumAmmo.STONE_IRON).setBlackPowder(true).setHeadshot(1F).setSpread(0F).setRicochetAngle(90).setRicochetCount(5).setDoesPenetrate(true).setDamageFalloutByPen(false).setDamage(1.5F); + public static BulletConfig iron = new BulletConfig().setItem(EnumAmmo.STONE_IRON).setBlackPowder(true).setHeadshot(1F).setSpread(0F).setRicochetAngle(90).setRicochetCount(5).setDoesPenetrate(true).setDamageFalloffByPen(false).setDamage(1.5F); public static BulletConfig shot = new BulletConfig().setItem(EnumAmmo.STONE_SHOT).setBlackPowder(true).setHeadshot(1F).setSpread(0.1F).setRicochetAngle(45).setProjectiles(6, 6).setDamage(1F/6F); public static void init() { 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 5ec5df8c3..a2e230d27 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 @@ -1,5 +1,7 @@ package com.hbm.items.weapon.sedna.factory; +import java.util.Collections; +import java.util.List; import java.util.function.BiConsumer; import java.util.function.BiFunction; @@ -38,8 +40,10 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.potion.Potion; import net.minecraft.potion.PotionEffect; +import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.ResourceLocation; +import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @@ -49,6 +53,8 @@ public class XFactoryEnergy { public static BulletConfig energy_tesla; public static BulletConfig energy_tesla_overcharge; + public static BulletConfig energy_tesla_ir; + public static BulletConfig energy_tesla_ir_sub; public static BulletConfig energy_las; public static BulletConfig energy_las_overcharge; @@ -95,6 +101,28 @@ public class XFactoryEnergy { } }; + public static BiConsumer LAMBDA_LIGHTNING_SPLIT = (beam, mop) -> { + LAMBDA_LIGHTNING_HIT.accept(beam, mop); + if(mop.typeOfHit != mop.typeOfHit.ENTITY) return; + + double range = 20; + List potentialTargets = beam.worldObj.getEntitiesWithinAABB(EntityLivingBase.class, AxisAlignedBB.getBoundingBox(mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord).expand(range, range, range)); + Collections.shuffle(potentialTargets); + + for(EntityLivingBase target : potentialTargets) { + if(target == beam.thrower) continue; + if(target == mop.entityHit) continue; + + Vec3 delta = Vec3.createVectorHelper(target.posX - mop.hitVec.xCoord, target.posY + target.height / 2 - mop.hitVec.yCoord, target.posZ - mop.hitVec.zCoord); + if(delta.lengthVector() > 20) continue; + EntityBulletBeamBase sub = new EntityBulletBeamBase(beam.thrower, energy_tesla_ir_sub, beam.damage); + sub.setPosition(mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord); + sub.setRotationsFromVector(delta); + sub.performHitscanExternal(delta.lengthVector()); + beam.worldObj.spawnEntityInWorld(sub); + } + }; + public static BiConsumer LAMBDA_IR_HIT = (beam, mop) -> { BulletConfig.LAMBDA_STANDARD_BEAM_HIT.accept(beam, mop); @@ -129,6 +157,10 @@ public class XFactoryEnergy { .setOnBeamImpact(LAMBDA_LIGHTNING_HIT); energy_tesla_overcharge = new BulletConfig().setItem(EnumAmmo.CAPACITOR_OVERCHARGE).setCasing(new ItemStack(ModItems.ingot_polymer, 2), 4).setupDamageClass(DamageClass.ELECTRIC).setBeam().setSpread(0.0F).setLife(5).setRenderRotations(false).setDoesPenetrate(true) .setDamage(1.5F).setOnBeamImpact(LAMBDA_LIGHTNING_HIT); + energy_tesla_ir = new BulletConfig().setItem(EnumAmmo.CAPACITOR_IR).setCasing(new ItemStack(ModItems.ingot_polymer, 2), 4).setupDamageClass(DamageClass.ELECTRIC).setBeam().setSpread(0.0F).setLife(5).setRenderRotations(false) + .setDamage(0.8F).setOnBeamImpact(LAMBDA_LIGHTNING_SPLIT); + energy_tesla_ir_sub = new BulletConfig().setItem(EnumAmmo.CAPACITOR_IR).setupDamageClass(DamageClass.ELECTRIC).setBeam().setSpread(0.0F).setLife(3).setWear(3F).setRenderRotations(false).setDoesPenetrate(true) + .setDamage(0.5F).setOnBeamImpact(BulletConfig.LAMBDA_STANDARD_BEAM_HIT); energy_las = new BulletConfig().setItem(EnumAmmo.CAPACITOR).setCasing(new ItemStack(ModItems.ingot_polymer, 2), 4).setupDamageClass(DamageClass.LASER).setBeam().setSpread(0.0F).setLife(5).setRenderRotations(false).setOnBeamImpact(BulletConfig.LAMBDA_STANDARD_BEAM_HIT); energy_las_overcharge = new BulletConfig().setItem(EnumAmmo.CAPACITOR_OVERCHARGE).setCasing(new ItemStack(ModItems.ingot_polymer, 2), 4).setupDamageClass(DamageClass.LASER).setBeam().setSpread(0.0F).setLife(5).setRenderRotations(false).setDoesPenetrate(true).setOnBeamImpact(BulletConfig.LAMBDA_STANDARD_BEAM_HIT); @@ -142,7 +174,7 @@ public class XFactoryEnergy { .dura(1_000).draw(10).inspect(33).crosshair(Crosshair.CIRCLE) .rec(new Receiver(0) .dmg(35F).delay(20).spreadHipfire(1.5F).reload(44).jam(19).sound("hbm:weapon.fire.tesla", 1.0F, 1.0F) - .mag(new MagazineBelt().addConfigs(energy_tesla, energy_tesla_overcharge)) + .mag(new MagazineBelt().addConfigs(energy_tesla, energy_tesla_overcharge, energy_tesla_ir)) .offset(0.75, 0, -0.375).offsetScoped(0.75, 0, -0.25) .setupStandardFire().recoil(LAMBDA_RECOIL_ENERGY)) .setupStandardConfiguration() diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryTurret.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryTurret.java index 0c5e332aa..38c0680e0 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryTurret.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryTurret.java @@ -42,7 +42,7 @@ public class XFactoryTurret { bullet.setDead(); }); shell_ap = new BulletConfig().setItem(ModItems.ammo_shell.stackFromEnum(Ammo240Shell.APFSDS_T)).setDamage(2F).setDoesPenetrate(true).setCasing(CASINNG240MM.clone().register("240w")); - shell_du = new BulletConfig().setItem(ModItems.ammo_shell.stackFromEnum(Ammo240Shell.APFSDS_DU)).setDamage(2.5F).setDoesPenetrate(true).setDamageFalloutByPen(false).setCasing(CASINNG240MM.clone().register("240u")); + shell_du = new BulletConfig().setItem(ModItems.ammo_shell.stackFromEnum(Ammo240Shell.APFSDS_DU)).setDamage(2.5F).setDoesPenetrate(true).setDamageFalloffByPen(false).setCasing(CASINNG240MM.clone().register("240u")); shell_w9 = new BulletConfig().setItem(ModItems.ammo_shell.stackFromEnum(Ammo240Shell.W9)).setDamage(2.5F).setCasing(CASINNG240MM.clone().register("240n")).setOnImpact(XFactoryCatapult.LAMBDA_NUKE_STANDARD); } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityGeiger.java b/src/main/java/com/hbm/tileentity/machine/TileEntityGeiger.java index 8f360ab4c..98719f542 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityGeiger.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityGeiger.java @@ -8,6 +8,7 @@ import com.hbm.handler.radiation.ChunkRadiationManager; import com.hbm.util.CompatEnergyControl; import com.hbm.util.ContaminationUtil; +import api.hbm.redstoneoverradio.IRORValueProvider; import api.hbm.tile.IInfoProviderEC; import cpw.mods.fml.common.Optional; import cpw.mods.fml.relauncher.Side; @@ -21,10 +22,10 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityGeiger extends TileEntity implements SimpleComponent, IInfoProviderEC, CompatHandler.OCComponent { +public class TileEntityGeiger extends TileEntity implements SimpleComponent, IInfoProviderEC, CompatHandler.OCComponent, IRORValueProvider { int timer = 0; - int ticker = 0; + float ticker = 0; @Override public void updateEntity() { @@ -37,30 +38,23 @@ public class TileEntityGeiger extends TileEntity implements SimpleComponent, IIn } if(timer % 5 == 0) { + if(ticker > 0) { List list = new ArrayList(); - if(ticker < 1) - list.add(0); - if(ticker < 5) - list.add(0); - if(ticker < 10) - list.add(1); - if(ticker > 5 && ticker < 15) - list.add(2); - if(ticker > 10 && ticker < 20) - list.add(3); - if(ticker > 15 && ticker < 25) - list.add(4); - if(ticker > 20 && ticker < 30) - list.add(5); - if(ticker > 25) - list.add(6); + if(ticker < 1) list.add(0); + if(ticker < 5) list.add(0); + if(ticker < 10) list.add(1); + if(ticker > 5 && ticker < 15) list.add(2); + if(ticker > 10 && ticker < 20) list.add(3); + if(ticker > 15 && ticker < 25) list.add(4); + if(ticker > 20 && ticker < 30) list.add(5); + if(ticker > 25) list.add(6); int r = list.get(worldObj.rand.nextInt(list.size())); - if(r > 0) - worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "hbm:item.geiger" + r, 1.0F, 1.0F); + if(r > 0) worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "hbm:item.geiger" + r, 1.0F, 1.0F); + } else if(worldObj.rand.nextInt(50) == 0) { worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "hbm:item.geiger"+ (1 + worldObj.rand.nextInt(1)), 1.0F, 1.0F); } @@ -68,9 +62,8 @@ public class TileEntityGeiger extends TileEntity implements SimpleComponent, IIn } - public int check() { - int rads = (int)Math.ceil(ChunkRadiationManager.proxy.getRadiation(worldObj, xCoord, yCoord, zCoord)); - return rads; + public float check() { + return ChunkRadiationManager.proxy.getRadiation(worldObj, xCoord, yCoord, zCoord); } @Override @Optional.Method(modid = "OpenComputers") @@ -86,7 +79,7 @@ public class TileEntityGeiger extends TileEntity implements SimpleComponent, IIn @Override public void provideExtraInfo(NBTTagCompound data) { - int rads = check(); + int rads = (int) Math.ceil(ticker); String chunkPrefix = ContaminationUtil.getPreffixFromRad(rads); data.setString(CompatEnergyControl.S_CHUNKRAD, chunkPrefix + rads + " RAD/s"); @@ -99,8 +92,20 @@ public class TileEntityGeiger extends TileEntity implements SimpleComponent, IIn @Override @SideOnly(Side.CLIENT) - public double getMaxRenderDistanceSquared() - { + public double getMaxRenderDistanceSquared() { return 65536.0D; } + + @Override + public String[] getFunctionInfo() { + return new String[] { + PREFIX_VALUE + "rad", + }; + } + + @Override + public String provideRORValue(String name) { + if((PREFIX_VALUE + "rad").equals(name)) return "" + (int) Math.ceil(ticker); + return null; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java index 3027f2130..07567418d 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java @@ -394,14 +394,10 @@ public class TileEntityBarrel extends TileEntityMachineBase implements SimpleCom @Optional.Method(modid = "OpenComputers") public Object[] invoke(String method, Context context, Arguments args) throws Exception { switch (method) { - case "getFluidStored": - return getFluidStored(context, args); - case "getMaxStored": - return getMaxStored(context, args); - case "getTypeStored": - return getTypeStored(context, args); - case "getInfo": - return getInfo(context, args); + case "getFluidStored": return getFluidStored(context, args); + case "getMaxStored": return getMaxStored(context, args); + case "getTypeStored": return getTypeStored(context, args); + case "getInfo": return getInfo(context, args); } throw new NoSuchMethodException(); } diff --git a/src/main/java/com/hbm/uninos/networkproviders/PneumaticNetwork.java b/src/main/java/com/hbm/uninos/networkproviders/PneumaticNetwork.java index 39eb3692e..0bce26700 100644 --- a/src/main/java/com/hbm/uninos/networkproviders/PneumaticNetwork.java +++ b/src/main/java/com/hbm/uninos/networkproviders/PneumaticNetwork.java @@ -76,6 +76,7 @@ public class PneumaticNetwork extends NodeNet { int index = nextReceiver % receivers.size(); Entry> chosenReceiverEntry = null; + nextReceiver++; if(receiveOrder == RECEIVE_ROBIN) chosenReceiverEntry = receiverList.get(index); if(receiveOrder == RECEIVE_RANDOM) chosenReceiverEntry = receiverList.get(rand.nextInt(receiverList.size())); @@ -93,7 +94,6 @@ public class PneumaticNetwork extends NodeNet { if(tile1 != null && tile2 != null) { int sq = (tile1.xCoord - tile2.xCoord) * (tile1.xCoord - tile2.xCoord) + (tile1.yCoord - tile2.yCoord) * (tile1.yCoord - tile2.yCoord) + (tile1.zCoord - tile2.zCoord) * (tile1.zCoord - tile2.zCoord); if(sq > maxRange * maxRange) { - nextReceiver++; return false; } } @@ -160,7 +160,6 @@ public class PneumaticNetwork extends NodeNet { // make sure both parties are saved to disk and increment the counter for round robin if(didSomething) { - nextReceiver++; source.markDirty(); dest.markDirty(); } diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 82377114e..8754ff757 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -1064,7 +1064,7 @@ item.ammo_standard.bmg50_he.name=.50 BMG Patrone (Explosiv) item.ammo_standard.bmg50_fmj.name=.50 BMG Patrone (Vollmantelgeschoss) item.ammo_standard.bmg50_jhp.name=.50 BMG Patrone (Hohlspitz) item.ammo_standard.bmg50_sp.name=.50 BMG Patrone (Teilmantelgeschoss) -item.ammo_standard.capacitor.name=Kondensator +item.ammo_standard.capacitor.name=Kondensator (Standard) item.ammo_standard.capacitor_ir.name=Capacitor (niedrige Wellenlänge) item.ammo_standard.capacitor_overcharge.name=Kondensator (Überladung) item.ammo_standard.coil_ferrouranium.name=Ferrourankugel diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index a038ed7c4..d74714a4f 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -1790,7 +1790,7 @@ item.ammo_standard.bmg50_he.name=.50 BMG Round (High-Explosive) item.ammo_standard.bmg50_fmj.name=.50 BMG Round (Full Metal Jacket) item.ammo_standard.bmg50_jhp.name=.50 BMG Round (Jacketed Hollow Point) item.ammo_standard.bmg50_sp.name=.50 BMG Round (Soft Point) -item.ammo_standard.capacitor.name=Capacitor +item.ammo_standard.capacitor.name=Capacitor (Standard) item.ammo_standard.capacitor_ir.name=Capacitor (Low Wavelength) item.ammo_standard.capacitor_overcharge.name=Capacitor (Overcharge) item.ammo_standard.coil_ferrouranium.name=Coilgun Ferrouranium Ball