Code/net/minecraft/world/entity/boss/enderdragon/phases/AbstractDragonPhaseInstance...

66 lines
1.6 KiB
Java

package net.minecraft.world.entity.boss.enderdragon.phases;
import javax.annotation.Nullable;
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;
public abstract class AbstractDragonPhaseInstance implements DragonPhaseInstance {
protected final EnderDragon dragon;
public AbstractDragonPhaseInstance(EnderDragon p_31178_) {
this.dragon = p_31178_;
}
@Override
public boolean isSitting() {
return false;
}
@Override
public void doClientTick() {
}
@Override
public void doServerTick(ServerLevel p_366147_) {
}
@Override
public void onCrystalDestroyed(EndCrystal p_31184_, BlockPos p_31185_, DamageSource p_31186_, @Nullable Player p_31187_) {
}
@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 p_31181_, float p_31182_) {
return p_31182_;
}
@Override
public float getTurnSpeed() {
float f = (float)this.dragon.getDeltaMovement().horizontalDistance() + 1.0F;
float f1 = Math.min(f, 40.0F);
return 0.7F / f1 / f;
}
}