package gregtech.client; import net.minecraft.client.audio.ISound; import net.minecraft.client.audio.ITickableSound; import net.minecraft.util.ResourceLocation; public class ElectricJukeboxSound implements ISound, ISeekingSound, ITickableSound { public final ResourceLocation soundResource; public float volume = 1.0F; public float pitch = 1.0F; public float xPosition; public float yPosition; public float zPosition; public boolean repeating = false; public int repeatDelay = 0; public ISound.AttenuationType attenuationType = AttenuationType.LINEAR; public boolean donePlaying = false; public final long seekMs; public ElectricJukeboxSound(ResourceLocation resource, long seekMs) { this.soundResource = resource; this.seekMs = seekMs; } public ElectricJukeboxSound(ResourceLocation soundResource, float volume, long seekMs, float xPosition, float yPosition, float zPosition) { this(soundResource, seekMs); this.volume = volume; this.xPosition = xPosition; this.yPosition = yPosition; this.zPosition = zPosition; } @Override public long getSeekMillisecondOffset() { return seekMs; } @Override public ResourceLocation getPositionedSoundLocation() { return soundResource; } @Override public boolean canRepeat() { return repeating; } @Override public int getRepeatDelay() { return repeatDelay; } @Override public float getVolume() { return volume; } @Override public float getPitch() { return pitch; } @Override public float getXPosF() { return xPosition; } @Override public float getYPosF() { return yPosition; } @Override public float getZPosF() { return zPosition; } @Override public AttenuationType getAttenuationType() { return attenuationType; } @Override public boolean isDonePlaying() { return donePlaying; } @Override public void update() { // no-op } }