package org.andengine.util.modifier;
/**
* (c) Zynga 2011
*
* @author Nicolas Gramlich <ngramlich@zynga.com>
* @since 14:17:30 - 10.08.2011
*/
public abstract class BaseDoubleValueChangeModifier<T> extends BaseSingleValueChangeModifier<T> {
// ===========================================================
// Constants
// ===========================================================
// ===========================================================
// Fields
// ===========================================================
private float mValueChangeBPerSecond;
// ===========================================================
// Constructors
// ===========================================================
public BaseDoubleValueChangeModifier(final float pDuration, final float pValueChangeA, final float pValueChangeB) {
this(pDuration, pValueChangeA, pValueChangeB, null);
}
public BaseDoubleValueChangeModifier(final float pDuration, final float pValueChangeA, final float pValueChangeB, final IModifierListener<T> pModifierListener) {
super(pDuration, pValueChangeA, pModifierListener);
this.mValueChangeBPerSecond = pValueChangeB / pDuration;
}
protected BaseDoubleValueChangeModifier(final BaseDoubleValueChangeModifier<T> pBaseDoubleValueChangeModifier) {
super(pBaseDoubleValueChangeModifier);
this.mValueChangeBPerSecond = pBaseDoubleValueChangeModifier.mValueChangeBPerSecond;
}
// ===========================================================
// Getter & Setter
// ===========================================================
// ===========================================================
// Methods for/from SuperClass/Interfaces
// ===========================================================
@Override
protected void onChangeValue(final float pSecondsElapsed, final T pItem, final float pValueA) {
this.onChangeValues(pSecondsElapsed, pItem, pValueA, pSecondsElapsed * this.mValueChangeBPerSecond);
}
protected abstract void onChangeValues(float pSecondsElapsed, T pItem, float pValueA, float pValueB);
// ===========================================================
// Methods
// ===========================================================
// ===========================================================
// Inner and Anonymous Classes
// ===========================================================
}