package com.github.czyzby.lml.uedi.ui; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.assets.AssetManager; import com.badlogic.gdx.graphics.g2d.TextureAtlas; import com.badlogic.gdx.scenes.scene2d.ui.Skin; import com.github.czyzby.lml.uedi.assets.TextureAtlasProvider; import com.github.czyzby.lml.uedi.assets.impl.AbstractEagerAssetProvider; import com.github.czyzby.lml.uedi.assets.impl.EagerTextureAtlasLoader; import com.github.czyzby.lml.uedi.assets.impl.InjectingAssetManager; import com.github.czyzby.lml.uedi.ui.impl.EagerSkinLoader; /** Provides {@link Skin} instances. * * @author MJ */ public class SkinProvider extends AbstractEagerAssetProvider<Skin> { public static final String[] EXTENSIONS = new String[] { "json" }; /** @param assetManager will be used to load the assets. */ public SkinProvider(final InjectingAssetManager assetManager) { super(assetManager); } @Override public Class<? extends Skin> getType() { return Skin.class; } @Override protected String getFolder() { return "skin"; } @Override protected String[] getExtensions() { return EXTENSIONS; } @Override protected Skin load(final String id, final String path, final AssetManager assetManager) { final String atlasPath = TextureAtlasProvider.getTextureAtlasPath(id); final TextureAtlas atlas = new TextureAtlas(atlasPath); assetManager.load(atlasPath, TextureAtlas.class, new EagerTextureAtlasLoader.EagerTextureAtlasParameter(atlas)); final Skin skin = new Skin(Gdx.files.internal(path), atlas); assetManager.load(path, Skin.class, new EagerSkinLoader.EagerSkinParameter(skin)); return skin; } }