package com.github.czyzby.lml.parser.impl.tag.actor;
import com.badlogic.gdx.scenes.scene2d.Actor;
import com.github.czyzby.kiwi.util.common.Strings;
import com.github.czyzby.lml.parser.LmlParser;
import com.github.czyzby.lml.parser.tag.LmlActorBuilder;
import com.github.czyzby.lml.parser.tag.LmlTag;
import com.github.czyzby.lml.scene2d.ui.reflected.AnimatedImage;
/** Handles {@link AnimatedImage} actor. Cannot have children. Expects an array (following LML syntax standards) of
* names of drawables stored in the chosen skin as the style attribute. If style attribute is not set, image will
* contain no frames and work as an empty {@link com.badlogic.gdx.scenes.scene2d.ui.Image} Mapped to "animatedImage".
*
* @author MJ */
public class AnimatedImageLmlTag extends ImageLmlTag {
public AnimatedImageLmlTag(final LmlParser parser, final LmlTag parentTag, final StringBuilder rawTagData) {
super(parser, parentTag, rawTagData);
}
@Override
protected LmlActorBuilder getNewInstanceOfBuilder() {
final LmlActorBuilder builder = super.getNewInstanceOfBuilder();
builder.setStyleName(Strings.EMPTY_STRING);
return builder;
}
@Override
protected Actor getNewInstanceOfActor(final LmlActorBuilder builder) {
final String[] frames = getParser().parseArray(builder.getStyleName());
return new AnimatedImage(getSkin(builder), frames);
}
}