package com.github.czyzby.lml.parser.impl.attribute.scroll;
import com.badlogic.gdx.scenes.scene2d.ui.ScrollPane;
import com.github.czyzby.lml.parser.LmlParser;
import com.github.czyzby.lml.parser.tag.LmlAttribute;
import com.github.czyzby.lml.parser.tag.LmlTag;
/** See {@link ScrollPane#setupOverscroll(float, float, float)}. Expects a LML array of 3 floats: distance, min speed
* and max speed, in that order. For example, "setupOverscroll="24;42.4;92". Mapped to "setupOverscroll".
*
* @author MJ */
public class ScrollOverscrollSetupLmlAttribute implements LmlAttribute<ScrollPane> {
@Override
public Class<ScrollPane> getHandledType() {
return ScrollPane.class;
}
@Override
public void process(final LmlParser parser, final LmlTag tag, final ScrollPane actor,
final String rawAttributeData) {
final String[] setup = parser.parseArray(rawAttributeData, actor);
if (setup.length != 3) { // Distance, speedMin, speedMax.
parser.throwErrorIfStrict(
"Overscroll setup needs an array with exactly 3 elements (in that order): distance, min speed and max speed. See ScrollPane#setupOverscroll(float, float, float).");
return;
}
final float distance = parser.parseFloat(setup[0], actor);
final float speedMin = parser.parseFloat(setup[1], actor);
final float speedMax = parser.parseFloat(setup[2], actor);
actor.setupOverscroll(distance, speedMin, speedMax);
}
}