Created
November 2, 2017 18:14
-
-
Save ProZhar/e88b2c97ae6d2c47993ee3d9ede4764c to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import com.badlogic.gdx.Gdx; | |
| import com.badlogic.gdx.assets.AssetDescriptor; | |
| import com.badlogic.gdx.assets.AssetErrorListener; | |
| import com.badlogic.gdx.assets.AssetManager; | |
| import com.badlogic.gdx.assets.loaders.I18NBundleLoader.I18NBundleParameter; | |
| import com.badlogic.gdx.assets.loaders.resolvers.InternalFileHandleResolver; | |
| import com.badlogic.gdx.graphics.Texture; | |
| import com.badlogic.gdx.utils.Array; | |
| import com.badlogic.gdx.utils.Disposable; | |
| import com.badlogic.gdx.utils.GdxRuntimeException; | |
| import com.badlogic.gdx.utils.I18NBundle; | |
| import com.prozhar.quest.agent.assets.skin2.Skin2; | |
| import com.prozhar.quest.agent.assets.skin2.Skin2Loader; | |
| import java.util.Locale; | |
| public class Assets implements Disposable, AssetErrorListener { | |
| private static final String TAG = "Assets"; | |
| private AssetManager manager; // Don't make this static!!! | |
| //Skin | |
| public static final AssetDescriptor<Skin2> SKIN = new AssetDescriptor<>("skin.json", Skin2.class, null); | |
| //I18n | |
| // private static final I18NBundleParameter i18nParam = new I18NBundleParameter(new Locale("uk")); | |
| // public static final AssetDescriptor<I18NBundle> CHAT_0 = new AssetDescriptor<>("i18n/Chat-0", I18NBundle.class, i18nParam); | |
| public static final AssetDescriptor<I18NBundle> CHAT_0 = new AssetDescriptor<>("i18n/Chat-0", I18NBundle.class); | |
| //Sounds | |
| public Assets(int logLevel) { | |
| manager = new AssetManager(); | |
| manager.setErrorListener(this); | |
| manager.getLogger().setLevel(logLevel); | |
| Texture.setAssetManager(manager); | |
| setLoaders(); | |
| init(); | |
| } | |
| private void setLoaders() { | |
| manager.setLoader(Skin2.class, new Skin2Loader(new InternalFileHandleResolver())); | |
| } | |
| private void init() { | |
| manager.load(SKIN); | |
| manager.load(CHAT_0); | |
| manager.finishLoading(); | |
| } | |
| private synchronized void loadSync(AssetDescriptor descriptor) { | |
| manager.load(descriptor); | |
| manager.finishLoading(); | |
| } | |
| public synchronized void unload(AssetDescriptor descriptor) { | |
| manager.unload(descriptor.fileName); | |
| } | |
| public synchronized <T> T get (AssetDescriptor<T> descriptor) { | |
| return manager.get(descriptor); | |
| } | |
| @Override | |
| public void dispose() { | |
| Array<String> loaded = manager.getAssetNames(); | |
| Gdx.app.debug(TAG, "Disposing assets......"); | |
| Gdx.app.error(TAG, "NOT DISPOSED before dispose() " + loaded.toString()); | |
| manager.dispose(); | |
| // проверяет есть ли ассеты в памяти | |
| for (int i = 0; i < loaded.size; ++i) { | |
| String asset = loaded.get(i); | |
| if (manager.isLoaded(asset)) { | |
| Gdx.app.error(TAG, asset + " not properly disposed of!"); | |
| } else { | |
| Gdx.app.log(TAG, asset + " disposed of OK"); | |
| } | |
| } | |
| } | |
| @Override | |
| public void error(AssetDescriptor asset, Throwable throwable) { | |
| throw new GdxRuntimeException("---ОШИБКА ЗАГРУЗКИ--- asset " + asset + ". " +throwable.getMessage()); | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment