代码调整,添加todo
This commit is contained in:
parent
81a5cff304
commit
606adcb490
3 changed files with 11 additions and 7 deletions
|
@ -75,7 +75,7 @@ public class MobileVehicleEntity extends EnergyVehicleEntity {
|
||||||
collisionCoolDown = 4;
|
collisionCoolDown = 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((horizontalCollision)) {
|
if (this.horizontalCollision) {
|
||||||
this.bounceHorizontal(Direction.getNearest(this.getDeltaMovement().x(), this.getDeltaMovement().y(), this.getDeltaMovement().z()).getOpposite());
|
this.bounceHorizontal(Direction.getNearest(this.getDeltaMovement().x(), this.getDeltaMovement().y(), this.getDeltaMovement().z()).getOpposite());
|
||||||
this.hurt(ModDamageTypes.causeVehicleStrikeDamage(this.level().registryAccess(), this, this.getFirstPassenger() == null ? this : this.getFirstPassenger()), (float) (160 * ((lastTickSpeed - 0.4) * (lastTickSpeed - 0.4))));
|
this.hurt(ModDamageTypes.causeVehicleStrikeDamage(this.level().registryAccess(), this, this.getFirstPassenger() == null ? this : this.getFirstPassenger()), (float) (160 * ((lastTickSpeed - 0.4) * (lastTickSpeed - 0.4))));
|
||||||
if (!this.level().isClientSide) {
|
if (!this.level().isClientSide) {
|
||||||
|
@ -83,9 +83,11 @@ public class MobileVehicleEntity extends EnergyVehicleEntity {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((verticalCollision)) {
|
// TODO bug修复:本方法会在速度到达一定程度且乘客不为空时,持续对自身造成伤害
|
||||||
|
if (this.verticalCollision) {
|
||||||
this.bounceVertical(Direction.getNearest(this.getDeltaMovement().x(), this.getDeltaMovement().y(), this.getDeltaMovement().z()).getOpposite());
|
this.bounceVertical(Direction.getNearest(this.getDeltaMovement().x(), this.getDeltaMovement().y(), this.getDeltaMovement().z()).getOpposite());
|
||||||
this.hurt(ModDamageTypes.causeVehicleStrikeDamage(this.level().registryAccess(), this, this.getFirstPassenger() == null ? this : this.getFirstPassenger()), (float) (100 * ((lastTickSpeed - 0.4) * (lastTickSpeed - 0.4))));
|
this.hurt(ModDamageTypes.causeVehicleStrikeDamage(this.level().registryAccess(), this,
|
||||||
|
this.getFirstPassenger() == null ? this : this.getFirstPassenger()), (float) (100 * ((lastTickSpeed - 0.4) * (lastTickSpeed - 0.4))));
|
||||||
if (!this.level().isClientSide) {
|
if (!this.level().isClientSide) {
|
||||||
this.level().playSound(null, this, ModSounds.VEHICLE_STRIKE.get(), this.getSoundSource(), 1, 1);
|
this.level().playSound(null, this, ModSounds.VEHICLE_STRIKE.get(), this.getSoundSource(), 1, 1);
|
||||||
}
|
}
|
||||||
|
@ -102,10 +104,11 @@ public class MobileVehicleEntity extends EnergyVehicleEntity {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void bounceVertical(Direction direction) {
|
private void bounceVertical(Direction direction) {
|
||||||
if (direction.getAxis() == Direction.Axis.Y) {
|
if (direction.getAxis() == Direction.Axis.Y) {
|
||||||
this.setDeltaMovement(this.getDeltaMovement().multiply(0.9, -0.8, 0.9));
|
this.setDeltaMovement(this.getDeltaMovement().multiply(0.9, -0.8, 0.9));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -168,7 +168,7 @@ public class VehicleEntity extends Entity {
|
||||||
if (source.is(DamageTypes.IN_FIRE))
|
if (source.is(DamageTypes.IN_FIRE))
|
||||||
return false;
|
return false;
|
||||||
if (source.is(ModDamageTypes.VEHICLE_STRIKE))
|
if (source.is(ModDamageTypes.VEHICLE_STRIKE))
|
||||||
amount-= 20;
|
amount -= 20;
|
||||||
if (source.getEntity() != null) {
|
if (source.getEntity() != null) {
|
||||||
this.entityData.set(LAST_ATTACKER_UUID, source.getEntity().getStringUUID());
|
this.entityData.set(LAST_ATTACKER_UUID, source.getEntity().getStringUUID());
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,6 +11,7 @@ import net.minecraft.world.level.entity.LevelEntityGetter;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
public class EntityFindUtil {
|
public class EntityFindUtil {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取世界里的所有实体,对ClientLevel和ServerLevel均有效
|
* 获取世界里的所有实体,对ClientLevel和ServerLevel均有效
|
||||||
*
|
*
|
||||||
|
|
Loading…
Add table
Reference in a new issue