package br.com.etyllica.core.animation.script;
import br.com.etyllica.layer.AnimatedLayer;
public class NeedleAnimation extends AnimationScript {
protected AnimatedLayer target;
private int startNeedleX = 0;
private int startNeedleY = 0;
private int endNeedleX = 0;
private int endNeedleY = 0;
public NeedleAnimation(long time) {
super(time);
}
public void setTarget(AnimatedLayer target) {
this.target = target;
startNeedleX = target.getNeedleX();
startNeedleY = target.getNeedleY();
this.restart();
}
public void setNeedle(int needleX, int needleY) {
endNeedleX = needleX;
endNeedleY = needleY;
}
protected void update(double value) {
if(value == 0) {
target.setNeedleX(startNeedleX);
target.setNeedleY(startNeedleY);
} else {
target.setNeedleX(endNeedleX);
target.setNeedleY(endNeedleY);
}
}
@Override
public void calculate(double factor) {
if(factor<=0.5) {
update(0);
} else {
update(1);
}
}
}