diff --git a/src/main/java/mekanism/client/ClientTickHandler.java b/src/main/java/mekanism/client/ClientTickHandler.java index 7bf69343c..44289f614 100644 --- a/src/main/java/mekanism/client/ClientTickHandler.java +++ b/src/main/java/mekanism/client/ClientTickHandler.java @@ -391,7 +391,7 @@ public class ClientTickHandler if(player != null) { - if(MekanismClient.audioHandler.getMap(player) == null) + if(MekanismClient.audioHandler.getSound(player, SoundHandler.CHANNEL_JETPACK) == null) { new JetpackSound(MekanismClient.audioHandler.getIdentifier(player), player); } @@ -404,7 +404,7 @@ public class ClientTickHandler if(player != null) { - if(MekanismClient.audioHandler.getMap(player) == null) + if(MekanismClient.audioHandler.getSound(player, SoundHandler.CHANNEL_GASMASK) == null) { new GasMaskSound(MekanismClient.audioHandler.getIdentifier(player), player); } @@ -415,7 +415,7 @@ public class ClientTickHandler { if(hasFlamethrower(player)) { - if(MekanismClient.audioHandler.getMap(player) == null) + if(MekanismClient.audioHandler.getSound(player, SoundHandler.CHANNEL_FLAMETHROWER) == null) { new FlamethrowerSound(MekanismClient.audioHandler.getIdentifier(player), player); } diff --git a/src/main/java/mekanism/client/sound/SoundHandler.java b/src/main/java/mekanism/client/sound/SoundHandler.java index 76a0a760e..066273333 100644 --- a/src/main/java/mekanism/client/sound/SoundHandler.java +++ b/src/main/java/mekanism/client/sound/SoundHandler.java @@ -47,6 +47,11 @@ public class SoundHandler public Map soundMaps = Collections.synchronizedMap(new HashMap()); public static Minecraft mc = Minecraft.getMinecraft(); + + public static final String CHANNEL_TILE_DEFAULT = "tile"; + public static final String CHANNEL_JETPACK = "jetpack"; + public static final String CHANNEL_GASMASK = "gasMask"; + public static final String CHANNEL_FLAMETHROWER = "flamethrower"; /** * SoundHandler -- a class that handles all Sounds used by Mekanism. @@ -254,14 +259,14 @@ public class SoundHandler } } - public Sound getSound(Object obj, String path) + public Sound getSound(Object obj, String channel) { if(soundMaps.get(obj) == null) { return null; } - return soundMaps.get(obj).getSound(path); + return soundMaps.get(obj).getSound(channel); } /** @@ -295,11 +300,23 @@ public class SoundHandler { synchronized(soundMaps) { - String toReturn = "Mekanism_" + soundMaps.size() + "_" + new Random().nextInt(10000); + String toReturn = "Mekanism_" + getActiveSize() + "_" + new Random().nextInt(10000); return toReturn; } } + + public int getActiveSize() + { + int count = 0; + + for(SoundMap map : soundMaps.values()) + { + count += map.size(); + } + + return count; + } /** * Plays a sound in a specific location. diff --git a/src/main/java/mekanism/client/sound/SoundMap.java b/src/main/java/mekanism/client/sound/SoundMap.java index befe8dfea..ec79114e6 100644 --- a/src/main/java/mekanism/client/sound/SoundMap.java +++ b/src/main/java/mekanism/client/sound/SoundMap.java @@ -17,11 +17,11 @@ public class SoundMap implements Iterable objRef = obj; } - public SoundMap(Object obj, String path, Sound sound) + public SoundMap(Object obj, String channel, Sound sound) { this(obj); - soundMap.put(path, sound); + soundMap.put(channel, sound); } @Override @@ -30,24 +30,24 @@ public class SoundMap implements Iterable return soundMap.values().iterator(); } - public Sound getSound(String path) + public Sound getSound(String channel) { - return soundMap.get(path); + return soundMap.get(channel); } - public boolean hasSound(String path) + public boolean hasSound(String channel) { - return soundMap.containsKey(path); + return soundMap.containsKey(channel); } - public void remove(String path) + public void remove(String channel) { - soundMap.remove(path); + soundMap.remove(channel); } - public void add(String path, Sound sound) + public void add(String channel, Sound sound) { - soundMap.put(path, sound); + soundMap.put(channel, sound); } public void stopLoops() @@ -70,4 +70,9 @@ public class SoundMap implements Iterable MekanismClient.audioHandler.soundMaps.remove(objRef); } + + public int size() + { + return soundMap.size(); + } }