package stray.transition;
import stray.Main;
import stray.Updateable;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.Screen;
public class TransitionScreen extends Updateable {
public TransitionScreen(Main m) {
super(m);
}
Transition from = null;
Transition to = null;
Screen previousScreen = null;
Screen nextScreen = null;
boolean onTo = false;
@Override
public void render(float delta) {
if (to == null) {
if (onTo) main.setScreen(nextScreen);
} else {
if ((to.finished() && onTo) || previousScreen == nextScreen) main.setScreen(nextScreen);
}
if (from == null) {
onTo = true;
} else {
if (from.finished()) {
onTo = true;
}
}
if (onTo) {
if (nextScreen != null) nextScreen.render(delta);
main.batch.begin();
if (to != null) to.render(main);
main.batch.end();
} else {
if (previousScreen != null && previousScreen != this) previousScreen.render(delta);
main.batch.begin();
from.render(main);
main.batch.end();
}
}
@Override
public void tickUpdate() {
if (onTo) {
if (to != null) to.tickUpdate(main);
} else {
if (from != null) from.tickUpdate(main);
}
}
public void prepare(Screen p, Transition f, Transition t, Screen n) {
from = f;
previousScreen = p;
to = t;
nextScreen = n;
onTo = false;
if (from == null) {
onTo = true;
}
}
@Override
public void renderDebug(int starting) {
}
@Override
public void resize(int width, int height) {
}
@Override
public void show() {
Gdx.input.setInputProcessor(main.getDefaultInput());
}
@Override
public void hide() {
}
@Override
public void pause() {
}
@Override
public void resume() {
}
@Override
public void dispose() {
}
@Override
public void renderUpdate() {
}
}