package net.onedaybeard.dominatrix.demo.manager;
import net.onedaybeard.dominatrix.demo.Assets;
import net.onedaybeard.dominatrix.demo.component.AssetReference;
import net.onedaybeard.dominatrix.demo.component.Renderable;
import net.onedaybeard.dominatrix.demo.component.Size;
import com.artemis.ComponentMapper;
import com.artemis.Entity;
import com.artemis.Manager;
import com.badlogic.gdx.graphics.g2d.Sprite;
public final class RenderableResolverManager extends Manager
{
private ComponentMapper<AssetReference> assetReferenceMapper;
@Override
protected void initialize()
{
assetReferenceMapper = world.getMapper(AssetReference.class);
}
@Override
public void added(Entity e)
{
AssetReference reference = assetReferenceMapper.getSafe(e);
if (reference == null)
return;
Sprite sprite = Assets.allocateSprite(reference.getPath());
// if (reference.getFrame() != null)
// sprite = Assets.allocateSprites(reference.getAtlas(), reference.getFrame()).first();
// else
// sprite = Assets.allocateSprite(reference.getAtlas());
// SpriteFlip flip = reference.getFlip();
// if (flip == null)
// flip = SpriteFlip.NO_FLIPPING;
// sprite.flip(flip.flipX(), flip.flipY());
// if (reference.isAnimated())
// {
// Array<Sprite> sprites = Assets.allocateSprites(reference.getAtlas(), reference.getFrame());
// Animation animation = new Animation(sprites, reference.getDuration());
//
// for (int i = 0, s = sprites.size; s > i; i++)
// sprites.get(i).flip(flip.flipX(), flip.flipY());
//
// e.addComponent(animation);
// }
e.addComponent(new Renderable(sprite));
e.addComponent(new Size(sprite.getWidth(), sprite.getHeight()));
e.changedInWorld();
}
}