package com.gushikustudios.rube.loader;
import com.badlogic.gdx.assets.AssetDescriptor;
import com.badlogic.gdx.assets.AssetLoaderParameters;
import com.badlogic.gdx.assets.AssetManager;
import com.badlogic.gdx.assets.loaders.AsynchronousAssetLoader;
import com.badlogic.gdx.assets.loaders.FileHandleResolver;
import com.badlogic.gdx.files.FileHandle;
import com.badlogic.gdx.physics.box2d.World;
import com.badlogic.gdx.utils.Array;
import com.gushikustudios.rube.RubeScene;
public class RubeSceneAsyncLoader extends AsynchronousAssetLoader<RubeScene, RubeSceneAsyncLoader.RubeSceneParameters>
{
private final RubeSceneLoader mLoader;
private RubeScene mScene;
static public class RubeSceneParameters extends AssetLoaderParameters<RubeScene>
{
}
public RubeSceneAsyncLoader(FileHandleResolver resolver)
{
this(null,resolver);
}
/**
* Specifies a pre-defined Box2D world to add scene objects to.
*
* @param world
* @param resolver
*/
public RubeSceneAsyncLoader(World world, FileHandleResolver resolver)
{
super(resolver);
mLoader = new RubeSceneLoader(world);
}
@SuppressWarnings("rawtypes")
@Override
public Array<AssetDescriptor> getDependencies(String fileName, FileHandle file, RubeSceneParameters parameter)
{
return null;
}
@Override
public void loadAsync(AssetManager manager, String fileName, FileHandle file, RubeSceneParameters parameter)
{
mScene = null;
mScene = mLoader.addScene(file);
}
@Override
public RubeScene loadSync(AssetManager manager, String fileName, FileHandle file, RubeSceneParameters parameter)
{
return mScene;
}
}