尝试修复removePassenger的问题
This commit is contained in:
parent
84e72e2cfd
commit
dbd85ae238
2 changed files with 18 additions and 11 deletions
|
@ -118,6 +118,22 @@ public abstract class VehicleEntity extends Entity {
|
|||
this.gameEvent(GameEvent.ENTITY_MOUNT, pPassenger);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void removePassenger(@NotNull Entity pPassenger) {
|
||||
if (pPassenger.getVehicle() == this) {
|
||||
throw new IllegalStateException("Use x.stopRiding(y), not y.removePassenger(x)");
|
||||
}
|
||||
|
||||
var index = getSeatIndex(pPassenger);
|
||||
if (index == -1) return;
|
||||
|
||||
orderedPassengers.set(index, null);
|
||||
this.passengers = ImmutableList.copyOf(orderedPassengers.stream().filter(Objects::nonNull).toList());
|
||||
|
||||
pPassenger.boardingCooldown = 60;
|
||||
this.gameEvent(GameEvent.ENTITY_DISMOUNT, pPassenger);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public LivingEntity getControllingPassenger() {
|
||||
|
@ -132,16 +148,6 @@ public abstract class VehicleEntity extends Entity {
|
|||
return orderedPassengers.get(0);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void removePassenger(@NotNull Entity pPassenger) {
|
||||
super.removePassenger(pPassenger);
|
||||
|
||||
var index = orderedPassengers.indexOf(pPassenger);
|
||||
if (index != -1) {
|
||||
orderedPassengers.set(index, null);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取第index个乘客
|
||||
*
|
||||
|
|
|
@ -4,4 +4,5 @@ public net.minecraft.server.level.DistanceManager$PlayerTicketTracker
|
|||
public net.minecraft.client.multiplayer.ClientLevel m_142646_()Lnet/minecraft/world/level/entity/LevelEntityGetter; # getEntities
|
||||
public net.minecraft.client.renderer.culling.Frustum f_252406_ # matrix
|
||||
public net.minecraft.client.player.LocalPlayer f_108611_ # handsBusy
|
||||
public net.minecraft.world.entity.Entity f_19823_ # passengers
|
||||
public net.minecraft.world.entity.Entity f_19823_ # passengers
|
||||
public net.minecraft.world.entity.Entity f_19851_ # boardingCooldown
|
Loading…
Add table
Reference in a new issue