This commit is contained in:
Atsuihsio 2025-02-05 14:08:38 +08:00
parent 22f4f9481c
commit d3d1b97df3
4 changed files with 98 additions and 82 deletions

View file

@ -137,6 +137,11 @@ public class TargetEntity extends LivingEntity implements GeoEntity, AnimatedEnt
} }
} }
@Override
public boolean isPickable() {
return this.entityData.get(DOWN_TIME) == 0;
}
@Override @Override
public void die(DamageSource source) { public void die(DamageSource source) {
super.die(source); super.die(source);

View file

@ -45,6 +45,7 @@ import org.joml.Matrix4f;
import org.joml.Vector4f; import org.joml.Vector4f;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List;
public class VehicleEntity extends Entity { public class VehicleEntity extends Entity {
@ -187,12 +188,22 @@ public class VehicleEntity extends Entity {
public void hurt(float pHealAmount, Entity attacker, boolean send) { public void hurt(float pHealAmount, Entity attacker, boolean send) {
if (this.level() instanceof ServerLevel) { 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)) { 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)); ModUtils.PACKET_HANDLER.send(PacketDistributor.PLAYER.with(() -> player), new ClientIndicatorMessage(3, 5));
} }
if (pHealAmount > 0 && this.getHealth() > 0 && send) {
List<Entity> 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); this.setHealth(this.getHealth() - pHealAmount);
} }
} }

View file

