1 package com.badlogic.gdx.assets.loaders;
3 import com.badlogic.gdx.assets.AssetDescriptor;
4 import com.badlogic.gdx.assets.AssetLoaderParameters;
5 import com.badlogic.gdx.assets.AssetManager;
6 import com.badlogic.gdx.files.FileHandle;
7 import com.badlogic.gdx.graphics.g2d.ParticleEffect;
8 import com.badlogic.gdx.graphics.g2d.TextureAtlas;
9 import com.badlogic.gdx.utils.Array;
11 /** {@link AssetLoader} to load {@link ParticleEffect} instances. Passing a {@link ParticleEffectParameter} to
12 * {@link AssetManager#load(String, Class, AssetLoaderParameters)} allows to specify an atlas file or an image directory to be
13 * used for the effect's images. Per default images are loaded from the directory in which the effect file is found. */
14 public class ParticleEffectLoader extends SynchronousAssetLoader<ParticleEffect, ParticleEffectLoader.ParticleEffectParameter> {
15 public ParticleEffectLoader (FileHandleResolver resolver) {
20 public ParticleEffect load (AssetManager am, String fileName, FileHandle file, ParticleEffectParameter param) {
21 ParticleEffect effect = new ParticleEffect();
22 if (param != null && param.atlasFile != null)
23 effect.load(file, am.get(param.atlasFile, TextureAtlas.class));
24 else if (param != null && param.imagesDir != null)
25 effect.load(file, param.imagesDir);
27 effect.load(file, file.parent());
32 public Array<AssetDescriptor> getDependencies (String fileName, FileHandle file, ParticleEffectParameter param) {
33 Array<AssetDescriptor> deps = null;
34 if (param != null && param.atlasFile != null) {
35 deps = new Array<AssetDescriptor>();
36 deps.add(new AssetDescriptor<TextureAtlas>(param.atlasFile, TextureAtlas.class));
41 /** Parameter to be passed to {@link AssetManager#load(String, Class, AssetLoaderParameters)} if additional configuration is
42 * necessary for the {@link ParticleEffect}. */
43 public static class ParticleEffectParameter extends AssetLoaderParameters<ParticleEffect> {
44 /** Atlas file name. */
45 public String atlasFile;
46 /** Image directory. */
47 public FileHandle imagesDir;