Java 类net.minecraftforge.client.event.sound.SoundEvent 实例源码

项目:EnergyFromMatter    文件:CustomSoundManager.java   
/**
 * Plays a sound. Args: soundName, x, y, z, volume, pitch, fadeOutTime
 */
public static String playSound(String par1Str, float par2, float par3,
        float par4, float par5, float par6)
{
    SoundPoolEntry soundpoolentry = sndManager.soundPoolSounds
            .getRandomSoundFromSoundPool(par1Str);
    soundpoolentry = SoundEvent.getResult(new PlaySoundEvent(sndManager,
            soundpoolentry, par1Str, par2, par3, par4, par5, par6));

    if (soundpoolentry != null && par5 > 0.0F)
    {
        latestSoundID = 256 + ((latestSoundID + 1) % 256);
        String s1 = "sound_" + latestSoundID;
        float f5 = 16.0F;

        if (par5 > 1.0F)
        {
            f5 *= par5;
        }

        sndManager.sndSystem.newSource(par5 > 1.0F, s1,
                soundpoolentry.getSoundUrl(),
                soundpoolentry.getSoundName(), false, par2, par3, par4, 2,
                f5);

        if (par5 > 1.0F)
        {
            par5 = 1.0F;
        }

        sndManager.sndSystem.setPitch(s1, par6);
        sndManager.sndSystem.setVolume(s1, par5
                * Minecraft.getMinecraft().gameSettings.soundVolume);
        MinecraftForge.EVENT_BUS.post(new PlaySoundSourceEvent(sndManager,
                s1, par2, par3, par4));
        sndManager.sndSystem.play(s1);
        return s1;
    }
    return null;
}