121 lines
3.2 KiB
Java
121 lines
3.2 KiB
Java
/*
|
|
* Decompiled with CFR 0.152.
|
|
*
|
|
* Could not load the following classes:
|
|
* org.jspecify.annotations.Nullable
|
|
*/
|
|
package net.minecraft.client.resources.sounds;
|
|
|
|
import net.minecraft.client.resources.sounds.Sound;
|
|
import net.minecraft.client.resources.sounds.SoundInstance;
|
|
import net.minecraft.client.sounds.SoundManager;
|
|
import net.minecraft.client.sounds.WeighedSoundEvents;
|
|
import net.minecraft.resources.Identifier;
|
|
import net.minecraft.sounds.SoundEvent;
|
|
import net.minecraft.sounds.SoundSource;
|
|
import net.minecraft.util.RandomSource;
|
|
import org.jspecify.annotations.Nullable;
|
|
|
|
public abstract class AbstractSoundInstance
|
|
implements SoundInstance {
|
|
protected @Nullable Sound sound;
|
|
protected final SoundSource source;
|
|
protected final Identifier identifier;
|
|
protected float volume = 1.0f;
|
|
protected float pitch = 1.0f;
|
|
protected double x;
|
|
protected double y;
|
|
protected double z;
|
|
protected boolean looping;
|
|
protected int delay;
|
|
protected SoundInstance.Attenuation attenuation = SoundInstance.Attenuation.LINEAR;
|
|
protected boolean relative;
|
|
protected RandomSource random;
|
|
|
|
protected AbstractSoundInstance(SoundEvent event, SoundSource source, RandomSource random) {
|
|
this(event.location(), source, random);
|
|
}
|
|
|
|
protected AbstractSoundInstance(Identifier identifier, SoundSource source, RandomSource random) {
|
|
this.identifier = identifier;
|
|
this.source = source;
|
|
this.random = random;
|
|
}
|
|
|
|
@Override
|
|
public Identifier getIdentifier() {
|
|
return this.identifier;
|
|
}
|
|
|
|
@Override
|
|
public @Nullable WeighedSoundEvents resolve(SoundManager soundManager) {
|
|
if (this.identifier.equals(SoundManager.INTENTIONALLY_EMPTY_SOUND_LOCATION)) {
|
|
this.sound = SoundManager.INTENTIONALLY_EMPTY_SOUND;
|
|
return SoundManager.INTENTIONALLY_EMPTY_SOUND_EVENT;
|
|
}
|
|
WeighedSoundEvents soundEvent = soundManager.getSoundEvent(this.identifier);
|
|
this.sound = soundEvent == null ? SoundManager.EMPTY_SOUND : soundEvent.getSound(this.random);
|
|
return soundEvent;
|
|
}
|
|
|
|
@Override
|
|
public @Nullable Sound getSound() {
|
|
return this.sound;
|
|
}
|
|
|
|
@Override
|
|
public SoundSource getSource() {
|
|
return this.source;
|
|
}
|
|
|
|
@Override
|
|
public boolean isLooping() {
|
|
return this.looping;
|
|
}
|
|
|
|
@Override
|
|
public int getDelay() {
|
|
return this.delay;
|
|
}
|
|
|
|
@Override
|
|
public float getVolume() {
|
|
return this.volume * this.sound.getVolume().sample(this.random);
|
|
}
|
|
|
|
@Override
|
|
public float getPitch() {
|
|
return this.pitch * this.sound.getPitch().sample(this.random);
|
|
}
|
|
|
|
@Override
|
|
public double getX() {
|
|
return this.x;
|
|
}
|
|
|
|
@Override
|
|
public double getY() {
|
|
return this.y;
|
|
}
|
|
|
|
@Override
|
|
public double getZ() {
|
|
return this.z;
|
|
}
|
|
|
|
@Override
|
|
public SoundInstance.Attenuation getAttenuation() {
|
|
return this.attenuation;
|
|
}
|
|
|
|
@Override
|
|
public boolean isRelative() {
|
|
return this.relative;
|
|
}
|
|
|
|
public String toString() {
|
|
return "SoundInstance[" + String.valueOf(this.identifier) + "]";
|
|
}
|
|
}
|
|
|