package com.arretadogames.pilot.render;
public class TransitionManager {
private static boolean transitioning;
private static float transitionDuration; //Measured in milliseconds.
private static long startTime;
private static float lastReachedPercentage = -1;
public static void startTransition(){
transitioning = true;
transitionDuration = 250f;
startTime = getCurrentTime();
}
public static boolean transitionWasHappening(){
return transitioning == true;
}
public static boolean transitionWasNotHappening(){
return transitioning == false;
}
public static boolean transitionIsOver(){
float elapsedTime = getCurrentTime() - startTime;
float reachedPercentage = elapsedTime / transitionDuration;
if ( reachedPercentage >= 1 ){
transitioning = false;
startTime = 0;
lastReachedPercentage = reachedPercentage;
return true;
}
else{
lastReachedPercentage = reachedPercentage;
return false;
}
}
public static float getTransitionPercentage(){
if ( lastReachedPercentage == -1 ){
transitionIsOver();
}
float percentage = lastReachedPercentage;
lastReachedPercentage = -1;
return percentage;
}
private static long getCurrentTime() {
return System.nanoTime()/1000000;
}
}