2025-11-24 22:52:51 +03:00

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) + "]";
}
}