1package aurelienribon.tweenengine.applets;
2
3import aurelienribon.tweenengine.TweenAccessor;
4
5/**
6 * @author Aurelien Ribon | http://www.aurelienribon.com
7 */
8public class SpriteAccessor implements TweenAccessor<Sprite> {
9	public static final int POSITION_XY = 1;
10	public static final int SCALE_XY = 2;
11	public static final int VISIBILITY = 3;
12
13	@Override
14	public int getValues(Sprite target, int tweenType, float[] returnValues) {
15		switch (tweenType) {
16			case POSITION_XY:
17				returnValues[0] = target.getX();
18				returnValues[1] = target.getY();
19				return 2;
20
21			case SCALE_XY:
22				returnValues[0] = target.getScaleX();
23				returnValues[1] = target.getScaleY();
24				return 2;
25
26			case VISIBILITY:
27				returnValues[0] = target.isVisible() ? 1 : 0;
28				return 1;
29
30			default: assert false; return -1;
31		}
32	}
33
34	@Override
35	public void setValues(Sprite target, int tweenType, float[] newValues) {
36		switch (tweenType) {
37			case POSITION_XY: target.setPosition(newValues[0], newValues[1]); break;
38			case SCALE_XY: target.setScale(newValues[0], newValues[1]); break;
39			case VISIBILITY: target.setVisible(newValues[0] > 0); break;
40			default: assert false;
41		}
42	}
43}
44