Files
CustomNPC-Plus/src/main/java/noppes/npcs/client/controllers/MusicController.java
T

68 lines
1.9 KiB
Java
Raw Normal View History

2018-09-13 12:03:28 -04:00
package noppes.npcs.client.controllers;
import net.minecraft.client.Minecraft;
import net.minecraft.client.audio.PositionedSoundRecord;
import net.minecraft.client.audio.SoundHandler;
import net.minecraft.entity.Entity;
import net.minecraft.util.ResourceLocation;
public class MusicController {
2024-02-20 20:30:18 -05:00
2018-09-13 12:03:28 -04:00
public static MusicController Instance;
public PositionedSoundRecord playing;
public ResourceLocation playingResource;
public Entity playingEntity;
public MusicController(){
Instance = this;
}
public void stopMusic(){
SoundHandler handler = Minecraft.getMinecraft().getSoundHandler();
if(playing != null)
handler.stopSound(playing);
handler.stopSounds();
playingResource = null;
playingEntity = null;
playing = null;
}
2024-02-20 20:30:18 -05:00
2018-09-13 12:03:28 -04:00
public void playStreaming(String music, Entity entity){
2024-02-20 20:30:18 -05:00
if(isPlaying(music)){
2018-09-13 12:03:28 -04:00
return;
}
stopMusic();
playingEntity = entity;
playingResource = new ResourceLocation(music);
SoundHandler handler = Minecraft.getMinecraft().getSoundHandler();
playing = PositionedSoundRecord.func_147675_a(playingResource, (float)entity.posX, (float)entity.posY, (float)entity.posZ);
handler.playSound(playing);
}
public void playMusic(String music, Entity entity) {
if(isPlaying(music))
return;
stopMusic();
playingResource = new ResourceLocation(music);
playingEntity = entity;
SoundHandler handler = Minecraft.getMinecraft().getSoundHandler();
playing = PositionedSoundRecord.func_147673_a(playingResource);
handler.playSound(playing);
}
2024-02-20 20:30:18 -05:00
2018-09-13 12:03:28 -04:00
public boolean isPlaying(String music) {
ResourceLocation resource = new ResourceLocation(music);
if(playingResource == null || !playingResource.equals(resource)){
return false;
}
return Minecraft.getMinecraft().getSoundHandler().isSoundPlaying(playing);
}
2024-02-20 20:30:18 -05:00
2018-09-13 12:03:28 -04:00
public void playSound(String music, float x, float y, float z) {
Minecraft.getMinecraft().theWorld.playSound(x, y, z, music, 1, 1, false);
}
}