// Path: GoingUnderBase/src/com/igorcrevar/goingunder/statemachine/IMyRandom.java
// public interface IMyRandom {
// 	ObstacleTypeEnum getNext();
// 	void reset();
// 	void setGenerator(IGeneratorStateMachine generator);
// }


import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.g2d.Sprite;
import com.badlogic.gdx.math.Matrix4;
import com.igorcrevar.goingunder.statemachine.IMyRandom;
	public float RotationSpeed = 20.0f;
	public float RotationMaxAngle = 10.0f;
	public float ObstacleScaleY = 0.5f;;
	public int MaxOnScreenAtOnce = 4;
	public float MaxVelocityX = 8.0f;
	public float CameraYPosition = 0.0f;
	public float PlayerSizeX = 1.0f;
	public float PlayerSizeY = 1.0f;
	
	public float CameraDist;
	public float CameraHalfWidth;
	public float CameraHalfHeight;	
	
	public boolean DieOnCollision = true;
	public boolean DrawCollision = false;
	public boolean DrawFPS = false;
	
	public float BubbleSpeedY;
	public float BubbleSpeedYPotential;
	public float BubbleSize = 0.15f;
	
	private int level = 0; // goes from 0...n - 1
	private AGameLevel[] levels;
	private AGameLevel currentGameLevel;
	
	public void init(IMyRandom myRandom) {
		CameraYPosition = 0.0f;
		setCurrentGameLevel(0, myRandom);
	}
	
// Path: GoingUnderBase/src/com/igorcrevar/goingunder/statemachine/IMyRandom.java
// public interface IMyRandom {
// 	ObstacleTypeEnum getNext();
// 	void reset();
// 	void setGenerator(IGeneratorStateMachine generator);
// }


// Path: GoingUnderBase/src/com/igorcrevar/goingunder/GameData.java
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.g2d.Sprite;
import com.badlogic.gdx.math.Matrix4;
import com.igorcrevar.goingunder.statemachine.IMyRandom;

	public float RotationSpeed = 20.0f;
	public float RotationMaxAngle = 10.0f;
	public float ObstacleScaleY = 0.5f;;
	public int MaxOnScreenAtOnce = 4;
	public float MaxVelocityX = 8.0f;
	public float CameraYPosition = 0.0f;
	public float PlayerSizeX = 1.0f;
	public float PlayerSizeY = 1.0f;
	
	public float CameraDist;
	public float CameraHalfWidth;
	public float CameraHalfHeight;	
	
	public boolean DieOnCollision = true;
	public boolean DrawCollision = false;
	public boolean DrawFPS = false;
	
	public float BubbleSpeedY;
	public float BubbleSpeedYPotential;
	public float BubbleSize = 0.15f;
	
	private int level = 0; // goes from 0...n - 1
	private AGameLevel[] levels;
	private AGameLevel currentGameLevel;
	
	public void init(IMyRandom myRandom) {
		CameraYPosition = 0.0f;
		setCurrentGameLevel(0, myRandom);
	}
	
	public void update(int score, IMyRandom myRandom) {