minecraft-src/net/minecraft/world/entity/boss/enderdragon/phases/AbstractDragonPhaseInstance.java
2025-07-04 02:49:36 +03:00

66 lines
1.4 KiB
Java

package net.minecraft.world.entity.boss.enderdragon.phases;
import net.minecraft.core.BlockPos;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.world.damagesource.DamageSource;
import net.minecraft.world.entity.boss.enderdragon.EndCrystal;
import net.minecraft.world.entity.boss.enderdragon.EnderDragon;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.phys.Vec3;
import org.jetbrains.annotations.Nullable;
public abstract class AbstractDragonPhaseInstance implements DragonPhaseInstance {
protected final EnderDragon dragon;
public AbstractDragonPhaseInstance(EnderDragon dragon) {
this.dragon = dragon;
}
@Override
public boolean isSitting() {
return false;
}
@Override
public void doClientTick() {
}
@Override
public void doServerTick(ServerLevel level) {
}
@Override
public void onCrystalDestroyed(EndCrystal crystal, BlockPos pos, DamageSource damageSource, @Nullable Player player) {
}
@Override
public void begin() {
}
@Override
public void end() {
}
@Override
public float getFlySpeed() {
return 0.6F;
}
@Nullable
@Override
public Vec3 getFlyTargetLocation() {
return null;
}
@Override
public float onHurt(DamageSource damageSource, float amount) {
return amount;
}
@Override
public float getTurnSpeed() {
float f = (float)this.dragon.getDeltaMovement().horizontalDistance() + 1.0F;
float g = Math.min(f, 40.0F);
return 0.7F / g / f;
}
}