From 944faf99e345737a99752ca783c662033ced334c Mon Sep 17 00:00:00 2001 From: Atsuihsio <842960157@qq.com> Date: Sat, 14 Dec 2024 14:48:44 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=A9=E8=88=B9=E5=9C=A8=E6=97=A0=E4=BA=BA?= =?UTF-8?q?=E6=83=85=E5=86=B5=E4=B8=8B=E5=81=9C=E6=AD=A2=E6=93=8D=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../superbwarfare/client/ClickHandler.java | 4 ++++ .../superbwarfare/entity/SpeedboatEntity.java | 13 +++++++++---- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/atsuishio/superbwarfare/client/ClickHandler.java b/src/main/java/com/atsuishio/superbwarfare/client/ClickHandler.java index 690a5baa7..583d8053d 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/ClickHandler.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/ClickHandler.java @@ -298,6 +298,10 @@ public class ClickHandler { return; } + if ((player.getVehicle() != null && player.getVehicle() instanceof SpeedboatEntity boat && boat.getFirstPassenger() == player)) { + ModUtils.PACKET_HANDLER.sendToServer(new FireMessage(0)); + } + if (stack.is(ModTags.Items.GUN) && !(player.getVehicle() != null && player.getVehicle() instanceof ICannonEntity)) { if ((!(stack.getOrCreateTag().getBoolean("is_normal_reloading") || stack.getOrCreateTag().getBoolean("is_empty_reloading")) && !stack.getOrCreateTag().getBoolean("reloading") diff --git a/src/main/java/com/atsuishio/superbwarfare/entity/SpeedboatEntity.java b/src/main/java/com/atsuishio/superbwarfare/entity/SpeedboatEntity.java index d7aae894a..22db605e9 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/SpeedboatEntity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/SpeedboatEntity.java @@ -72,9 +72,6 @@ public class SpeedboatEntity extends Entity implements GeoEntity, IChargeEntity, public float turretYRotO; public float turretXRotO; - public float rudderYRot; - public float rudderYRot0; - public SpeedboatEntity(PlayMessages.SpawnEntity packet, Level world) { this(ModEntities.SPEEDBOAT.get(), world); } @@ -225,7 +222,7 @@ public class SpeedboatEntity extends Entity implements GeoEntity, IChargeEntity, if (this.onGround()) { this.setDeltaMovement(this.getDeltaMovement().multiply(0.2, 0.85, 0.2)); - } else if (this.isInWater()) { + } else { float f = 0.73f + 0.09f * Mth.abs(90 - (float) calculateAngle(this.getDeltaMovement(), this.getViewVector(1))) / 90; this.setDeltaMovement(this.getDeltaMovement().add(this.getViewVector(1).normalize().scale(0.04 * this.getDeltaMovement().length()))); this.setDeltaMovement(this.getDeltaMovement().multiply(f, 0.85, f)); @@ -250,6 +247,7 @@ public class SpeedboatEntity extends Entity implements GeoEntity, IChargeEntity, collideBlock(); gunnerAngle(); +// gunnerFire(); this.refreshDimensions(); } @@ -291,6 +289,13 @@ public class SpeedboatEntity extends Entity implements GeoEntity, IChargeEntity, private void controlBoat() { Entity passenger0 = this.getPassengers().isEmpty() ? null : this.getPassengers().get(0); + if (passenger0 == null) { + this.getPersistentData().putBoolean("left", false); + this.getPersistentData().putBoolean("right", false); + this.getPersistentData().putBoolean("forward", false); + this.getPersistentData().putBoolean("backward", false); + } + float diffY = 0; if (this.getPersistentData().getBoolean("forward")) { this.entityData.set(POWER, this.entityData.get(POWER) + 0.02f);