From 2faca5317d07f2d4e0ce469a90c87c05a8dd7f86 Mon Sep 17 00:00:00 2001 From: Atsuihsio <842960157@qq.com> Date: Fri, 17 Jan 2025 18:35:58 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0LAV=E7=9A=84=E5=89=AF?= =?UTF-8?q?=E6=AD=A6=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../client/overlay/LandArmorHudOverlay.java | 14 +- .../renderer/entity/Lav150Renderer.java | 9 +- .../entity/vehicle/Ah6Entity.java | 2 +- .../entity/vehicle/Lav150Entity.java | 194 ++++++++++++++---- .../event/ClientEventHandler.java | 40 ++-- .../superbwarfare/init/ModSounds.java | 1 + .../animations/lav.animation.json | 28 ++- .../assets/superbwarfare/geo/lav150.geo.json | 63 +++++- .../assets/superbwarfare/sounds.json | 7 + .../superbwarfare/sounds/lav/coax_fire_1p.ogg | Bin 0 -> 14623 bytes .../superbwarfare/textures/entity/lav150.png | Bin 21221 -> 21224 bytes 11 files changed, 289 insertions(+), 69 deletions(-) create mode 100644 src/main/resources/assets/superbwarfare/sounds/lav/coax_fire_1p.ogg diff --git a/src/main/java/com/atsuishio/superbwarfare/client/overlay/LandArmorHudOverlay.java b/src/main/java/com/atsuishio/superbwarfare/client/overlay/LandArmorHudOverlay.java index 34018df11..d7e60c109 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/overlay/LandArmorHudOverlay.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/overlay/LandArmorHudOverlay.java @@ -2,6 +2,7 @@ package com.atsuishio.superbwarfare.client.overlay; import com.atsuishio.superbwarfare.ModUtils; import com.atsuishio.superbwarfare.entity.vehicle.Lav150Entity; +import com.atsuishio.superbwarfare.entity.vehicle.MultiWeaponVehicleEntity; import com.atsuishio.superbwarfare.event.ClientEventHandler; import com.atsuishio.superbwarfare.init.ModItems; import com.atsuishio.superbwarfare.tools.SeekTool; @@ -32,6 +33,7 @@ import java.text.DecimalFormat; import static com.atsuishio.superbwarfare.client.RenderHelper.preciseBlit; import static com.atsuishio.superbwarfare.client.overlay.CrossHairOverlay.*; +import static com.atsuishio.superbwarfare.entity.vehicle.Lav150Entity.COAX_HEAT; import static com.atsuishio.superbwarfare.entity.vehicle.Lav150Entity.HEAT; @Mod.EventBusSubscriber(value = Dist.CLIENT) @@ -53,7 +55,7 @@ public class LandArmorHudOverlay { Vec3 cameraPos = camera.getPosition(); if (player == null) return; - if (player.getVehicle() instanceof Lav150Entity lav150 && lav150.isDriver(player)) { + if (player.getVehicle() instanceof Lav150Entity lav150 && lav150.isDriver(player) && player.getVehicle() instanceof MultiWeaponVehicleEntity multiWeaponVehicle) { poseStack.pushPose(); poseStack.translate(-8 * ClientEventHandler.turnRot[1], -8 * ClientEventHandler.turnRot[0], 0); @@ -137,8 +139,14 @@ public class LandArmorHudOverlay { //武器名称 if (player.getVehicle() instanceof Lav150Entity lav) { - double heat = 1 - lav.getEntityData().get(HEAT) / 100.0F; - guiGraphics.drawString(mc.font, Component.literal("20MM CANNON " + (player.getInventory().hasAnyMatching(s -> s.is(ModItems.CREATIVE_AMMO_BOX.get())) ? "∞" : lav.getAmmoCount(player))), w / 2 - 33, h - 65, Mth.hsvToRgb((float) heat / 3.745318352059925F, 1.0F, 1.0F), false); + if (multiWeaponVehicle.getWeaponType() == 0) { + double heat = 1 - lav.getEntityData().get(HEAT) / 100.0F; + guiGraphics.drawString(mc.font, Component.literal("20MM CANNON " + (player.getInventory().hasAnyMatching(s -> s.is(ModItems.CREATIVE_AMMO_BOX.get())) ? "∞" : lav.getAmmoCount(player))), w / 2 - 33, h - 65, Mth.hsvToRgb((float) heat / 3.745318352059925F, 1.0F, 1.0F), false); + } else { + double heat = 1 - lav.getEntityData().get(COAX_HEAT) / 100.0F; + guiGraphics.drawString(mc.font, Component.literal("7.62MM COAX " + (player.getInventory().hasAnyMatching(s -> s.is(ModItems.CREATIVE_AMMO_BOX.get())) ? "∞" : lav.getAmmoCount(player))), w / 2 - 33, h - 65, Mth.hsvToRgb((float) heat / 3.745318352059925F, 1.0F, 1.0F), false); + } + } //血量 diff --git a/src/main/java/com/atsuishio/superbwarfare/client/renderer/entity/Lav150Renderer.java b/src/main/java/com/atsuishio/superbwarfare/client/renderer/entity/Lav150Renderer.java index 2bcbb1d6c..e63ca7eef 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/renderer/entity/Lav150Renderer.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/renderer/entity/Lav150Renderer.java @@ -67,10 +67,13 @@ public class Lav150Renderer extends GeoEntityRenderer { if (name.equals("barrel")) { bone.setRotX(-Mth.lerp(partialTick, animatable.turretXRotO, animatable.getTurretXRot()) * Mth.DEG_TO_RAD); } + if (name.equals("flare")) { + bone.setRotZ((float) (0.5 * (Math.random() - 0.5))); + } + if (name.equals("flare2")) { + bone.setRotZ((float) (0.5 * (Math.random() - 0.5))); + } -// if (name.equals("flare")) { -// bone.setRotZ((float) (0.5 * (Math.random() - 0.5))); -// } super.renderRecursively(poseStack, animatable, bone, renderType, bufferSource, buffer, isReRender, partialTick, packedLight, packedOverlay, red, green, blue, alpha); } diff --git a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Ah6Entity.java b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Ah6Entity.java index 21583d514..3d7fa9b45 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Ah6Entity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Ah6Entity.java @@ -526,7 +526,7 @@ public class Ah6Entity extends ContainerMobileEntity implements GeoEntity, IHeli .headShot(2f) .zoom(false); - projectileRight.heBullet(true, 3); + projectileRight.heBullet(true, 2); projectileRight.bypassArmorRate(0.2f); projectileRight.setPos(worldPositionRight.x, worldPositionRight.y, worldPositionRight.z); projectileRight.shoot(player, this.getLookAngle().x, this.getLookAngle().y + 0.018, this.getLookAngle().z, 20, diff --git a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Lav150Entity.java b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Lav150Entity.java index 921751347..53bc7bb96 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Lav150Entity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Lav150Entity.java @@ -3,6 +3,7 @@ package com.atsuishio.superbwarfare.entity.vehicle; import com.atsuishio.superbwarfare.ModUtils; import com.atsuishio.superbwarfare.config.server.ExplosionDestroyConfig; import com.atsuishio.superbwarfare.config.server.VehicleConfig; +import com.atsuishio.superbwarfare.entity.projectile.ProjectileEntity; import com.atsuishio.superbwarfare.entity.projectile.SmallCannonShellEntity; import com.atsuishio.superbwarfare.init.*; import com.atsuishio.superbwarfare.network.ModVariables; @@ -62,12 +63,15 @@ import java.util.List; import static com.atsuishio.superbwarfare.tools.ParticleTool.sendParticle; -public class Lav150Entity extends ContainerMobileEntity implements GeoEntity, IChargeEntity, IArmedVehicleEntity { +public class Lav150Entity extends ContainerMobileEntity implements GeoEntity, IChargeEntity, IArmedVehicleEntity, MultiWeaponVehicleEntity { public static final EntityDataAccessor FIRE_ANIM = SynchedEntityData.defineId(Lav150Entity.class, EntityDataSerializers.INT); public static final EntityDataAccessor DELTA_ROT = SynchedEntityData.defineId(Lav150Entity.class, EntityDataSerializers.FLOAT); public static final EntityDataAccessor HEAT = SynchedEntityData.defineId(Lav150Entity.class, EntityDataSerializers.INT); + public static final EntityDataAccessor COAX_HEAT = SynchedEntityData.defineId(Lav150Entity.class, EntityDataSerializers.INT); public static final EntityDataAccessor AMMO = SynchedEntityData.defineId(Lav150Entity.class, EntityDataSerializers.INT); + public static final EntityDataAccessor LOADED_COAX_AMMO = SynchedEntityData.defineId(Lav150Entity.class, EntityDataSerializers.INT); + public static final EntityDataAccessor WEAPON_TYPE = SynchedEntityData.defineId(Lav150Entity.class, EntityDataSerializers.INT); public static final float MAX_HEALTH = VehicleConfig.LAV_150_HP.get(); public static final int MAX_ENERGY = VehicleConfig.LAV_150_MAX_ENERGY.get(); @@ -84,6 +88,7 @@ public class Lav150Entity extends ContainerMobileEntity implements GeoEntity, IC public float leftWheelRotO; public float rightWheelRotO; public boolean cannotFire; + public boolean cannotFireCoax; public Lav150Entity(PlayMessages.SpawnEntity packet, Level world) { this(ModEntities.LAV_150.get(), world); @@ -101,16 +106,21 @@ public class Lav150Entity extends ContainerMobileEntity implements GeoEntity, IC this.entityData.define(FIRE_ANIM, 0); this.entityData.define(DELTA_ROT, 0f); this.entityData.define(HEAT, 0); + this.entityData.define(COAX_HEAT, 0); + this.entityData.define(WEAPON_TYPE, 0); + this.entityData.define(LOADED_COAX_AMMO, 0); } @Override public void addAdditionalSaveData(CompoundTag compound) { super.addAdditionalSaveData(compound); + compound.putInt("LoadedCoaxAmmo", this.entityData.get(LOADED_COAX_AMMO)); } @Override public void readAdditionalSaveData(CompoundTag compound) { super.readAdditionalSaveData(compound); + this.entityData.set(LOADED_COAX_AMMO, compound.getInt("LoadedCoaxAmmo")); } @Override @@ -194,10 +204,38 @@ public class Lav150Entity extends ContainerMobileEntity implements GeoEntity, IC cannotFire = false; } - if (this.level() instanceof ServerLevel) { - this.entityData.set(AMMO, this.getItemStacks().stream().filter(stack -> stack.is(ModItems.HEAVY_AMMO.get())).mapToInt(ItemStack::getCount).sum()); + if (this.entityData.get(COAX_HEAT) > 0) { + this.entityData.set(COAX_HEAT, this.entityData.get(COAX_HEAT) - 1); } + if (this.entityData.get(COAX_HEAT) < 40) { + cannotFireCoax = false; + } + + if (this.level() instanceof ServerLevel) { + Player player = (Player) this.getFirstPassenger(); + if (player != null) { + if ((this.getItemStacks().stream().filter(stack -> stack.is(ModItems.RIFLE_AMMO_BOX.get())).mapToInt(ItemStack::getCount).sum() > 0 && this.getEntityData().get(LOADED_COAX_AMMO) < 500)) { + this.entityData.set(LOADED_COAX_AMMO, this.getEntityData().get(LOADED_COAX_AMMO) + 30); + this.getItemStacks().stream().filter(stack -> stack.is(ModItems.RIFLE_AMMO_BOX.get())).findFirst().ifPresent(stack -> stack.shrink(1)); + } + if ((this.getItemStacks().stream().filter(stack -> stack.is(ModItems.RIFLE_AMMO.get())).mapToInt(ItemStack::getCount).sum() > 0 && this.getEntityData().get(LOADED_COAX_AMMO) < 500)) { + this.entityData.set(LOADED_COAX_AMMO, this.getEntityData().get(LOADED_COAX_AMMO) + 5); + this.getItemStacks().stream().filter(stack -> stack.is(ModItems.RIFLE_AMMO.get())).findFirst().ifPresent(stack -> stack.shrink(1)); + } + } + + if (this.getEntityData().get(WEAPON_TYPE) == 0) { + this.entityData.set(AMMO, this.getItemStacks().stream().filter(stack -> stack.is(ModItems.HEAVY_AMMO.get())).mapToInt(ItemStack::getCount).sum()); + } else { + this.entityData.set(AMMO, this.getEntityData().get(LOADED_COAX_AMMO)); + } + } + +// if (this.level() instanceof ServerLevel) { +// this.entityData.set(AMMO, this.getItemStacks().stream().filter(stack -> stack.is(ModItems.HEAVY_AMMO.get())).mapToInt(ItemStack::getCount).sum()); +// } + Entity driver = this.getFirstPassenger(); if (driver instanceof Player player) { if (this.entityData.get(HEAT) > 100) { @@ -206,6 +244,12 @@ public class Lav150Entity extends ContainerMobileEntity implements GeoEntity, IC SoundTool.playLocalSound(serverPlayer, ModSounds.MINIGUN_OVERHEAT.get(), 1f, 1f); } } + if (this.entityData.get(COAX_HEAT) > 100) { + cannotFireCoax = true; + if (!player.level().isClientSide() && player instanceof ServerPlayer serverPlayer) { + SoundTool.playLocalSound(serverPlayer, ModSounds.MINIGUN_OVERHEAT.get(), 1f, 1f); + } + } } double fluidFloat; @@ -271,49 +315,86 @@ public class Lav150Entity extends ContainerMobileEntity implements GeoEntity, IC @Override public void vehicleShoot(Player player) { - if (this.cannotFire) return; - Matrix4f transform = getBarrelTransform(); + if (entityData.get(WEAPON_TYPE) == 0) { + if (this.cannotFire) return; + float x = -0.0234375f; + float y = 0f; + float z = 4f; - float x = -0.0234375f; - float y = 0f; - float z = 4f; + Vector4f worldPosition = transformPosition(transform, x, y, z); + SmallCannonShellEntity smallCannonShell = new SmallCannonShellEntity(player, this.level(), + VehicleConfig.LAV_150_CANNON_DAMAGE.get(), + VehicleConfig.LAV_150_CANNON_EXPLOSION_DAMAGE.get(), + VehicleConfig.LAV_150_CANNON_EXPLOSION_RADIUS.get()); - Vector4f worldPosition = transformPosition(transform, x, y, z); - SmallCannonShellEntity smallCannonShell = new SmallCannonShellEntity(player, this.level(), - VehicleConfig.LAV_150_CANNON_DAMAGE.get(), - VehicleConfig.LAV_150_CANNON_EXPLOSION_DAMAGE.get(), - VehicleConfig.LAV_150_CANNON_EXPLOSION_RADIUS.get()); + smallCannonShell.setPos(worldPosition.x - 1.1 * this.getDeltaMovement().x, worldPosition.y, worldPosition.z - 1.1 * this.getDeltaMovement().z); + smallCannonShell.shoot(getBarrelVector(1).x, getBarrelVector(1).y + 0.005f, getBarrelVector(1).z, 22, + 0.25f); + this.level().addFreshEntity(smallCannonShell); - smallCannonShell.setPos(worldPosition.x - 1.1 * this.getDeltaMovement().x, worldPosition.y, worldPosition.z - 1.1 * this.getDeltaMovement().z); - smallCannonShell.shoot(getBarrelVector(1).x, getBarrelVector(1).y + 0.005f, getBarrelVector(1).z, 22, - 0.25f); - this.level().addFreshEntity(smallCannonShell); + sendParticle((ServerLevel) this.level(), ParticleTypes.LARGE_SMOKE, worldPosition.x - 1.1 * this.getDeltaMovement().x, worldPosition.y, worldPosition.z - 1.1 * this.getDeltaMovement().z, 1, 0.02, 0.02, 0.02, 0, false); - sendParticle((ServerLevel) this.level(), ParticleTypes.LARGE_SMOKE, worldPosition.x - 1.1 * this.getDeltaMovement().x, worldPosition.y, worldPosition.z - 1.1 * this.getDeltaMovement().z, 1, 0.02, 0.02, 0.02, 0, false); + float pitch = this.entityData.get(HEAT) <= 60 ? 1 : (float) (1 - 0.011 * java.lang.Math.abs(60 - this.entityData.get(HEAT))); - float pitch = this.entityData.get(HEAT) <= 60 ? 1 : (float) (1 - 0.011 * java.lang.Math.abs(60 - this.entityData.get(HEAT))); + if (!player.level().isClientSide) { + if (player instanceof ServerPlayer serverPlayer) { + serverPlayer.playSound(ModSounds.LAV_CANNON_FIRE_3P.get(), 4, pitch); + serverPlayer.playSound(ModSounds.LAV_CANNON_FAR.get(), 12, pitch); + serverPlayer.playSound(ModSounds.LAV_CANNON_VERYFAR.get(), 24, pitch); + } + } - if (!player.level().isClientSide) { - if (player instanceof ServerPlayer serverPlayer) { - serverPlayer.playSound(ModSounds.LAV_CANNON_FIRE_3P.get(), 4, pitch); - serverPlayer.playSound(ModSounds.LAV_CANNON_FAR.get(), 12, pitch); - serverPlayer.playSound(ModSounds.LAV_CANNON_VERYFAR.get(), 24, pitch); + Level level = player.level(); + final Vec3 center = new Vec3(this.getX(), this.getEyeY(), this.getZ()); + + for (Entity target : level.getEntitiesOfClass(Entity.class, new AABB(center, center).inflate(4), e -> true).stream().sorted(Comparator.comparingDouble(e -> e.distanceToSqr(center))).toList()) { + if (target instanceof ServerPlayer serverPlayer) { + ModUtils.PACKET_HANDLER.send(PacketDistributor.PLAYER.with(() -> serverPlayer), new ShakeClientMessage(6, 5, 9, this.getX(), this.getEyeY(), this.getZ())); + } + } + + this.entityData.set(HEAT, this.entityData.get(HEAT) + 7); + this.entityData.set(FIRE_ANIM, 3); + this.getItemStacks().stream().filter(stack -> stack.is(ModItems.HEAVY_AMMO.get())).findFirst().ifPresent(stack -> stack.shrink(1)); + + } else if (entityData.get(WEAPON_TYPE) == 1) { + if (this.cannotFireCoax) return; + float x = 0.3f; + float y = 0.08f; + float z = 0.7f; + + Vector4f worldPosition = transformPosition(transform, x, y, z); + + if (this.entityData.get(LOADED_COAX_AMMO) > 0 || player.getInventory().hasAnyMatching(s -> s.is(ModItems.CREATIVE_AMMO_BOX.get()))) { + ProjectileEntity projectileRight = new ProjectileEntity(player.level()) + .shooter(player) + .damage(9.5f) + .headShot(2f) + .zoom(false); + + projectileRight.bypassArmorRate(0.2f); + projectileRight.setPos(worldPosition.x - 1.1 * this.getDeltaMovement().x, worldPosition.y, worldPosition.z - 1.1 * this.getDeltaMovement().z); + projectileRight.shoot(player, getBarrelVector(1).x, getBarrelVector(1).y + 0.002f, getBarrelVector(1).z, 36, + 0.25f); + this.level().addFreshEntity(projectileRight); + + if (!player.getInventory().hasAnyMatching(s -> s.is(ModItems.CREATIVE_AMMO_BOX.get()))) { + this.entityData.set(LOADED_COAX_AMMO, this.getEntityData().get(LOADED_COAX_AMMO) - 1); + } + } + + this.entityData.set(COAX_HEAT, this.entityData.get(COAX_HEAT) + 3); + this.entityData.set(FIRE_ANIM, 2); + + if (!player.level().isClientSide) { + if (player instanceof ServerPlayer serverPlayer) { + serverPlayer.playSound(ModSounds.M_60_FIRE_3P.get(), 3, 1); + serverPlayer.playSound(ModSounds.M_60_FAR.get(), 6, 1); + serverPlayer.playSound(ModSounds.M_60_VERYFAR.get(), 12, 1); + } } } - - Level level = player.level(); - final Vec3 center = new Vec3(this.getX(), this.getEyeY(), this.getZ()); - - for (Entity target : level.getEntitiesOfClass(Entity.class, new AABB(center, center).inflate(4), e -> true).stream().sorted(Comparator.comparingDouble(e -> e.distanceToSqr(center))).toList()) { - if (target instanceof ServerPlayer serverPlayer) { - ModUtils.PACKET_HANDLER.send(PacketDistributor.PLAYER.with(() -> serverPlayer), new ShakeClientMessage(6, 5, 9, this.getX(), this.getEyeY(), this.getZ())); - } - } - - this.entityData.set(HEAT, this.entityData.get(HEAT) + 7); - this.entityData.set(FIRE_ANIM, 3); - this.getItemStacks().stream().filter(stack -> stack.is(ModItems.HEAVY_AMMO.get())).findFirst().ifPresent(stack -> stack.shrink(1)); } public final Vec3 getBarrelVector(float pPartialTicks) { @@ -367,11 +448,11 @@ public class Lav150Entity extends ContainerMobileEntity implements GeoEntity, IC } if (forwardInputDown) { - this.entityData.set(POWER, this.entityData.get(POWER) + 0.006f); + this.entityData.set(POWER, Math.min(this.entityData.get(POWER) + 0.015f, 0.2f)); } if (backInputDown) { - this.entityData.set(POWER, this.entityData.get(POWER) - 0.008f); + this.entityData.set(POWER, Math.max(this.entityData.get(POWER) - 0.01f, -0.2f)); } if (rightInputDown) { @@ -564,10 +645,14 @@ public class Lav150Entity extends ContainerMobileEntity implements GeoEntity, IC } private PlayState firePredicate(AnimationState event) { - if (this.entityData.get(FIRE_ANIM) > 1) { + if (this.entityData.get(FIRE_ANIM) > 1 && entityData.get(WEAPON_TYPE) == 0) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.lav.fire")); } + if (this.entityData.get(FIRE_ANIM) > 0 && entityData.get(WEAPON_TYPE) == 1) { + return event.setAndContinue(RawAnimation.begin().thenPlay("animation.lav.fire2")); + } + return event.setAndContinue(RawAnimation.begin().thenLoop("animation.lav.idle")); } @@ -608,13 +693,22 @@ public class Lav150Entity extends ContainerMobileEntity implements GeoEntity, IC @Override public int mainGunRpm() { + if (entityData.get(WEAPON_TYPE) == 0) { + return 300; + } else if (entityData.get(WEAPON_TYPE) == 1) { + return 600; + } return 300; } @Override public boolean canShoot(Player player) { - return (this.entityData.get(AMMO) > 0 || player.getInventory().hasAnyMatching(s -> s.is(ModItems.CREATIVE_AMMO_BOX.get()))) - && !cannotFire; + if (entityData.get(WEAPON_TYPE) == 0) { + return (this.entityData.get(AMMO) > 0 || player.getInventory().hasAnyMatching(s -> s.is(ModItems.CREATIVE_AMMO_BOX.get()))) && !cannotFire; + } else if (entityData.get(WEAPON_TYPE) == 1) { + return (this.entityData.get(LOADED_COAX_AMMO) > 0 || player.getInventory().hasAnyMatching(s -> s.is(ModItems.CREATIVE_AMMO_BOX.get()))) && !cannotFireCoax; + } + return false; } @Override @@ -636,4 +730,20 @@ public class Lav150Entity extends ContainerMobileEntity implements GeoEntity, IC public int zoomFov() { return 3; } + + @Override + public void changeWeapon() { + if (entityData.get(WEAPON_TYPE) == 0) { + this.level().playSound(null, this, ModSounds.INTO_MISSILE.get(), this.getSoundSource(), 1, 1); + entityData.set(WEAPON_TYPE, 1); + } else if (entityData.get(WEAPON_TYPE) == 1) { + entityData.set(WEAPON_TYPE, 0); + this.level().playSound(null, this, ModSounds.INTO_CANNON.get(), this.getSoundSource(), 1, 1); + } + } + + @Override + public int getWeaponType() { + return entityData.get(WEAPON_TYPE); + } } diff --git a/src/main/java/com/atsuishio/superbwarfare/event/ClientEventHandler.java b/src/main/java/com/atsuishio/superbwarfare/event/ClientEventHandler.java index 0ca0e0ff6..a4ddff82f 100644 --- a/src/main/java/com/atsuishio/superbwarfare/event/ClientEventHandler.java +++ b/src/main/java/com/atsuishio/superbwarfare/event/ClientEventHandler.java @@ -4,10 +4,7 @@ import com.atsuishio.superbwarfare.ModUtils; import com.atsuishio.superbwarfare.client.ClickHandler; import com.atsuishio.superbwarfare.config.client.DisplayConfig; import com.atsuishio.superbwarfare.entity.DroneEntity; -import com.atsuishio.superbwarfare.entity.vehicle.Ah6Entity; -import com.atsuishio.superbwarfare.entity.vehicle.IArmedVehicleEntity; -import com.atsuishio.superbwarfare.entity.vehicle.Lav150Entity; -import com.atsuishio.superbwarfare.entity.vehicle.SpeedboatEntity; +import com.atsuishio.superbwarfare.entity.vehicle.*; import com.atsuishio.superbwarfare.init.*; import com.atsuishio.superbwarfare.item.gun.GunItem; import com.atsuishio.superbwarfare.network.ModVariables; @@ -62,7 +59,7 @@ import java.util.List; import java.util.concurrent.atomic.AtomicBoolean; import java.util.function.Supplier; -import static com.atsuishio.superbwarfare.entity.vehicle.Ah6Entity.WEAPON_TYPE; +import static com.atsuishio.superbwarfare.entity.vehicle.Lav150Entity.COAX_HEAT; import static com.atsuishio.superbwarfare.entity.vehicle.SpeedboatEntity.HEAT; @Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.FORGE, value = Dist.CLIENT) @@ -682,19 +679,28 @@ public class ClientEventHandler { player.playSound(ModSounds.M_2_FIRE_1P.get(), 1f, pitch); player.playSound(ModSounds.SHELL_CASING_50CAL.get(), 0.3f, 1); } - if (iVehicle instanceof Ah6Entity ah6Entity) { - float pitch = ah6Entity.heat <= 60 ? 1 : (float) (1 - 0.011 * java.lang.Math.abs(60 - ah6Entity.heat)); - if (ah6Entity.getEntityData().get(WEAPON_TYPE) == 0) { - ah6Entity.heat += 5; - player.playSound(ModSounds.HELICOPTER_CANNON_FIRE_1P.get(), 1f, pitch); - } else if (ah6Entity.getEntityData().get(WEAPON_TYPE) == 1) { - player.playSound(ModSounds.HELICOPTER_ROCKET_FIRE_1P.get(), 1f, 1); + + if (iVehicle instanceof MultiWeaponVehicleEntity multiWeaponVehicle) { + if (iVehicle instanceof Ah6Entity ah6Entity) { + float pitch = ah6Entity.heat <= 60 ? 1 : (float) (1 - 0.011 * java.lang.Math.abs(60 - ah6Entity.heat)); + if (multiWeaponVehicle.getWeaponType() == 0) { + ah6Entity.heat += 5; + player.playSound(ModSounds.HELICOPTER_CANNON_FIRE_1P.get(), 1f, pitch); + } else if (multiWeaponVehicle.getWeaponType() == 1) { + player.playSound(ModSounds.HELICOPTER_ROCKET_FIRE_1P.get(), 1f, 1); + } + } + if (iVehicle instanceof Lav150Entity lav150) { + if (multiWeaponVehicle.getWeaponType() == 0) { + float pitch = lav150.getEntityData().get(HEAT) <= 60 ? 1 : (float) (1 - 0.011 * java.lang.Math.abs(60 - lav150.getEntityData().get(HEAT))); + player.playSound(ModSounds.LAV_CANNON_FIRE_1P.get(), 1f, pitch); + player.playSound(ModSounds.SHELL_CASING_50CAL.get(), 0.3f, 1); + } else if (multiWeaponVehicle.getWeaponType() == 1) { + float pitch = lav150.getEntityData().get(COAX_HEAT) <= 60 ? 1 : (float) (1 - 0.011 * java.lang.Math.abs(60 - lav150.getEntityData().get(COAX_HEAT))); + player.playSound(ModSounds.COAX_FIRE_1P.get(), 1f, pitch); + } + } - } - if (iVehicle instanceof Lav150Entity lav150) { - float pitch = lav150.getEntityData().get(HEAT) <= 60 ? 1 : (float) (1 - 0.011 * java.lang.Math.abs(60 - lav150.getEntityData().get(HEAT))); - player.playSound(ModSounds.LAV_CANNON_FIRE_1P.get(), 1f, pitch); - player.playSound(ModSounds.SHELL_CASING_50CAL.get(), 0.3f, 1); } } diff --git a/src/main/java/com/atsuishio/superbwarfare/init/ModSounds.java b/src/main/java/com/atsuishio/superbwarfare/init/ModSounds.java index 6aeddb245..b8f65366f 100644 --- a/src/main/java/com/atsuishio/superbwarfare/init/ModSounds.java +++ b/src/main/java/com/atsuishio/superbwarfare/init/ModSounds.java @@ -402,5 +402,6 @@ public class ModSounds { public static final RegistryObject LAV_CANNON_VERYFAR = REGISTRY.register("lav_cannon_veryfar", () -> SoundEvent.createVariableRangeEvent(ModUtils.loc("lav_veryfar"))); public static final RegistryObject LAV_ENGINE = REGISTRY.register("lav_engine", () -> SoundEvent.createVariableRangeEvent(ModUtils.loc("lav_engine"))); public static final RegistryObject LAV_ENGINE_1P = REGISTRY.register("lav_engine_1p", () -> SoundEvent.createVariableRangeEvent(ModUtils.loc("lav_engine_1p"))); + public static final RegistryObject COAX_FIRE_1P = REGISTRY.register("coax_fire_1p", () -> SoundEvent.createVariableRangeEvent(ModUtils.loc("coax_fire_1p"))); } diff --git a/src/main/resources/assets/superbwarfare/animations/lav.animation.json b/src/main/resources/assets/superbwarfare/animations/lav.animation.json index 80e7b109f..38d2cec5b 100644 --- a/src/main/resources/assets/superbwarfare/animations/lav.animation.json +++ b/src/main/resources/assets/superbwarfare/animations/lav.animation.json @@ -1,6 +1,17 @@ { "format_version": "1.8.0", "animations": { + "animation.lav.idle": { + "animation_length": 0.25, + "bones": { + "flare": { + "scale": 0 + }, + "flare2": { + "scale": 0 + } + } + }, "animation.lav.fire": { "animation_length": 0.4, "bones": { @@ -29,14 +40,27 @@ "0.0917": [0, 0, 0], "0.15": [0, 0, 0] } + }, + "flare2": { + "scale": 0 } } }, - "animation.lav.idle": { - "animation_length": 0.25, + "animation.lav.fire2": { + "animation_length": 0.4, "bones": { "flare": { "scale": 0 + }, + "flare2": { + "scale": { + "0.0": [0, 0, 0], + "0.0083": [8, 8, 8], + "0.05": [11, 11, 11], + "0.075": [1, 1, 1], + "0.0917": [0, 0, 0], + "0.15": [0, 0, 0] + } } } } diff --git a/src/main/resources/assets/superbwarfare/geo/lav150.geo.json b/src/main/resources/assets/superbwarfare/geo/lav150.geo.json index f34b125ce..5a6861978 100644 --- a/src/main/resources/assets/superbwarfare/geo/lav150.geo.json +++ b/src/main/resources/assets/superbwarfare/geo/lav150.geo.json @@ -3003,7 +3003,23 @@ { "name": "barrel", "parent": "cannon", - "pivot": [0.375, 43.8072, -13.2] + "pivot": [0.375, 43.8072, -13.2], + "cubes": [ + { + "origin": [4.13625, 43.11845, -22.40424], + "size": [1.1275, 1.1275, 9.54], + "pivot": [4.825, 43.8072, -21.13424], + "rotation": [0, 0, -45], + "uv": { + "north": {"uv": [69, 98], "uv_size": [-1, 1]}, + "east": {"uv": [283, 87], "uv_size": [-18, 1]}, + "south": {"uv": [70, 121], "uv_size": [-1, 1]}, + "west": {"uv": [27, 135], "uv_size": [-18, 1]}, + "up": {"uv": [143, 266], "uv_size": [-1, 18]}, + "down": {"uv": [174, 284], "uv_size": [-1, -18]} + } + } + ] }, { "name": "flare", @@ -3352,6 +3368,51 @@ } ] }, + { + "name": "flare2", + "parent": "barrel", + "pivot": [4.825, 43.61482, -24.2707], + "cubes": [ + { + "origin": [4.54891, 43.33874, -24.29418], + "size": [0.55217, 0.55217, 0], + "uv": { + "north": {"uv": [512, 0], "uv_size": [-128, 128]}, + "south": {"uv": [384, 0], "uv_size": [128, 128]} + } + }, + { + "origin": [4.13051, 43.38427, -24.59305], + "size": [1.38897, 0.46109, 0], + "pivot": [4.825, 43.61482, -24.59304], + "rotation": [0, -90, -60], + "uv": { + "north": {"uv": [512, 0], "uv_size": [-103, 128]}, + "south": {"uv": [409, 0], "uv_size": [103, 128]} + } + }, + { + "origin": [4.13051, 43.38427, -24.59305], + "size": [1.38897, 0.46109, 0], + "pivot": [4.825, 43.61482, -24.59304], + "rotation": [0, -90, -120], + "uv": { + "north": {"uv": [512, 0], "uv_size": [-103, 128]}, + "south": {"uv": [409, 0], "uv_size": [103, 128]} + } + }, + { + "origin": [4.13051, 43.38427, -24.59305], + "size": [1.38897, 0.46109, 0], + "pivot": [4.825, 43.61482, -24.59304], + "rotation": [0, -90, 0], + "uv": { + "north": {"uv": [512, 0], "uv_size": [-103, 128]}, + "south": {"uv": [409, 0], "uv_size": [103, 128]} + } + } + ] + }, { "name": "main", "parent": "root", diff --git a/src/main/resources/assets/superbwarfare/sounds.json b/src/main/resources/assets/superbwarfare/sounds.json index 692afd5dd..c1bacd299 100644 --- a/src/main/resources/assets/superbwarfare/sounds.json +++ b/src/main/resources/assets/superbwarfare/sounds.json @@ -2750,5 +2750,12 @@ "name": "superbwarfare:lav/lav_engine_1p" } ] + }, + "coax_fire_1p": { + "sounds": [ + { + "name": "superbwarfare:lav/coax_fire_1p" + } + ] } } \ No newline at end of file diff --git a/src/main/resources/assets/superbwarfare/sounds/lav/coax_fire_1p.ogg b/src/main/resources/assets/superbwarfare/sounds/lav/coax_fire_1p.ogg new file mode 100644 index 0000000000000000000000000000000000000000..2b7c0d6c93c2010fb4ad1e2d108a31745f494dbc GIT binary patch literal 14623 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 V|D9AJ8122oO*0$Q3X{7}{|^gKQ#Jqq delta 20417 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