From 1ed4a43721b74bbd683dfb299906f2295967a093 Mon Sep 17 00:00:00 2001 From: Atsuihsio <842960157@qq.com> Date: Wed, 12 Feb 2025 02:33:39 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=96=B0=E4=BC=A4=E5=AE=B3?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B=EF=BC=8C=E4=BF=AE=E5=A4=8D=E6=89=8B=E6=8C=81?= =?UTF-8?q?=E6=90=BA=E5=B8=A6=E5=BC=BA=E5=8A=9B=E5=90=B8=E5=BC=95=E6=A8=A1?= =?UTF-8?q?=E7=BB=84=E7=9A=84=E6=AD=A6=E5=99=A8=E6=97=B6=EF=BC=8C=E7=82=AE?= =?UTF-8?q?=E5=A1=94=E5=87=BB=E6=9D=80=E7=9B=AE=E6=A0=87=E4=BC=9A=E6=8D=A1?= =?UTF-8?q?=E8=B5=B7=E7=89=A9=E5=93=81=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../client/overlay/KillMessageOverlay.java | 2 +- .../entity/vehicle/LaserTowerEntity.java | 9 ++++++--- .../superbwarfare/event/LivingEventHandler.java | 2 +- .../superbwarfare/init/ModDamageTypes.java | 5 +++++ .../atsuishio/superbwarfare/init/ModSounds.java | 1 + .../superbwarfare/tools/DamageTypeTool.java | 4 ++++ .../resources/assets/superbwarfare/sounds.json | 8 ++++++++ .../superbwarfare/sounds/laser_tower_shoot.ogg | Bin 0 -> 17715 bytes .../damage_type/always_hurts_ender_dragons.json | 3 ++- .../tags/damage_type/bypasses_armor.json | 3 ++- .../tags/damage_type/bypasses_effects.json | 3 ++- .../tags/damage_type/bypasses_enchantments.json | 3 ++- .../tags/damage_type/bypasses_resistance.json | 3 ++- .../tags/damage_type/no_knockback.json | 3 ++- .../superbwarfare/damage_type/laser_static.json | 5 +++++ 15 files changed, 43 insertions(+), 11 deletions(-) create mode 100644 src/main/resources/assets/superbwarfare/sounds/laser_tower_shoot.ogg create mode 100644 src/main/resources/data/superbwarfare/damage_type/laser_static.json diff --git a/src/main/java/com/atsuishio/superbwarfare/client/overlay/KillMessageOverlay.java b/src/main/java/com/atsuishio/superbwarfare/client/overlay/KillMessageOverlay.java index bdc24e9b3..a627221cd 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/overlay/KillMessageOverlay.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/overlay/KillMessageOverlay.java @@ -321,7 +321,7 @@ public class KillMessageOverlay { icon = BURN; } else if (record.damageType == ModDamageTypes.DRONE_HIT) { icon = DRONE; - } else if (record.damageType == ModDamageTypes.LASER || record.damageType == ModDamageTypes.LASER_HEADSHOT) { + } else if (record.damageType == ModDamageTypes.LASER || record.damageType == ModDamageTypes.LASER_HEADSHOT || record.damageType == ModDamageTypes.LASER_STATIC) { icon = LASER; } else if (record.damageType == ModDamageTypes.VEHICLE_STRIKE) { icon = VEHICLE; diff --git a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/LaserTowerEntity.java b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/LaserTowerEntity.java index e94af8f69..b9d1ef209 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/LaserTowerEntity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/LaserTowerEntity.java @@ -6,6 +6,7 @@ import com.atsuishio.superbwarfare.tools.CustomExplosion; import com.atsuishio.superbwarfare.tools.EntityFindUtil; import com.atsuishio.superbwarfare.tools.ParticleTool; import com.atsuishio.superbwarfare.tools.VectorTool; +import net.minecraft.core.particles.ParticleTypes; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.protocol.Packet; import net.minecraft.network.protocol.game.ClientGamePacketListener; @@ -287,10 +288,12 @@ public class LaserTowerEntity extends EnergyVehicleEntity implements GeoEntity, this.setRot(this.getYRot(), this.getXRot()); if (this.entityData.get(COOL_DOWN) == 0 && VectorTool.calculateAngle(getViewVector(1), targetVec) < 1) { - if (level() instanceof ServerLevel) { - this.level().playSound(this, getOnPos(), ModSounds.CHARGE_RIFLE_FIRE_BOOM_3P.get(), SoundSource.PLAYERS, 2, 1); + if (level() instanceof ServerLevel serverLevel) { + this.level().playSound(this, getOnPos(), ModSounds.LASER_TOWER_SHOOT.get(), SoundSource.PLAYERS, 2, 1); + sendParticle(serverLevel, ParticleTypes.END_ROD, naerestEntity.getX(), naerestEntity.getEyeY(), naerestEntity.getZ(), 12, 0, 0, 0, 0.05, true); + sendParticle(serverLevel, ParticleTypes.LAVA, naerestEntity.getX(), naerestEntity.getEyeY(), naerestEntity.getZ(), 4, 0, 0, 0, 0.15, true); } - naerestEntity.hurt(ModDamageTypes.causeLaserDamage(this.level().registryAccess(), getOwner(), getOwner()), (float) 25); + naerestEntity.hurt(ModDamageTypes.causeLaserStaticDamage(this.level().registryAccess(), getOwner(), getOwner()), (float) 25); naerestEntity.invulnerableTime = 0; entityData.set(LASER_LENGTH, distanceTo(naerestEntity)); this.entityData.set(COOL_DOWN, 20); diff --git a/src/main/java/com/atsuishio/superbwarfare/event/LivingEventHandler.java b/src/main/java/com/atsuishio/superbwarfare/event/LivingEventHandler.java index 64c3191dc..0780a700f 100644 --- a/src/main/java/com/atsuishio/superbwarfare/event/LivingEventHandler.java +++ b/src/main/java/com/atsuishio/superbwarfare/event/LivingEventHandler.java @@ -765,7 +765,7 @@ public class LivingEventHandler { return; } - if (stack.is(ModTags.Items.GUN) && PerkHelper.getItemPerkLevel(ModPerks.POWERFUL_ATTRACTION.get(), stack) > 0) { + if (stack.is(ModTags.Items.GUN) && PerkHelper.getItemPerkLevel(ModPerks.POWERFUL_ATTRACTION.get(), stack) > 0 && (DamageTypeTool.isGunDamage(source) || DamageTypeTool.isExplosionDamage(source))) { var drops = event.getDrops(); drops.forEach(itemEntity -> { ItemStack item = itemEntity.getItem(); diff --git a/src/main/java/com/atsuishio/superbwarfare/init/ModDamageTypes.java b/src/main/java/com/atsuishio/superbwarfare/init/ModDamageTypes.java index 38ec98115..e7c115d0a 100644 --- a/src/main/java/com/atsuishio/superbwarfare/init/ModDamageTypes.java +++ b/src/main/java/com/atsuishio/superbwarfare/init/ModDamageTypes.java @@ -30,6 +30,7 @@ public class ModDamageTypes { public static final ResourceKey DRONE_HIT = ResourceKey.create(Registries.DAMAGE_TYPE, ModUtils.loc("drone_hit")); public static final ResourceKey LASER = ResourceKey.create(Registries.DAMAGE_TYPE, ModUtils.loc("laser")); public static final ResourceKey LASER_HEADSHOT = ResourceKey.create(Registries.DAMAGE_TYPE, ModUtils.loc("laser_headshot")); + public static final ResourceKey LASER_STATIC = ResourceKey.create(Registries.DAMAGE_TYPE, ModUtils.loc("laser_static")); public static final ResourceKey VEHICLE_STRIKE = ResourceKey.create(Registries.DAMAGE_TYPE, ModUtils.loc("vehicle_strike")); public static final ResourceKey AIR_CRASH = ResourceKey.create(Registries.DAMAGE_TYPE, ModUtils.loc("air_crash")); public static final ResourceKey LUNGE_MINE = ResourceKey.create(Registries.DAMAGE_TYPE, ModUtils.loc("lunge_mine")); @@ -83,6 +84,10 @@ public class ModDamageTypes { return new DamageMessages(registryAccess.registry(Registries.DAMAGE_TYPE).get().getHolderOrThrow(LASER), directEntity, attacker); } + public static DamageSource causeLaserStaticDamage(RegistryAccess registryAccess, @Nullable Entity directEntity, @Nullable Entity attacker) { + return new DamageMessages(registryAccess.registry(Registries.DAMAGE_TYPE).get().getHolderOrThrow(LASER_STATIC), directEntity, attacker); + } + public static DamageSource causeLaserHeadshotDamage(RegistryAccess registryAccess, @Nullable Entity directEntity, @Nullable Entity attacker) { return new DamageMessages(registryAccess.registry(Registries.DAMAGE_TYPE).get().getHolderOrThrow(LASER_HEADSHOT), directEntity, attacker); } diff --git a/src/main/java/com/atsuishio/superbwarfare/init/ModSounds.java b/src/main/java/com/atsuishio/superbwarfare/init/ModSounds.java index 80ae7b2d6..81d60a612 100644 --- a/src/main/java/com/atsuishio/superbwarfare/init/ModSounds.java +++ b/src/main/java/com/atsuishio/superbwarfare/init/ModSounds.java @@ -413,5 +413,6 @@ public class ModSounds { public static final RegistryObject BMP_MISSILE_RELOAD = REGISTRY.register("bmp_missile_reload", () -> SoundEvent.createVariableRangeEvent(ModUtils.loc("bmp_missile_reload"))); public static final RegistryObject BMP_STEP = REGISTRY.register("bmp_step", () -> SoundEvent.createVariableRangeEvent(ModUtils.loc("bmp_step"))); public static final RegistryObject WHEEL_STEP = REGISTRY.register("wheel_step", () -> SoundEvent.createVariableRangeEvent(ModUtils.loc("wheel_step"))); + public static final RegistryObject LASER_TOWER_SHOOT = REGISTRY.register("laser_tower_shoot", () -> SoundEvent.createVariableRangeEvent(ModUtils.loc("laser_tower_shoot"))); } diff --git a/src/main/java/com/atsuishio/superbwarfare/tools/DamageTypeTool.java b/src/main/java/com/atsuishio/superbwarfare/tools/DamageTypeTool.java index 3dc92fd01..7c44eaae4 100644 --- a/src/main/java/com/atsuishio/superbwarfare/tools/DamageTypeTool.java +++ b/src/main/java/com/atsuishio/superbwarfare/tools/DamageTypeTool.java @@ -19,6 +19,10 @@ public class DamageTypeTool { || damageType == ModDamageTypes.GUN_FIRE_ABSOLUTE || damageType == ModDamageTypes.GUN_FIRE_HEADSHOT_ABSOLUTE; } + public static boolean isExplosionDamage(DamageSource source) { + return source.is(ModDamageTypes.CUSTOM_EXPLOSION) || source.is(ModDamageTypes.PROJECTILE_BOOM); + } + public static boolean isHeadshotDamage(DamageSource source) { return source.is(ModDamageTypes.GUN_FIRE_HEADSHOT) || source.is(ModDamageTypes.GUN_FIRE_HEADSHOT_ABSOLUTE); } diff --git a/src/main/resources/assets/superbwarfare/sounds.json b/src/main/resources/assets/superbwarfare/sounds.json index b1fca0b3b..fa57f9e97 100644 --- a/src/main/resources/assets/superbwarfare/sounds.json +++ b/src/main/resources/assets/superbwarfare/sounds.json @@ -2835,5 +2835,13 @@ "stream": false } ] + }, + "laser_tower_shoot": { + "sounds": [ + { + "name": "superbwarfare:laser_tower_shoot", + "stream": false + } + ] } } \ No newline at end of file diff --git a/src/main/resources/assets/superbwarfare/sounds/laser_tower_shoot.ogg b/src/main/resources/assets/superbwarfare/sounds/laser_tower_shoot.ogg new file mode 100644 index 0000000000000000000000000000000000000000..6ad27d07a9064c79fc3979c5d9c6abcd48c6662a GIT binary patch literal 17715 zcmb5WWmp`|vp2lBy95vJ?he6S78aM_?(T%(7CgAS6IcikEV#Q{@SuS}aCw*9_c_o1 zydNH!tGB7C?yhR7Uw3uS460UE8USd(zZb9iKLmH&XJsfdC{HI>QyaHe7L-&q0Pq62 z&Q+oQ{{0H2`dae8uh)`LkUI-BWa4OM;YzQeAjCOW2qA{4!%-hQS2#%VIrw3ddC#WYZ6By2V{t7x^MtUCy66c zgyI6_D8l|LVkk*Bjb}ueAaE z@Qyz4j<@nj`Wt7K*<_af-v)8(Ax3~Wq%Q|uNd5`3uG9#Bdw2){8B=i}^`I-WtQ+^B zo3O0A)S$c4aEj(I*Z}3f1_3hckV_ngSz1GQFj;sKhi7t@dmKkuom+YK{~~DMe)wxI zkcLp?Sf<$qBXT8}{Oy)th**LGL`l?tG(j>%7VMH|PGw$>3!rE25I3az4ipLor!gyo^G{M>QZJU5R_h z-(?}XrSeJ`dYDo4|d0yEFN zmRTHlKi92RK+diNyr9Qa0x@ugl7A2d8B}ufgm>_SfAJBX?g~LgehBh^4%|8QBo^uP ze}u^k5{NPXW6yt$8Kmv$p!?ZlwI$4O$zyXdU~@6f_)WNlZrc9{|1=%a62L2*{=zZE zG?rs9`=g2k(mwVLcb+Iw>e<*=0C!s$A2OR0vk$!_#L_biJbUt{&*_+Bx>Cx+P}!D z$jCjcDE$8+C*L}{EIqm`GWsAgo<1tgCMvVCwa|W~_PFi;82%eM5Wql!G>}^Qe;}uu zgG3Sno-fSGm;ba;WEwI%xJ$qJ&jA1cx)V?pU#Ajkbs)<;kY^sq0@4%#{hzM+S7<>x zHudjJizawW8!L=I!7ipR*f_WzdAh)r=5pdIrx&pYA2n8}3 zI75E*n8;|lSO6&~045?uNdi!gVL#gyouMS#Y=WXR#cf1jFZ<(+d_}g~i~vI-@b%Vp zLjEvYb3%Y2Cls=-L6bm!%%Kpdzye&L0qBDl!t%3H>NDKxS4z_!BGc}M^0P`BIMSeb zDRq#tHrQcW(?WlSdv*?T%cHIdQs;44) yE6t`UFU~utgFN(`9Zb9(R&PXRn;^Fi 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 X-k1D;PQR*5ngDKq0RR910487oZ2mLV literal 0 HcmV?d00001 diff --git a/src/main/resources/data/minecraft/tags/damage_type/always_hurts_ender_dragons.json b/src/main/resources/data/minecraft/tags/damage_type/always_hurts_ender_dragons.json index 57f2a1f9d..6a139e606 100644 --- a/src/main/resources/data/minecraft/tags/damage_type/always_hurts_ender_dragons.json +++ b/src/main/resources/data/minecraft/tags/damage_type/always_hurts_ender_dragons.json @@ -5,6 +5,7 @@ "superbwarfare:custom_explosion", "superbwarfare:cannon_fire", "superbwarfare:laser", - "superbwarfare:laser_headshot" + "superbwarfare:laser_headshot", + "superbwarfare:laser_static" ] } \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/damage_type/bypasses_armor.json b/src/main/resources/data/minecraft/tags/damage_type/bypasses_armor.json index 919981b91..a27494e02 100644 --- a/src/main/resources/data/minecraft/tags/damage_type/bypasses_armor.json +++ b/src/main/resources/data/minecraft/tags/damage_type/bypasses_armor.json @@ -9,6 +9,7 @@ "superbwarfare:laser_headshot", "superbwarfare:vehicle_strike", "superbwarfare:vehicle_explosion", - "superbwarfare:air_crash" + "superbwarfare:air_crash", + "superbwarfare:laser_static" ] } \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/damage_type/bypasses_effects.json b/src/main/resources/data/minecraft/tags/damage_type/bypasses_effects.json index ae10d3fe0..408df7e44 100644 --- a/src/main/resources/data/minecraft/tags/damage_type/bypasses_effects.json +++ b/src/main/resources/data/minecraft/tags/damage_type/bypasses_effects.json @@ -9,6 +9,7 @@ "superbwarfare:laser_headshot", "superbwarfare:vehicle_strike", "superbwarfare:air_crash", - "superbwarfare:vehicle_explosion" + "superbwarfare:vehicle_explosion", + "superbwarfare:laser_static" ] } \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/damage_type/bypasses_enchantments.json b/src/main/resources/data/minecraft/tags/damage_type/bypasses_enchantments.json index ae10d3fe0..408df7e44 100644 --- a/src/main/resources/data/minecraft/tags/damage_type/bypasses_enchantments.json +++ b/src/main/resources/data/minecraft/tags/damage_type/bypasses_enchantments.json @@ -9,6 +9,7 @@ "superbwarfare:laser_headshot", "superbwarfare:vehicle_strike", "superbwarfare:air_crash", - "superbwarfare:vehicle_explosion" + "superbwarfare:vehicle_explosion", + "superbwarfare:laser_static" ] } \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/damage_type/bypasses_resistance.json b/src/main/resources/data/minecraft/tags/damage_type/bypasses_resistance.json index ae10d3fe0..408df7e44 100644 --- a/src/main/resources/data/minecraft/tags/damage_type/bypasses_resistance.json +++ b/src/main/resources/data/minecraft/tags/damage_type/bypasses_resistance.json @@ -9,6 +9,7 @@ "superbwarfare:laser_headshot", "superbwarfare:vehicle_strike", "superbwarfare:air_crash", - "superbwarfare:vehicle_explosion" + "superbwarfare:vehicle_explosion", + "superbwarfare:laser_static" ] } \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/damage_type/no_knockback.json b/src/main/resources/data/minecraft/tags/damage_type/no_knockback.json index 169f45a5a..d8424febb 100644 --- a/src/main/resources/data/minecraft/tags/damage_type/no_knockback.json +++ b/src/main/resources/data/minecraft/tags/damage_type/no_knockback.json @@ -4,6 +4,7 @@ "superbwarfare:projectile_boom", "superbwarfare:custom_explosion", "superbwarfare:laser", - "superbwarfare:laser_headshot" + "superbwarfare:laser_headshot", + "superbwarfare:laser_static" ] } \ No newline at end of file diff --git a/src/main/resources/data/superbwarfare/damage_type/laser_static.json b/src/main/resources/data/superbwarfare/damage_type/laser_static.json new file mode 100644 index 000000000..27bf8b5cb --- /dev/null +++ b/src/main/resources/data/superbwarfare/damage_type/laser_static.json @@ -0,0 +1,5 @@ +{ + "exhaustion": 0, + "message_id": "laser", + "scaling": "never" +} \ No newline at end of file