From d157ce2f622b693c2754464b6e24c23daae40601 Mon Sep 17 00:00:00 2001 From: Light_Quanta Date: Wed, 5 Mar 2025 04:22:16 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=BAisDriver=E5=92=8CbanHand=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E9=BB=98=E8=AE=A4=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/vehicle/Ah6Entity.java | 10 ---------- .../entity/vehicle/AnnihilatorEntity.java | 10 ---------- .../entity/vehicle/Bmp2Entity.java | 5 ----- .../entity/vehicle/Lav150Entity.java | 5 ----- .../entity/vehicle/Mk42Entity.java | 10 ---------- .../entity/vehicle/Mle1934Entity.java | 5 ----- .../entity/vehicle/SpeedboatEntity.java | 10 ---------- .../entity/vehicle/Yx100Entity.java | 5 ----- .../entity/vehicle/Yx100GunEntity.java | 5 ----- .../vehicle/base/ArmedVehicleEntity.java | 19 +++++++++++++++---- 10 files changed, 15 insertions(+), 69 deletions(-) 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 f4368d46c..dacd1d36e 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Ah6Entity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Ah6Entity.java @@ -699,11 +699,6 @@ public class Ah6Entity extends ContainerMobileVehicleEntity implements GeoEntity return super.getDismountLocationForPassenger(passenger); } - @Override - public boolean isDriver(Player player) { - return player == this.getFirstPassenger(); - } - @Override public int mainGunRpm() { return 360; @@ -724,11 +719,6 @@ public class Ah6Entity extends ContainerMobileVehicleEntity implements GeoEntity return this.entityData.get(AMMO); } - @Override - public boolean banHand(Player player) { - return player == this.getFirstPassenger(); - } - @Override public boolean hidePassenger() { return false; diff --git a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/AnnihilatorEntity.java b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/AnnihilatorEntity.java index c4f55aa62..8737c2410 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/AnnihilatorEntity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/AnnihilatorEntity.java @@ -587,11 +587,6 @@ public class AnnihilatorEntity extends EnergyVehicleEntity implements GeoEntity, return MAX_HEALTH; } - @Override - public boolean isDriver(Player player) { - return player == this.getFirstPassenger(); - } - @Override public int mainGunRpm() { return 0; @@ -607,11 +602,6 @@ public class AnnihilatorEntity extends EnergyVehicleEntity implements GeoEntity, return -1; } - @Override - public boolean banHand(Player player) { - return true; - } - @Override public boolean hidePassenger() { return true; diff --git a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Bmp2Entity.java b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Bmp2Entity.java index 8c840490a..bdccb972e 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Bmp2Entity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Bmp2Entity.java @@ -715,11 +715,6 @@ public class Bmp2Entity extends ContainerMobileVehicleEntity implements GeoEntit return MAX_HEALTH; } - @Override - public boolean isDriver(Player player) { - return player == this.getFirstPassenger(); - } - @Override public int mainGunRpm() { if (getWeaponType(0) == 0) { 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 26574fc29..a3dd3dacc 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Lav150Entity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Lav150Entity.java @@ -661,11 +661,6 @@ public class Lav150Entity extends ContainerMobileVehicleEntity implements GeoEnt return MAX_HEALTH; } - @Override - public boolean isDriver(Player player) { - return player == this.getFirstPassenger(); - } - @Override public int mainGunRpm() { if (getWeaponType(0) == 0) { 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 547b39863..a24f08412 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Mk42Entity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Mk42Entity.java @@ -396,11 +396,6 @@ public class Mk42Entity extends VehicleEntity implements GeoEntity, CannonEntity return MAX_HEALTH; } - @Override - public boolean isDriver(Player player) { - return player == this.getFirstPassenger(); - } - @Override public int mainGunRpm() { return 0; @@ -420,11 +415,6 @@ public class Mk42Entity extends VehicleEntity implements GeoEntity, CannonEntity } } - @Override - public boolean banHand(Player player) { - return true; - } - @Override public boolean hidePassenger() { return true; 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 7e534c0dc..b66708212 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Mle1934Entity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Mle1934Entity.java @@ -490,11 +490,6 @@ public class Mle1934Entity extends VehicleEntity implements GeoEntity, CannonEnt return MAX_HEALTH; } - @Override - public boolean isDriver(Player player) { - return player == this.getFirstPassenger(); - } - @Override public int mainGunRpm() { return 0; diff --git a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/SpeedboatEntity.java b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/SpeedboatEntity.java index c393c3120..36ed0eea6 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/SpeedboatEntity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/SpeedboatEntity.java @@ -496,11 +496,6 @@ public class SpeedboatEntity extends ContainerMobileVehicleEntity implements Geo return MAX_HEALTH; } - @Override - public boolean isDriver(Player player) { - return player == this.getFirstPassenger(); - } - @Override public int mainGunRpm() { return 500; @@ -517,11 +512,6 @@ public class SpeedboatEntity extends ContainerMobileVehicleEntity implements Geo return this.entityData.get(AMMO); } - @Override - public boolean banHand(Player player) { - return player == this.getFirstPassenger(); - } - @Override public boolean hidePassenger() { return false; diff --git a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Yx100Entity.java b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Yx100Entity.java index 321df78d4..c41fe82ab 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Yx100Entity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Yx100Entity.java @@ -701,11 +701,6 @@ public class Yx100Entity extends ContainerMobileVehicleEntity implements GeoEnti return MAX_HEALTH; } - @Override - public boolean isDriver(Player player) { - return player == this.getFirstPassenger(); - } - @Override public int mainGunRpm() { return 15; diff --git a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Yx100GunEntity.java b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Yx100GunEntity.java index b7678b7a1..6e8e6c2b6 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Yx100GunEntity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Yx100GunEntity.java @@ -159,11 +159,6 @@ public class Yx100GunEntity extends VehicleEntity implements GeoEntity, CannonEn return 0; } - @Override - public boolean isDriver(Player player) { - return player == this.getFirstPassenger(); - } - @Override public int mainGunRpm() { return 600; diff --git a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/base/ArmedVehicleEntity.java b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/base/ArmedVehicleEntity.java index bc290eb36..6b3928b95 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/base/ArmedVehicleEntity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/base/ArmedVehicleEntity.java @@ -1,5 +1,6 @@ package com.atsuishio.superbwarfare.entity.vehicle.base; +import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.player.Player; public interface ArmedVehicleEntity { @@ -17,7 +18,12 @@ public interface ArmedVehicleEntity { * @param player 玩家 * @return 是否是驾驶员 */ - boolean isDriver(Player player); + default boolean isDriver(Player player) { + if (this instanceof Entity entity) { + return player == entity.getFirstPassenger(); + } + return false; + } /** * 主武器射速 @@ -43,12 +49,17 @@ public interface ArmedVehicleEntity { int getAmmoCount(Player player); /** - * 是否隐藏玩家手臂 + * 是否禁用玩家手臂 * * @param player 玩家 - * @return 是否隐藏 */ - boolean banHand(Player player); + default boolean banHand(Player player) { + // 若玩家所在位置有可用武器,则默认禁用手臂 + if (this instanceof VehicleEntity vehicle && this instanceof WeaponVehicleEntity weaponVehicle) { + return weaponVehicle.hasWeapon(vehicle.getSeatIndex(player)); + } + return false; + } /** * 是否隐藏载具上的玩家