diff --git a/core/src/cz/nic/tablexia/screen/AbstractTablexiaScreen.java b/core/src/cz/nic/tablexia/screen/AbstractTablexiaScreen.java index 1db60fb101837f2f8dbb083dcbd1f91e25475b55..7660bbb0a52c2ace2a30f90f35f10145e6368f39 100644 --- a/core/src/cz/nic/tablexia/screen/AbstractTablexiaScreen.java +++ b/core/src/cz/nic/tablexia/screen/AbstractTablexiaScreen.java @@ -10,6 +10,7 @@ import com.badlogic.gdx.Gdx; import com.badlogic.gdx.InputProcessor; import com.badlogic.gdx.ScreenAdapter; import com.badlogic.gdx.assets.AssetManager; +import com.badlogic.gdx.audio.Sound; import com.badlogic.gdx.files.FileHandle; import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.graphics.g2d.SpriteBatch; @@ -72,6 +73,7 @@ public abstract class AbstractTablexiaScreen<T> extends ScreenAdapter { private Stage stage; private AssetManager textureManager; + private AssetManager soundManager; private TextManager textManager; private DataManager dataManager; private ScreenLoadingListener screenLoadingListener; @@ -82,6 +84,7 @@ public abstract class AbstractTablexiaScreen<T> extends ScreenAdapter { public AbstractTablexiaScreen() { stage = prepareStage(); textureManager = new AssetManager(); + soundManager = new AssetManager(); textManager = new TextManager(); dataManager = new DataManager(); @@ -139,6 +142,7 @@ public abstract class AbstractTablexiaScreen<T> extends ScreenAdapter { public final void show() { if (!loadingComplete) { startTextureLoader(); + startSoundLoader(); startTextLoader(); startDataLoader(); loadingStarted = true; @@ -158,6 +162,7 @@ public abstract class AbstractTablexiaScreen<T> extends ScreenAdapter { if (!loadingComplete) { if (loadingStarted) { if (!textureManager.update()) return; + if (!soundManager.update()) return; if (!textManager.update()) return; if (!dataManager.update()) return; loadingComplete = true; @@ -176,6 +181,7 @@ public abstract class AbstractTablexiaScreen<T> extends ScreenAdapter { public final void dispose() { stage.dispose(); textureManager.dispose(); + soundManager.dispose(); textManager.dispose(); dataManager.dispose(); performScreenDisposed(); @@ -211,6 +217,7 @@ public abstract class AbstractTablexiaScreen<T> extends ScreenAdapter { protected void screenResized(int width, int height) {}; protected void prepareScreenTextureAssetNames(List<String> texturesFileNames) {} + protected void prepareScreenSoundAssetNames(List<String> soundsFileNames) {} protected String prepareScreenTextResourcesAssetName() { return null; } @@ -229,6 +236,14 @@ public abstract class AbstractTablexiaScreen<T> extends ScreenAdapter { } } + private void startSoundLoader() { + List<String> soundsFileNames = new ArrayList<String>(); + prepareScreenSoundAssetNames(soundsFileNames); + for (String soundFileName : soundsFileNames) { + textureManager.load(soundFileName, Sound.class); + } + } + private void startTextLoader() { textManager.load(new Locale("cs", "CZ"), prepareScreenTextResourcesAssetName()); } @@ -242,6 +257,10 @@ public abstract class AbstractTablexiaScreen<T> extends ScreenAdapter { return textureManager.get(textureName, Texture.class); } + public Sound getSound(String soundName) { + return soundManager.get(soundName, Sound.class); + } + public String getText(String key) { return textManager.getResult().get(key); }