/*
* Copyright (c) 2012. HappyDroids LLC, All rights reserved.
*/
package com.happydroids.droidtowers.tween;
import aurelienribon.tweenengine.TweenAccessor;
import com.badlogic.gdx.graphics.Color;
import com.happydroids.droidtowers.entities.GameObject;
public class GameObjectAccessor implements TweenAccessor<GameObject> {
public static final int POSITION = 1;
public static final int POSITION_X = 2;
public static final int POSITION_Y = 3;
public static final int OPACITY = 4;
public static final int TEXTURE_UV = 5;
public static final int TEXTURE_VV2 = 6;
public static final int COLOR = 7;
public int getValues(GameObject target, int tweenType, float[] returnValues) {
switch (tweenType) {
case COLOR:
Color color = target.getColor();
returnValues[0] = color.r;
returnValues[1] = color.g;
returnValues[2] = color.b;
returnValues[3] = color.a;
return 4;
case OPACITY:
returnValues[0] = target.getOpacity();
return 1;
case POSITION:
returnValues[0] = target.getX();
returnValues[1] = target.getY();
return 2;
case POSITION_X:
returnValues[0] = target.getX();
return 1;
case POSITION_Y:
returnValues[0] = target.getY();
return 1;
case TEXTURE_UV:
returnValues[0] = target.getU();
returnValues[1] = target.getV();
return 2;
case TEXTURE_VV2:
returnValues[0] = target.getV();
returnValues[1] = target.getV2();
return 2;
default:
assert false;
return 0;
}
}
public void setValues(GameObject target, int tweenType, float[] newValues) {
switch (tweenType) {
case COLOR:
target.setColor(newValues[0], newValues[1], newValues[2], newValues[3]);
break;
case OPACITY:
target.setOpacity(newValues[0]);
break;
case POSITION:
target.setPosition(newValues[0], newValues[1]);
break;
case POSITION_X:
target.setX(newValues[0]);
break;
case POSITION_Y:
target.setY(newValues[0]);
break;
case TEXTURE_UV:
target.setU(newValues[0]);
target.setV(newValues[1]);
break;
case TEXTURE_VV2:
target.setV(newValues[0]);
target.setV2(newValues[1]);
break;
default:
assert false;
break;
}
}
}