package com.uwsoft.editor.renderer.systems.action.logic;
import com.badlogic.ashley.core.Entity;
import com.uwsoft.editor.renderer.components.TintComponent;
import com.uwsoft.editor.renderer.systems.action.data.ColorData;
import com.uwsoft.editor.renderer.utils.ComponentRetriever;
/**
* Created by ZeppLondon on 10/28/15.
*/
public class ColorAction<T extends ColorData> extends TemporalAction<T> {
@Override
protected void update(float percent, Entity entity, T actionData) {
TintComponent tintComponent = ComponentRetriever.get(entity, TintComponent.class);
float r = actionData.startR + (actionData.endColor.r - actionData.startR) * percent;
float g = actionData.startG + (actionData.endColor.g - actionData.startG) * percent;
float b = actionData.startB + (actionData.endColor.b - actionData.startB) * percent;
float a = actionData.startA + (actionData.endColor.a - actionData.startA) * percent;
tintComponent.color.set(r, g, b, a);
}
@Override
public void begin(Entity entity, T actionData) {
TintComponent tintComponent = ComponentRetriever.get(entity, TintComponent.class);
actionData.startR = tintComponent.color.r;
actionData.startG = tintComponent.color.g;
actionData.startB = tintComponent.color.b;
actionData.startA = tintComponent.color.a;
}
}