203 lines
4.7 KiB
Java
203 lines
4.7 KiB
Java
package com.pahimar.repackage.cofh.lib.audio;
|
|
|
|
import cpw.mods.fml.relauncher.Side;
|
|
import cpw.mods.fml.relauncher.SideOnly;
|
|
import net.minecraft.client.audio.ISound;
|
|
import net.minecraft.util.ResourceLocation;
|
|
|
|
/**
|
|
* Generic ISound class with lots of constructor functionality. Required because - of
|
|
* course - Mojang has no generic that lets you specify *any* arguments for this.
|
|
*
|
|
* @author skyboy
|
|
*/
|
|
@SideOnly(Side.CLIENT)
|
|
public class SoundBase implements ISound {
|
|
protected AttenuationType attenuation;
|
|
protected final ResourceLocation sound;
|
|
protected float volume;
|
|
protected float pitch;
|
|
protected float x;
|
|
protected float y;
|
|
protected float z;
|
|
protected boolean repeat;
|
|
protected int repeatDelay;
|
|
|
|
public SoundBase(String sound) {
|
|
this(sound, 0);
|
|
}
|
|
|
|
public SoundBase(String sound, float volume) {
|
|
this(sound, volume, 0);
|
|
}
|
|
|
|
public SoundBase(String sound, float volume, float pitch) {
|
|
this(sound, volume, pitch, false, 0);
|
|
}
|
|
|
|
public SoundBase(
|
|
String sound, float volume, float pitch, boolean repeat, int repeatDelay
|
|
) {
|
|
this(sound, volume, pitch, repeat, repeatDelay, 0, 0, 0, AttenuationType.NONE);
|
|
}
|
|
|
|
public SoundBase(
|
|
String sound, float volume, float pitch, double x, double y, double z
|
|
) {
|
|
this(sound, volume, pitch, false, 0, x, y, z);
|
|
}
|
|
|
|
public SoundBase(
|
|
String sound,
|
|
float volume,
|
|
float pitch,
|
|
boolean repeat,
|
|
int repeatDelay,
|
|
double x,
|
|
double y,
|
|
double z
|
|
) {
|
|
this(sound, volume, pitch, repeat, repeatDelay, x, y, z, AttenuationType.LINEAR);
|
|
}
|
|
|
|
public SoundBase(
|
|
String sound,
|
|
float volume,
|
|
float pitch,
|
|
boolean repeat,
|
|
int repeatDelay,
|
|
double x,
|
|
double y,
|
|
double z,
|
|
AttenuationType attenuation
|
|
) {
|
|
this(
|
|
new ResourceLocation(sound),
|
|
volume,
|
|
pitch,
|
|
repeat,
|
|
repeatDelay,
|
|
x,
|
|
y,
|
|
z,
|
|
attenuation
|
|
);
|
|
}
|
|
|
|
public SoundBase(ResourceLocation sound) {
|
|
this(sound, 0);
|
|
}
|
|
|
|
public SoundBase(ResourceLocation sound, float volume) {
|
|
this(sound, volume, 0);
|
|
}
|
|
|
|
public SoundBase(ResourceLocation sound, float volume, float pitch) {
|
|
this(sound, volume, pitch, false, 0);
|
|
}
|
|
|
|
public SoundBase(
|
|
ResourceLocation sound, float volume, float pitch, boolean repeat, int repeatDelay
|
|
) {
|
|
this(sound, volume, pitch, repeat, repeatDelay, 0, 0, 0, AttenuationType.NONE);
|
|
}
|
|
|
|
public SoundBase(
|
|
ResourceLocation sound, float volume, float pitch, double x, double y, double z
|
|
) {
|
|
this(sound, volume, pitch, false, 0, x, y, z);
|
|
}
|
|
|
|
public SoundBase(
|
|
ResourceLocation sound,
|
|
float volume,
|
|
float pitch,
|
|
boolean repeat,
|
|
int repeatDelay,
|
|
double x,
|
|
double y,
|
|
double z
|
|
) {
|
|
this(sound, volume, pitch, repeat, repeatDelay, x, y, z, AttenuationType.LINEAR);
|
|
}
|
|
|
|
public SoundBase(
|
|
ResourceLocation sound,
|
|
float volume,
|
|
float pitch,
|
|
boolean repeat,
|
|
int repeatDelay,
|
|
double x,
|
|
double y,
|
|
double z,
|
|
AttenuationType attenuation
|
|
) {
|
|
this.attenuation = attenuation;
|
|
this.sound = sound;
|
|
this.volume = volume;
|
|
this.pitch = pitch;
|
|
this.x = (float) x;
|
|
this.y = (float) y;
|
|
this.z = (float) z;
|
|
this.repeat = repeat;
|
|
this.repeatDelay = repeatDelay;
|
|
}
|
|
|
|
public SoundBase(SoundBase other) {
|
|
this.attenuation = other.attenuation;
|
|
this.sound = other.sound;
|
|
this.volume = other.volume;
|
|
this.pitch = other.pitch;
|
|
this.x = other.x;
|
|
this.y = other.y;
|
|
this.z = other.z;
|
|
this.repeat = other.repeat;
|
|
this.repeatDelay = other.repeatDelay;
|
|
}
|
|
|
|
@Override
|
|
public AttenuationType getAttenuationType() {
|
|
return attenuation;
|
|
}
|
|
|
|
@Override
|
|
public ResourceLocation getPositionedSoundLocation() {
|
|
return sound;
|
|
}
|
|
|
|
@Override
|
|
public float getVolume() {
|
|
return volume;
|
|
}
|
|
|
|
@Override
|
|
public float getPitch() {
|
|
return pitch;
|
|
}
|
|
|
|
@Override
|
|
public float getXPosF() {
|
|
return x;
|
|
}
|
|
|
|
@Override
|
|
public float getYPosF() {
|
|
return y;
|
|
}
|
|
|
|
@Override
|
|
public float getZPosF() {
|
|
return z;
|
|
}
|
|
|
|
@Override
|
|
public boolean canRepeat() {
|
|
return repeat;
|
|
}
|
|
|
|
@Override
|
|
public int getRepeatDelay() {
|
|
return repeatDelay;
|
|
}
|
|
}
|