diff --git a/src/main/java/com/atsuishio/superbwarfare/entity/TargetEntity.java b/src/main/java/com/atsuishio/superbwarfare/entity/TargetEntity.java index 760367cd6..1838eea60 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/TargetEntity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/TargetEntity.java @@ -137,6 +137,11 @@ public class TargetEntity extends LivingEntity implements GeoEntity, AnimatedEnt } } + @Override + public boolean isPickable() { + return this.entityData.get(DOWN_TIME) == 0; + } + @Override public void die(DamageSource source) { super.die(source); diff --git a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/VehicleEntity.java b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/VehicleEntity.java index 0d8dcf72b..46c5c6eac 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/VehicleEntity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/VehicleEntity.java @@ -45,6 +45,7 @@ import org.joml.Matrix4f; import org.joml.Vector4f; import java.util.ArrayList; +import java.util.List; public class VehicleEntity extends Entity { @@ -187,12 +188,22 @@ public class VehicleEntity extends Entity { public void hurt(float pHealAmount, Entity attacker, boolean send) { if (this.level() instanceof ServerLevel) { + var holder = Holder.direct(ModSounds.INDICATION_VEHICLE.get()); if (attacker instanceof ServerPlayer player && pHealAmount > 0 && this.getHealth() > 0 && send && !(this instanceof DroneEntity)) { - var holder = Holder.direct(ModSounds.INDICATION_VEHICLE.get()); - player.connection.send(new ClientboundSoundPacket(holder, SoundSource.PLAYERS, player.getX(), player.getEyeY(), player.getZ(), 0.25f + (2.75f * pHealAmount / getMaxHealth()), random.nextFloat() * 0.1f + 0.9f, player.level().random.nextLong())); + player.connection.send(new ClientboundSoundPacket(holder, SoundSource.PLAYERS, player.getX(), player.getEyeY(), player.getZ(), 0.25f + (2.75f * pHealAmount / getMaxHealth()), random.nextFloat() * 0.1f + 0.9f, player.level().random.nextLong())); ModUtils.PACKET_HANDLER.send(PacketDistributor.PLAYER.with(() -> player), new ClientIndicatorMessage(3, 5)); } + + if (pHealAmount > 0 && this.getHealth() > 0 && send) { + List passengers = this.getPassengers(); + for (var entity : passengers) { + if (entity instanceof ServerPlayer player1) { + player1.connection.send(new ClientboundSoundPacket(holder, SoundSource.PLAYERS, player1.getX(), player1.getEyeY(), player1.getZ(), 0.25f + (4.75f * pHealAmount / getMaxHealth()), random.nextFloat() * 0.1f + 0.6f, player1.level().random.nextLong())); + } + } + } + this.setHealth(this.getHealth() - pHealAmount); } } diff --git a/src/main/resources/assets/superbwarfare/geo/bmp2.geo.json b/src/main/resources/assets/superbwarfare/geo/bmp2.geo.json index 7c61e20b5..704e4a687 100644 --- a/src/main/resources/assets/superbwarfare/geo/bmp2.geo.json +++ b/src/main/resources/assets/superbwarfare/geo/bmp2.geo.json @@ -8922,10 +8922,10 @@ "pivot": [30, 20.27286, -60.10428], "rotation": [45.25, 0, 0], "uv": { - "east": {"uv": [93, 61], "uv_size": [-1, 1]}, - "west": {"uv": [63, 92], "uv_size": [-1, 1]}, - "up": {"uv": [84, 65], "uv_size": [2, -1]}, - "down": {"uv": [84, 65], "uv_size": [2, 1]} + "east": {"uv": [63, 92], "uv_size": [1, 1]}, + "west": {"uv": [63, 92], "uv_size": [1, 1]}, + "up": {"uv": [64, 93], "uv_size": [-1, -1]}, + "down": {"uv": [64, 93], "uv_size": [-1, -1]} } }, { @@ -8934,10 +8934,10 @@ "pivot": [30, 24.93117, -55.08519], "rotation": [-0.25, 0, 0], "uv": { - "east": {"uv": [92, 61], "uv_size": [1, 1]}, - "west": {"uv": [62, 92], "uv_size": [1, 1]}, - "up": {"uv": [84, 64], "uv_size": [2, 1]}, - "down": {"uv": [84, 66], "uv_size": [2, -1]} + "east": {"uv": [63, 92], "uv_size": [1, 1]}, + "west": {"uv": [63, 92], "uv_size": [1, 1]}, + "up": {"uv": [64, 93], "uv_size": [-1, -1]}, + "down": {"uv": [64, 93], "uv_size": [-1, -1]} } }, { @@ -8946,10 +8946,10 @@ "pivot": [30, 19.77327, 59.93548], "rotation": [-45.25, 0, 0], "uv": { - "east": {"uv": [92, 61], "uv_size": [1, 1]}, - "west": {"uv": [62, 92], "uv_size": [1, 1]}, - "up": {"uv": [84, 64], "uv_size": [2, 1]}, - "down": {"uv": [84, 66], "uv_size": [2, -1]} + "east": {"uv": [63, 92], "uv_size": [1, 1]}, + "west": {"uv": [63, 92], "uv_size": [1, 1]}, + "up": {"uv": [64, 93], "uv_size": [-1, -1]}, + "down": {"uv": [64, 93], "uv_size": [-1, -1]} } }, { @@ -8958,10 +8958,10 @@ "pivot": [30, 19.77327, 59.93548], "rotation": [-90.25, 0, 0], "uv": { - "east": {"uv": [92, 61], "uv_size": [1, 1]}, - "west": {"uv": [62, 92], "uv_size": [1, 1]}, - "up": {"uv": [84, 64], "uv_size": [2, 1]}, - "down": {"uv": [84, 66], "uv_size": [2, -1]} + "east": {"uv": [63, 92], "uv_size": [1, 1]}, + "west": {"uv": [63, 92], "uv_size": [1, 1]}, + "up": {"uv": [64, 93], "uv_size": [-1, -1]}, + "down": {"uv": [64, 93], "uv_size": [-1, -1]} } }, { @@ -8970,10 +8970,10 @@ "pivot": [30, 11.03653, 55.25669], "rotation": [-147.75, 0, 0], "uv": { - "east": {"uv": [92, 61], "uv_size": [1, 1]}, - "west": {"uv": [62, 92], "uv_size": [1, 1]}, - "up": {"uv": [84, 64], "uv_size": [2, 1]}, - "down": {"uv": [84, 66], "uv_size": [2, -1]} + "east": {"uv": [63, 92], "uv_size": [1, 1]}, + "west": {"uv": [63, 92], "uv_size": [1, 1]}, + "up": {"uv": [64, 93], "uv_size": [-1, -1]}, + "down": {"uv": [64, 93], "uv_size": [-1, -1]} } }, { @@ -8982,10 +8982,10 @@ "pivot": [30, 2.12908, 41.48198], "rotation": [180, 0, 0], "uv": { - "east": {"uv": [92, 61], "uv_size": [1, 1]}, - "west": {"uv": [62, 92], "uv_size": [1, 1]}, - "up": {"uv": [84, 64], "uv_size": [2, 1]}, - "down": {"uv": [84, 66], "uv_size": [2, -1]} + "east": {"uv": [63, 92], "uv_size": [1, 1]}, + "west": {"uv": [63, 92], "uv_size": [1, 1]}, + "up": {"uv": [64, 93], "uv_size": [-1, -1]}, + "down": {"uv": [64, 93], "uv_size": [-1, -1]} } }, { @@ -8994,10 +8994,10 @@ "pivot": [30, 11.60338, 56.50044], "rotation": [-135.25, 0, 0], "uv": { - "east": {"uv": [92, 61], "uv_size": [1, 1]}, - "west": {"uv": [62, 92], "uv_size": [1, 1]}, - "up": {"uv": [84, 64], "uv_size": [2, 1]}, - "down": {"uv": [84, 66], "uv_size": [2, -1]} + "east": {"uv": [63, 92], "uv_size": [1, 1]}, + "west": {"uv": [63, 92], "uv_size": [1, 1]}, + "up": {"uv": [64, 93], "uv_size": [-1, -1]}, + "down": {"uv": [64, 93], "uv_size": [-1, -1]} } }, { @@ -9006,10 +9006,10 @@ "pivot": [30, 10.30691, -55.3571], "rotation": [150.75, 0, 0], "uv": { - "east": {"uv": [93, 61], "uv_size": [-1, 1]}, - "west": {"uv": [63, 92], "uv_size": [-1, 1]}, - "up": {"uv": [84, 65], "uv_size": [2, -1]}, - "down": {"uv": [84, 65], "uv_size": [2, 1]} + "east": {"uv": [63, 92], "uv_size": [1, 1]}, + "west": {"uv": [63, 92], "uv_size": [1, 1]}, + "up": {"uv": [64, 93], "uv_size": [-1, -1]}, + "down": {"uv": [64, 93], "uv_size": [-1, -1]} } }, { @@ -9018,10 +9018,10 @@ "pivot": [30, 10.36633, -55.83431], "rotation": [132.25, 0, 0], "uv": { - "east": {"uv": [93, 61], "uv_size": [-1, 1]}, - "west": {"uv": [63, 92], "uv_size": [-1, 1]}, - "up": {"uv": [84, 65], "uv_size": [2, -1]}, - "down": {"uv": [84, 65], "uv_size": [2, 1]} + "east": {"uv": [63, 92], "uv_size": [1, 1]}, + "west": {"uv": [63, 92], "uv_size": [1, 1]}, + "up": {"uv": [64, 93], "uv_size": [-1, -1]}, + "down": {"uv": [64, 93], "uv_size": [-1, -1]} } }, { @@ -9030,10 +9030,10 @@ "pivot": [30, 20.09532, -60.28029], "rotation": [90.25, 0, 0], "uv": { - "east": {"uv": [93, 61], "uv_size": [-1, 1]}, - "west": {"uv": [63, 92], "uv_size": [-1, 1]}, - "up": {"uv": [84, 65], "uv_size": [2, -1]}, - "down": {"uv": [84, 65], "uv_size": [2, 1]} + "east": {"uv": [63, 92], "uv_size": [1, 1]}, + "west": {"uv": [63, 92], "uv_size": [1, 1]}, + "up": {"uv": [64, 93], "uv_size": [-1, -1]}, + "down": {"uv": [64, 93], "uv_size": [-1, -1]} } } ] @@ -10354,10 +10354,10 @@ "pivot": [-30, 20.27286, -60.10428], "rotation": [45.25, 0, 0], "uv": { - "east": {"uv": [62, 92], "uv_size": [1, 1]}, - "west": {"uv": [92, 61], "uv_size": [1, 1]}, - "up": {"uv": [86, 65], "uv_size": [-2, -1]}, - "down": {"uv": [86, 65], "uv_size": [-2, 1]} + "east": {"uv": [63, 92], "uv_size": [1, 1]}, + "west": {"uv": [63, 92], "uv_size": [1, 1]}, + "up": {"uv": [64, 93], "uv_size": [-1, -1]}, + "down": {"uv": [64, 93], "uv_size": [-1, -1]} } }, { @@ -10366,10 +10366,10 @@ "pivot": [-30, 24.93117, -55.08519], "rotation": [-0.25, 0, 0], "uv": { - "east": {"uv": [63, 92], "uv_size": [-1, 1]}, - "west": {"uv": [93, 61], "uv_size": [-1, 1]}, - "up": {"uv": [86, 64], "uv_size": [-2, 1]}, - "down": {"uv": [86, 66], "uv_size": [-2, -1]} + "east": {"uv": [63, 92], "uv_size": [1, 1]}, + "west": {"uv": [63, 92], "uv_size": [1, 1]}, + "up": {"uv": [64, 93], "uv_size": [-1, -1]}, + "down": {"uv": [64, 93], "uv_size": [-1, -1]} } }, { @@ -10378,10 +10378,10 @@ "pivot": [-30, 19.77327, 59.93548], "rotation": [-45.25, 0, 0], "uv": { - "east": {"uv": [63, 92], "uv_size": [-1, 1]}, - "west": {"uv": [93, 61], "uv_size": [-1, 1]}, - "up": {"uv": [86, 64], "uv_size": [-2, 1]}, - "down": {"uv": [86, 66], "uv_size": [-2, -1]} + "east": {"uv": [63, 92], "uv_size": [1, 1]}, + "west": {"uv": [63, 92], "uv_size": [1, 1]}, + "up": {"uv": [64, 93], "uv_size": [-1, -1]}, + "down": {"uv": [64, 93], "uv_size": [-1, -1]} } }, { @@ -10390,10 +10390,10 @@ "pivot": [-30, 19.77327, 59.93548], "rotation": [-90.25, 0, 0], "uv": { - "east": {"uv": [63, 92], "uv_size": [-1, 1]}, - "west": {"uv": [93, 61], "uv_size": [-1, 1]}, - "up": {"uv": [86, 64], "uv_size": [-2, 1]}, - "down": {"uv": [86, 66], "uv_size": [-2, -1]} + "east": {"uv": [63, 92], "uv_size": [1, 1]}, + "west": {"uv": [63, 92], "uv_size": [1, 1]}, + "up": {"uv": [64, 93], "uv_size": [-1, -1]}, + "down": {"uv": [64, 93], "uv_size": [-1, -1]} } }, { @@ -10402,10 +10402,10 @@ "pivot": [-30, 11.03653, 55.25669], "rotation": [-147.75, 0, 0], "uv": { - "east": {"uv": [63, 92], "uv_size": [-1, 1]}, - "west": {"uv": [93, 61], "uv_size": [-1, 1]}, - "up": {"uv": [86, 64], "uv_size": [-2, 1]}, - "down": {"uv": [86, 66], "uv_size": [-2, -1]} + "east": {"uv": [63, 92], "uv_size": [1, 1]}, + "west": {"uv": [63, 92], "uv_size": [1, 1]}, + "up": {"uv": [64, 93], "uv_size": [-1, -1]}, + "down": {"uv": [64, 93], "uv_size": [-1, -1]} } }, { @@ -10414,10 +10414,10 @@ "pivot": [-30, 2.12908, 41.48198], "rotation": [180, 0, 0], "uv": { - "east": {"uv": [63, 92], "uv_size": [-1, 1]}, - "west": {"uv": [93, 61], "uv_size": [-1, 1]}, - "up": {"uv": [86, 64], "uv_size": [-2, 1]}, - "down": {"uv": [86, 66], "uv_size": [-2, -1]} + "east": {"uv": [63, 92], "uv_size": [1, 1]}, + "west": {"uv": [63, 92], "uv_size": [1, 1]}, + "up": {"uv": [64, 93], "uv_size": [-1, -1]}, + "down": {"uv": [64, 93], "uv_size": [-1, -1]} } }, { @@ -10426,10 +10426,10 @@ "pivot": [-30, 11.60338, 56.50044], "rotation": [-135.25, 0, 0], "uv": { - "east": {"uv": [63, 92], "uv_size": [-1, 1]}, - "west": {"uv": [93, 61], "uv_size": [-1, 1]}, - "up": {"uv": [86, 64], "uv_size": [-2, 1]}, - "down": {"uv": [86, 66], "uv_size": [-2, -1]} + "east": {"uv": [63, 92], "uv_size": [1, 1]}, + "west": {"uv": [63, 92], "uv_size": [1, 1]}, + "up": {"uv": [64, 93], "uv_size": [-1, -1]}, + "down": {"uv": [64, 93], "uv_size": [-1, -1]} } }, { @@ -10438,10 +10438,10 @@ "pivot": [-30, 10.30691, -55.3571], "rotation": [150.75, 0, 0], "uv": { - "east": {"uv": [62, 92], "uv_size": [1, 1]}, - "west": {"uv": [92, 61], "uv_size": [1, 1]}, - "up": {"uv": [86, 65], "uv_size": [-2, -1]}, - "down": {"uv": [86, 65], "uv_size": [-2, 1]} + "east": {"uv": [63, 92], "uv_size": [1, 1]}, + "west": {"uv": [63, 92], "uv_size": [1, 1]}, + "up": {"uv": [64, 93], "uv_size": [-1, -1]}, + "down": {"uv": [64, 93], "uv_size": [-1, -1]} } }, { @@ -10450,10 +10450,10 @@ "pivot": [-30, 10.36633, -55.83431], "rotation": [132.25, 0, 0], "uv": { - "east": {"uv": [62, 92], "uv_size": [1, 1]}, - "west": {"uv": [92, 61], "uv_size": [1, 1]}, - "up": {"uv": [86, 65], "uv_size": [-2, -1]}, - "down": {"uv": [86, 65], "uv_size": [-2, 1]} + "east": {"uv": [63, 92], "uv_size": [1, 1]}, + "west": {"uv": [63, 92], "uv_size": [1, 1]}, + "up": {"uv": [64, 93], "uv_size": [-1, -1]}, + "down": {"uv": [64, 93], "uv_size": [-1, -1]} } }, { @@ -10462,10 +10462,10 @@ "pivot": [-30, 20.09532, -60.28029], "rotation": [90.25, 0, 0], "uv": { - "east": {"uv": [62, 92], "uv_size": [1, 1]}, - "west": {"uv": [92, 61], "uv_size": [1, 1]}, - "up": {"uv": [86, 65], "uv_size": [-2, -1]}, - "down": {"uv": [86, 65], "uv_size": [-2, 1]} + "east": {"uv": [63, 92], "uv_size": [1, 1]}, + "west": {"uv": [63, 92], "uv_size": [1, 1]}, + "up": {"uv": [64, 93], "uv_size": [-1, -1]}, + "down": {"uv": [64, 93], "uv_size": [-1, -1]} } } ] diff --git a/src/main/resources/assets/superbwarfare/textures/entity/bmp2.png b/src/main/resources/assets/superbwarfare/textures/entity/bmp2.png index ab80205ee..a27bbd68c 100644 Binary files a/src/main/resources/assets/superbwarfare/textures/entity/bmp2.png and b/src/main/resources/assets/superbwarfare/textures/entity/bmp2.png differ