尝试修复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);
|
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
|
@Nullable
|
||||||
@Override
|
@Override
|
||||||
public LivingEntity getControllingPassenger() {
|
public LivingEntity getControllingPassenger() {
|
||||||
|
@ -132,16 +148,6 @@ public abstract class VehicleEntity extends Entity {
|
||||||
return orderedPassengers.get(0);
|
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个乘客
|
* 获取第index个乘客
|
||||||
*
|
*
|
||||||
|
|
|
@ -5,3 +5,4 @@ public net.minecraft.client.multiplayer.ClientLevel m_142646_()Lnet/minecraft/wo
|
||||||
public net.minecraft.client.renderer.culling.Frustum f_252406_ # matrix
|
public net.minecraft.client.renderer.culling.Frustum f_252406_ # matrix
|
||||||
public net.minecraft.client.player.LocalPlayer f_108611_ # handsBusy
|
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