From 8b8bbc7f0d0dfc9b354437cdb721306735a68b0f Mon Sep 17 00:00:00 2001 From: Atsuishio <842960157@qq.com> Date: Wed, 9 Jul 2025 18:00:00 +0800 Subject: [PATCH] =?UTF-8?q?=E8=88=B0=E7=82=AE=E6=AD=A3=E7=A1=AE=E8=AF=BB?= =?UTF-8?q?=E5=8F=96=E5=86=85=E5=AE=B9=E5=BC=B9=E7=A7=8D=EF=BC=8C=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E7=9E=84=E5=87=86=E6=A0=A1=E5=87=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../superbwarfare/entity/vehicle/Mk42Entity.java | 4 ++-- .../entity/vehicle/Mle1934Entity.java | 4 ++-- .../send/ArtilleryIndicatorFireMessage.java | 16 +++++----------- 3 files changed, 9 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Mk42Entity.java b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Mk42Entity.java index 1fa7678f3..57545297b 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Mk42Entity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Mk42Entity.java @@ -243,7 +243,7 @@ public class Mk42Entity extends VehicleEntity implements GeoEntity, CannonEntity Vec3 shootPos = new Vec3(worldPosition.x, worldPosition.y, worldPosition.z); try { - double adjust = 0.004 * new Vec3(targetX, targetY, targetZ).distanceTo(shootPos); + double adjust = -1 + 0.004 * new Vec3(targetX, targetY, targetZ).distanceTo(shootPos); Vec3 launchVector = calculateLaunchVector(shootPos, new Vec3(targetX, targetY - adjust, targetZ), 15, -shellGravity, isDepressed); this.look(new Vec3(targetX, targetY, targetZ)); float angle = (float) -getXRotFromVector(launchVector); @@ -273,7 +273,7 @@ public class Mk42Entity extends VehicleEntity implements GeoEntity, CannonEntity Vec3 shootPos = new Vec3(worldPosition.x, worldPosition.y, worldPosition.z); try { - double adjust = 0.004 * new Vec3(targetX, targetY, targetZ).distanceTo(shootPos); + double adjust = -1 + 0.004 * new Vec3(targetX, targetY, targetZ).distanceTo(shootPos); Vec3 launchVector = calculateLaunchVector(shootPos, new Vec3(targetX, targetY - adjust, targetZ), 15, -shellGravity, isDepressed); this.look(new Vec3(targetX, targetY, targetZ)); float angle = (float) -getXRotFromVector(launchVector); diff --git a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Mle1934Entity.java b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Mle1934Entity.java index b17749d29..1cee6a1de 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Mle1934Entity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Mle1934Entity.java @@ -249,7 +249,7 @@ public class Mle1934Entity extends VehicleEntity implements GeoEntity, CannonEnt Vec3 shootPos = new Vec3(worldPosition.x, worldPosition.y, worldPosition.z); try { - double adjust = 0.004 * new Vec3(targetX, targetY, targetZ).distanceTo(shootPos); + double adjust = -1 + 0.004 * new Vec3(targetX, targetY, targetZ).distanceTo(shootPos); Vec3 launchVector = calculateLaunchVector(shootPos, new Vec3(targetX, targetY - adjust, targetZ), 15, -shellGravity, isDepressed); this.look(new Vec3(targetX, targetY, targetZ)); float angle = (float) -getXRotFromVector(launchVector); @@ -279,7 +279,7 @@ public class Mle1934Entity extends VehicleEntity implements GeoEntity, CannonEnt Vec3 shootPos = new Vec3(worldPosition.x, worldPosition.y, worldPosition.z); try { - double adjust = 0.004 * new Vec3(targetX, targetY, targetZ).distanceTo(shootPos); + double adjust = -1 + 0.004 * new Vec3(targetX, targetY, targetZ).distanceTo(shootPos); Vec3 launchVector = calculateLaunchVector(shootPos, new Vec3(targetX, targetY - adjust, targetZ), 15, -shellGravity, isDepressed); this.look(new Vec3(targetX, targetY, targetZ)); float angle = (float) -getXRotFromVector(launchVector); diff --git a/src/main/java/com/atsuishio/superbwarfare/network/message/send/ArtilleryIndicatorFireMessage.java b/src/main/java/com/atsuishio/superbwarfare/network/message/send/ArtilleryIndicatorFireMessage.java index 8f1ffb414..510c523b3 100644 --- a/src/main/java/com/atsuishio/superbwarfare/network/message/send/ArtilleryIndicatorFireMessage.java +++ b/src/main/java/com/atsuishio/superbwarfare/network/message/send/ArtilleryIndicatorFireMessage.java @@ -42,29 +42,23 @@ public enum ArtilleryIndicatorFireMessage implements CustomPacketPayload { if (entity instanceof MortarEntity mortarEntity) { if (mortarEntity.stack.getItem() instanceof MortarShell && mortarEntity.getEntityData().get(FIRE_TIME) == 0) { int randomNumber = (int) (Math.random() * 5) + 1; - Mod.queueServerWork(randomNumber, () -> { - mortarEntity.fire(player); - }); + Mod.queueServerWork(randomNumber, () -> mortarEntity.fire(player)); } } if (entity instanceof Mk42Entity mk42Entity) { if (mk42Entity.stack.getItem() instanceof CannonShellItem && mk42Entity.getEntityData().get(COOL_DOWN) == 0) { int randomNumber = (int) (Math.random() * 5) + 1; - var weaponType = stack.is(ModItems.AP_5_INCHES.get()) ? 0 : 1; + var weaponType = mk42Entity.stack.is(ModItems.AP_5_INCHES.get()) ? 0 : 1; mk42Entity.setWeaponIndex(0, weaponType); - Mod.queueServerWork(randomNumber, () -> { - mk42Entity.vehicleShoot(player, 0); - }); + Mod.queueServerWork(randomNumber, () -> mk42Entity.vehicleShoot(player, 0)); } } if (entity instanceof Mle1934Entity mle1934Entity) { if (mle1934Entity.stack.getItem() instanceof CannonShellItem && mle1934Entity.getEntityData().get(COOL_DOWN) == 0) { int randomNumber = (int) (Math.random() * 5) + 1; - var weaponType = stack.is(ModItems.AP_5_INCHES.get()) ? 0 : 1; + var weaponType = mle1934Entity.stack.is(ModItems.AP_5_INCHES.get()) ? 0 : 1; mle1934Entity.setWeaponIndex(0, weaponType); - Mod.queueServerWork(randomNumber, () -> { - mle1934Entity.vehicleShoot(player, 0); - }); + Mod.queueServerWork(randomNumber, () -> mle1934Entity.vehicleShoot(player, 0)); } } }