minecraft-src/net/minecraft/world/entity/monster/warden/AngerLevel.java
2025-07-04 01:41:11 +03:00

51 lines
1.4 KiB
Java

package net.minecraft.world.entity.monster.warden;
import java.util.Arrays;
import net.minecraft.Util;
import net.minecraft.sounds.SoundEvent;
import net.minecraft.sounds.SoundEvents;
public enum AngerLevel {
CALM(0, SoundEvents.WARDEN_AMBIENT, SoundEvents.WARDEN_LISTENING),
AGITATED(40, SoundEvents.WARDEN_AGITATED, SoundEvents.WARDEN_LISTENING_ANGRY),
ANGRY(80, SoundEvents.WARDEN_ANGRY, SoundEvents.WARDEN_LISTENING_ANGRY);
private static final AngerLevel[] SORTED_LEVELS = Util.make(
values(), angerLevels -> Arrays.sort(angerLevels, (angerLevel, angerLevel2) -> Integer.compare(angerLevel2.minimumAnger, angerLevel.minimumAnger))
);
private final int minimumAnger;
private final SoundEvent ambientSound;
private final SoundEvent listeningSound;
private AngerLevel(final int minimumAnger, final SoundEvent ambientSound, final SoundEvent listeningSound) {
this.minimumAnger = minimumAnger;
this.ambientSound = ambientSound;
this.listeningSound = listeningSound;
}
public int getMinimumAnger() {
return this.minimumAnger;
}
public SoundEvent getAmbientSound() {
return this.ambientSound;
}
public SoundEvent getListeningSound() {
return this.listeningSound;
}
public static AngerLevel byAnger(int anger) {
for (AngerLevel angerLevel : SORTED_LEVELS) {
if (anger >= angerLevel.minimumAnger) {
return angerLevel;
}
}
return CALM;
}
public boolean isAngry() {
return this == ANGRY;
}
}