@ -8922,10 +8922,10 @@
"pivot": [30, 20.27286, -60.10428], "pivot": [30, 20.27286, -60.10428],
"rotation": [45.25, 0, 0], "rotation": [45.25, 0, 0],
"uv": { "uv": {
"east": {"uv": [93, 61], "uv_size": [-1, 1]}, "east": {"uv": [63, 92], "uv_size": [1, 1]},
"west": {"uv": [63, 92], "uv_size": [-1, 1]}, "west": {"uv": [63, 92], "uv_size": [1, 1]},
"up": {"uv": [84, 65], "uv_size": [2, -1]}, "up": {"uv": [64, 93], "uv_size": [-1, -1]},
"down": {"uv": [84, 65], "uv_size": [2, 1]} "down": {"uv": [64, 93], "uv_size": [-1, -1]}
} }
}, },
{ {
@ -8934,10 +8934,10 @@
"pivot": [30, 24.93117, -55.08519], "pivot": [30, 24.93117, -55.08519],
"rotation": [-0.25, 0, 0], "rotation": [-0.25, 0, 0],
"uv": { "uv": {
"east": {"uv": [92, 61], "uv_size": [1, 1]}, "east": {"uv": [63, 92], "uv_size": [1, 1]},
"west": {"uv": [62, 92], "uv_size": [1, 1]}, "west": {"uv": [63, 92], "uv_size": [1, 1]},
"up": {"uv": [84, 64], "uv_size": [2, 1]}, "up": {"uv": [64, 93], "uv_size": [-1, -1]},
"down": {"uv": [84, 66], "uv_size": [2, -1]} "down": {"uv": [64, 93], "uv_size": [-1, -1]}
} }
}, },
{ {
@ -8946,10 +8946,10 @@
"pivot": [30, 19.77327, 59.93548], "pivot": [30, 19.77327, 59.93548],
"rotation": [-45.25, 0, 0], "rotation": [-45.25, 0, 0],
"uv": { "uv": {
"east": {"uv": [92, 61], "uv_size": [1, 1]}, "east": {"uv": [63, 92], "uv_size": [1, 1]},
"west": {"uv": [62, 92], "uv_size": [1, 1]}, "west": {"uv": [63, 92], "uv_size": [1, 1]},
"up": {"uv": [84, 64], "uv_size": [2, 1]}, "up": {"uv": [64, 93], "uv_size": [-1, -1]},
"down": {"uv": [84, 66], "uv_size": [2, -1]} "down": {"uv": [64, 93], "uv_size": [-1, -1]}
} }
}, },
{ {
@ -8958,10 +8958,10 @@
"pivot": [30, 19.77327, 59.93548], "pivot": [30, 19.77327, 59.93548],
"rotation": [-90.25, 0, 0], "rotation": [-90.25, 0, 0],
"uv": { "uv": {
"east": {"uv": [92, 61], "uv_size": [1, 1]}, "east": {"uv": [63, 92], "uv_size": [1, 1]},
"west": {"uv": [62, 92], "uv_size": [1, 1]}, "west": {"uv": [63, 92], "uv_size": [1, 1]},
"up": {"uv": [84, 64], "uv_size": [2, 1]}, "up": {"uv": [64, 93], "uv_size": [-1, -1]},
"down": {"uv": [84, 66], "uv_size": [2, -1]} "down": {"uv": [64, 93], "uv_size": [-1, -1]}
} }
}, },
{ {
@ -8970,10 +8970,10 @@
"pivot": [30, 11.03653, 55.25669], "pivot": [30, 11.03653, 55.25669],
"rotation": [-147.75, 0, 0], "rotation": [-147.75, 0, 0],
"uv": { "uv": {
"east": {"uv": [92, 61], "uv_size": [1, 1]}, "east": {"uv": [63, 92], "uv_size": [1, 1]},
"west": {"uv": [62, 92], "uv_size": [1, 1]}, "west": {"uv": [63, 92], "uv_size": [1, 1]},
"up": {"uv": [84, 64], "uv_size": [2, 1]}, "up": {"uv": [64, 93], "uv_size": [-1, -1]},
"down": {"uv": [84, 66], "uv_size": [2, -1]} "down": {"uv": [64, 93], "uv_size": [-1, -1]}
} }
}, },
{ {
@ -8982,10 +8982,10 @@
"pivot": [30, 2.12908, 41.48198], "pivot": [30, 2.12908, 41.48198],
"rotation": [180, 0, 0], "rotation": [180, 0, 0],
"uv": { "uv": {
"east": {"uv": [92, 61], "uv_size": [1, 1]}, "east": {"uv": [63, 92], "uv_size": [1, 1]},
"west": {"uv": [62, 92], "uv_size": [1, 1]}, "west": {"uv": [63, 92], "uv_size": [1, 1]},
"up": {"uv": [84, 64], "uv_size": [2, 1]}, "up": {"uv": [64, 93], "uv_size": [-1, -1]},
"down": {"uv": [84, 66], "uv_size": [2, -1]} "down": {"uv": [64, 93], "uv_size": [-1, -1]}
} }
}, },
{ {
@ -8994,10 +8994,10 @@
"pivot": [30, 11.60338, 56.50044], "pivot": [30, 11.60338, 56.50044],
"rotation": [-135.25, 0, 0], "rotation": [-135.25, 0, 0],
"uv": { "uv": {
"east": {"uv": [92, 61], "uv_size": [1, 1]}, "east": {"uv": [63, 92], "uv_size": [1, 1]},
"west": {"uv": [62, 92], "uv_size": [1, 1]}, "west": {"uv": [63, 92], "uv_size": [1, 1]},
"up": {"uv": [84, 64], "uv_size": [2, 1]}, "up": {"uv": [64, 93], "uv_size": [-1, -1]},
"down": {"uv": [84, 66], "uv_size": [2, -1]} "down": {"uv": [64, 93], "uv_size": [-1, -1]}
} }
}, },
{ {
@ -9006,10 +9006,10 @@
"pivot": [30, 10.30691, -55.3571], "pivot": [30, 10.30691, -55.3571],
"rotation": [150.75, 0, 0], "rotation": [150.75, 0, 0],
"uv": { "uv": {
"east": {"uv": [93, 61], "uv_size": [-1, 1]}, "east": {"uv": [63, 92], "uv_size": [1, 1]},
"west": {"uv": [63, 92], "uv_size": [-1, 1]}, "west": {"uv": [63, 92], "uv_size": [1, 1]},
"up": {"uv": [84, 65], "uv_size": [2, -1]}, "up": {"uv": [64, 93], "uv_size": [-1, -1]},
"down": {"uv": [84, 65], "uv_size": [2, 1]} "down": {"uv": [64, 93], "uv_size": [-1, -1]}
} }
}, },
{ {
@ -9018,10 +9018,10 @@
"pivot": [30, 10.36633, -55.83431], "pivot": [30, 10.36633, -55.83431],
"rotation": [132.25, 0, 0], "rotation": [132.25, 0, 0],
"uv": { "uv": {
"east": {"uv": [93, 61], "uv_size": [-1, 1]}, "east": {"uv": [63, 92], "uv_size": [1, 1]},
"west": {"uv": [63, 92], "uv_size": [-1, 1]}, "west": {"uv": [63, 92], "uv_size": [1, 1]},
"up": {"uv": [84, 65], "uv_size": [2, -1]}, "up": {"uv": [64, 93], "uv_size": [-1, -1]},
"down": {"uv": [84, 65], "uv_size": [2, 1]} "down": {"uv": [64, 93], "uv_size": [-1, -1]}
} }
}, },
{ {
@ -9030,10 +9030,10 @@
"pivot": [30, 20.09532, -60.28029], "pivot": [30, 20.09532, -60.28029],
"rotation": [90.25, 0, 0], "rotation": [90.25, 0, 0],
"uv": { "uv": {
"east": {"uv": [93, 61], "uv_size": [-1, 1]}, "east": {"uv": [63, 92], "uv_size": [1, 1]},
"west": {"uv": [63, 92], "uv_size": [-1, 1]}, "west": {"uv": [63, 92], "uv_size": [1, 1]},
"up": {"uv": [84, 65], "uv_size": [2, -1]}, "up": {"uv": [64, 93], "uv_size": [-1, -1]},
"down": {"uv": [84, 65], "uv_size": [2, 1]} "down": {"uv": [64, 93], "uv_size": [-1, -1]}
} }
} }
] ]
@ -10354,10 +10354,10 @@
"pivot": [-30, 20.27286, -60.10428], "pivot": [-30, 20.27286, -60.10428],
"rotation": [45.25, 0, 0], "rotation": [45.25, 0, 0],
"uv": { "uv": {
"east": {"uv": [62, 92], "uv_size": [1, 1]}, "east": {"uv": [63, 92], "uv_size": [1, 1]},
"west": {"uv": [92, 61], "uv_size": [1, 1]}, "west": {"uv": [63, 92], "uv_size": [1, 1]},
"up": {"uv": [86, 65], "uv_size": [-2, -1]}, "up": {"uv": [64, 93], "uv_size": [-1, -1]},
"down": {"uv": [86, 65], "uv_size": [-2, 1]} "down": {"uv": [64, 93], "uv_size": [-1, -1]}
} }
}, },
{ {
@ -10366,10 +10366,10 @@
"pivot": [-30, 24.93117, -55.08519], "pivot": [-30, 24.93117, -55.08519],
"rotation": [-0.25, 0, 0], "rotation": [-0.25, 0, 0],
"uv": { "uv": {
"east": {"uv": [63, 92], "uv_size": [-1, 1]}, "east": {"uv": [63, 92], "uv_size": [1, 1]},
"west": {"uv": [93, 61], "uv_size": [-1, 1]}, "west": {"uv": [63, 92], "uv_size": [1, 1]},
"up": {"uv": [86, 64], "uv_size": [-2, 1]}, "up": {"uv": [64, 93], "uv_size": [-1, -1]},
"down": {"uv": [86, 66], "uv_size": [-2, -1]} "down": {"uv": [64, 93], "uv_size": [-1, -1]}
} }
}, },
{ {
@ -10378,10 +10378,10 @@
"pivot": [-30, 19.77327, 59.93548], "pivot": [-30, 19.77327, 59.93548],
"rotation": [-45.25, 0, 0], "rotation": [-45.25, 0, 0],
"uv": { "uv": {
"east": {"uv": [63, 92], "uv_size": [-1, 1]}, "east": {"uv": [63, 92], "uv_size": [1, 1]},
"west": {"uv": [93, 61], "uv_size": [-1, 1]}, "west": {"uv": [63, 92], "uv_size": [1, 1]},
"up": {"uv": [86, 64], "uv_size": [-2, 1]}, "up": {"uv": [64, 93], "uv_size": [-1, -1]},
"down": {"uv": [86, 66], "uv_size": [-2, -1]} "down": {"uv": [64, 93], "uv_size": [-1, -1]}
} }
}, },
{ {
@ -10390,10 +10390,10 @@
"pivot": [-30, 19.77327, 59.93548], "pivot": [-30, 19.77327, 59.93548],
"rotation": [-90.25, 0, 0], "rotation": [-90.25, 0, 0],
"uv": { "uv": {
"east": {"uv": [63, 92], "uv_size": [-1, 1]}, "east": {"uv": [63, 92], "uv_size": [1, 1]},
"west": {"uv": [93, 61], "uv_size": [-1, 1]}, "west": {"uv": [63, 92], "uv_size": [1, 1]},
"up": {"uv": [86, 64], "uv_size": [-2, 1]}, "up": {"uv": [64, 93], "uv_size": [-1, -1]},
"down": {"uv": [86, 66], "uv_size": [-2, -1]} "down": {"uv": [64, 93], "uv_size": [-1, -1]}
} }
}, },
{ {
@ -10402,10 +10402,10 @@
"pivot": [-30, 11.03653, 55.25669], "pivot": [-30, 11.03653, 55.25669],
"rotation": [-147.75, 0, 0], "rotation": [-147.75, 0, 0],
"uv": { "uv": {
"east": {"uv": [63, 92], "uv_size": [-1, 1]}, "east": {"uv": [63, 92], "uv_size": [1, 1]},
"west": {"uv": [93, 61], "uv_size": [-1, 1]}, "west": {"uv": [63, 92], "uv_size": [1, 1]},
"up": {"uv": [86, 64], "uv_size": [-2, 1]}, "up": {"uv": [64, 93], "uv_size": [-1, -1]},
"down": {"uv": [86, 66], "uv_size": [-2, -1]} "down": {"uv": [64, 93], "uv_size": [-1, -1]}
} }
}, },
{ {
@ -10414,10 +10414,10 @@
"pivot": [-30, 2.12908, 41.48198], "pivot": [-30, 2.12908, 41.48198],
"rotation": [180, 0, 0], "rotation": [180, 0, 0],
"uv": { "uv": {
"east": {"uv": [63, 92], "uv_size": [-1, 1]}, "east": {"uv": [63, 92], "uv_size": [1, 1]},
"west": {"uv": [93, 61], "uv_size": [-1, 1]}, "west": {"uv": [63, 92], "uv_size": [1, 1]},
"up": {"uv": [86, 64], "uv_size": [-2, 1]}, "up": {"uv": [64, 93], "uv_size": [-1, -1]},
"down": {"uv": [86, 66], "uv_size": [-2, -1]} "down": {"uv": [64, 93], "uv_size": [-1, -1]}
} }
}, },
{ {
@ -10426,10 +10426,10 @@
"pivot": [-30, 11.60338, 56.50044], "pivot": [-30, 11.60338, 56.50044],
"rotation": [-135.25, 0, 0], "rotation": [-135.25, 0, 0],
"uv": { "uv": {
"east": {"uv": [63, 92], "uv_size": [-1, 1]}, "east": {"uv": [63, 92], "uv_size": [1, 1]},
"west": {"uv": [93, 61], "uv_size": [-1, 1]}, "west": {"uv": [63, 92], "uv_size": [1, 1]},
"up": {"uv": [86, 64], "uv_size": [-2, 1]}, "up": {"uv": [64, 93], "uv_size": [-1, -1]},
"down": {"uv": [86, 66], "uv_size": [-2, -1]} "down": {"uv": [64, 93], "uv_size": [-1, -1]}
} }
}, },
{ {
@ -10438,10 +10438,10 @@
"pivot": [-30, 10.30691, -55.3571], "pivot": [-30, 10.30691, -55.3571],
"rotation": [150.75, 0, 0], "rotation": [150.75, 0, 0],
"uv": { "uv": {
"east": {"uv": [62, 92], "uv_size": [1, 1]}, "east": {"uv": [63, 92], "uv_size": [1, 1]},
"west": {"uv": [92, 61], "uv_size": [1, 1]}, "west": {"uv": [63, 92], "uv_size": [1, 1]},
"up": {"uv": [86, 65], "uv_size": [-2, -1]}, "up": {"uv": [64, 93], "uv_size": [-1, -1]},
"down": {"uv": [86, 65], "uv_size": [-2, 1]} "down": {"uv": [64, 93], "uv_size": [-1, -1]}
} }
}, },
{ {
@ -10450,10 +10450,10 @@
"pivot": [-30, 10.36633, -55.83431], "pivot": [-30, 10.36633, -55.83431],
"rotation": [132.25, 0, 0], "rotation": [132.25, 0, 0],
"uv": { "uv": {
"east": {"uv": [62, 92], "uv_size": [1, 1]}, "east": {"uv": [63, 92], "uv_size": [1, 1]},
"west": {"uv": [92, 61], "uv_size": [1, 1]}, "west": {"uv": [63, 92], "uv_size": [1, 1]},
"up": {"uv": [86, 65], "uv_size": [-2, -1]}, "up": {"uv": [64, 93], "uv_size": [-1, -1]},
"down": {"uv": [86, 65], "uv_size": [-2, 1]} "down": {"uv": [64, 93], "uv_size": [-1, -1]}
} }
}, },
{ {
@ -10462,10 +10462,10 @@
"pivot": [-30, 20.09532, -60.28029], "pivot": [-30, 20.09532, -60.28029],
"rotation": [90.25, 0, 0], "rotation": [90.25, 0, 0],
"uv": { "uv": {
"east": {"uv": [62, 92], "uv_size": [1, 1]}, "east": {"uv": [63, 92], "uv_size": [1, 1]},
"west": {"uv": [92, 61], "uv_size": [1, 1]}, "west": {"uv": [63, 92], "uv_size": [1, 1]},
"up": {"uv": [86, 65], "uv_size": [-2, -1]}, "up": {"uv": [64, 93], "uv_size": [-1, -1]},
"down": {"uv": [86, 65], "uv_size": [-2, 1]} "down": {"uv": [64, 93], "uv_size": [-1, -1]}
} }
} }
] ]

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.8 KiB

After

Width:  |  Height:  |  Size: 9.8 KiB