51 lines
1.4 KiB
Java
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;
|
|
}
|
|
}
|