// Path: wisper-libgdx/core/src/java/fr/wisper/Game/WisperGame.java
// public class WisperGame extends Game {
//     // Fps
//     private FPSLogger fps;
// 
//     // Preferences
//     public static Preferences preferences;
// 
//     // Loader
//     private LoadingScreen loader;
// 
//     // Camera
//     static public OrthographicCameraWithVirtualViewport Camera;
//     static public MultipleVirtualViewportBuilder MultipleVirtualViewportBuilder;
//     static public VirtualViewport VirtualViewport;
// 
//     @Override
// 	public void create () {
//         // Preferences
//         preferences = Gdx.app.getPreferences(Config.GAME_NAME);
// 
//         // Fps
//         fps = new FPSLogger();
// 
//         // Camera
//         MultipleVirtualViewportBuilder = new MultipleVirtualViewportBuilder(
//                 Config.APP_WIDTH, Config.APP_HEIGHT,
//                 Config.APP_WIDTH, Config.APP_HEIGHT);
//         VirtualViewport = MultipleVirtualViewportBuilder.getVirtualViewport(Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
//         Camera = new OrthographicCameraWithVirtualViewport(VirtualViewport);
// 
//         // Loader
//         loader = new LoadingScreen(this);
//         loader.setNextScreen(new MainMenu());
// 
//         Debug.PrintDebugInformation();
// 	}
// 
//     public LoadingScreen getLoader() {
//         return loader;
//     }
// 
// 	@Override
// 	public void render () {
//         super.render();
// 
//         fps.log();
// 	}
// 
//     @Override
//     public void pause() {
//         super.pause();
//     }
// 
//     @Override
//     public void dispose() {
//         super.dispose();
// 
//         loader.dispose();
//     }
// 
//     @Override
//     public void resume() {
//         super.resume();
//     }
// 
//     @Override
//     public void resize(int width, int height) {
//         VirtualViewport = MultipleVirtualViewportBuilder.getVirtualViewport(Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
// 
//         Camera.setVirtualViewport(VirtualViewport);
//         Camera.updateViewport();
//         Camera.position.set(Config.APP_WIDTH / 2, Config.APP_HEIGHT / 2, 0f);
// 
//         super.resize(width, height);
//     }
// }
// 
// Path: wisper-libgdx/core/src/java/fr/wisper/utils/Config.java
// public class Config {
//     public static final String GAME_NAME = "Wisper";
//     public static final String GAME_VERSION = "v0.1";
//     public static final int APP_WIDTH = 1280;
//     public static final int APP_HEIGHT = 768;
//     public static final String DEFAULT_SAVE_FOLDER = Config.GAME_NAME + "/saves";
//     public static final float ANIMATION_DURATION = 1.5f;
//     public static final float WISPER_SPEED = 150;
//     public static final float DOUBLE_TAP_INTERVAL = 500f;
//     public static final float WISPER_DASH_DISTANCE = 300f;
//     public static final float WISPER_DASH_DURATION = 0.25f;
//     public static final float WISPER_DASH_TIMEOUT = 2f;
//     public static final long WISPER_TIME_BETWEEN_ANIMATIONS = 8000;
//     public static final long WISPER_TIME_FIRST_ANIMATIONS = 3000;
//     public static final float GAME_RATIO = 0.1f;
//     public static final float BOX2D_WISPER_MOVE_FORCE = 500f;
//     public static final float BOX2D_WISPER_MOVE_DAMPING = 15f;
//     public static final float BOX2D_WISPER_DASH_FORCE = 50000f;
//     public static final float BOX2D_WISPER_DASH_DAMPING = 3.5f;
//     public static final float BOX2D_WISPER_DASH_TIME = 0.35f;
// 
//     public static boolean isAndroid() {
//         return (Gdx.app.getType() == Application.ApplicationType.Android);
//     }
// 
//     public static Vector2 getProjectedCoordinates(int screenX, int screenY, Viewport viewport) {
//         Vector2 touchPos = new Vector2(screenX, screenY);
//         //touchPos = getCamera().unproject(touchPos);
//         float xRatio = (float) Config.APP_WIDTH / (float) viewport.getViewportWidth();
//         float yRatio = (float) Config.APP_HEIGHT / (float) viewport.getViewportHeight();
// 
//         touchPos.x -= (Gdx.graphics.getWidth() - viewport.getViewportWidth()) / 2;
//         touchPos.x *= xRatio;
// 
//         touchPos.y = Gdx.graphics.getHeight() - touchPos.y;
//         touchPos.y -= (Gdx.graphics.getHeight() - viewport.getViewportHeight()) / 2;
//         touchPos.y *= yRatio;
// 
//         return touchPos;
//     }
// }


import com.badlogic.gdx.Files;
import com.badlogic.gdx.backends.lwjgl.LwjglApplication;
import com.badlogic.gdx.backends.lwjgl.LwjglApplicationConfiguration;
import fr.wisper.Game.WisperGame;
import fr.wisper.utils.Config;
package fr.wisper.desktop;


public class DesktopLauncher {
	public static void main (String[] arg) {
        LwjglApplicationConfiguration config = new LwjglApplicationConfiguration();

        config.useGL30 = false;
        config.vSyncEnabled = true;
// Path: wisper-libgdx/core/src/java/fr/wisper/Game/WisperGame.java
// public class WisperGame extends Game {
//     // Fps
//     private FPSLogger fps;
// 
//     // Preferences
//     public static Preferences preferences;
// 
//     // Loader
//     private LoadingScreen loader;
// 
//     // Camera
//     static public OrthographicCameraWithVirtualViewport Camera;
//     static public MultipleVirtualViewportBuilder MultipleVirtualViewportBuilder;
//     static public VirtualViewport VirtualViewport;
// 
//     @Override
// 	public void create () {
//         // Preferences
//         preferences = Gdx.app.getPreferences(Config.GAME_NAME);
// 
//         // Fps
//         fps = new FPSLogger();
// 
//         // Camera
//         MultipleVirtualViewportBuilder = new MultipleVirtualViewportBuilder(
//                 Config.APP_WIDTH, Config.APP_HEIGHT,
//                 Config.APP_WIDTH, Config.APP_HEIGHT);
//         VirtualViewport = MultipleVirtualViewportBuilder.getVirtualViewport(Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
//         Camera = new OrthographicCameraWithVirtualViewport(VirtualViewport);
// 
//         // Loader
//         loader = new LoadingScreen(this);
//         loader.setNextScreen(new MainMenu());
// 
//         Debug.PrintDebugInformation();
// 	}
// 
//     public LoadingScreen getLoader() {
//         return loader;
//     }
// 
// 	@Override
// 	public void render () {
//         super.render();
// 
//         fps.log();
// 	}
// 
//     @Override
//     public void pause() {
//         super.pause();
//     }
// 
//     @Override
//     public void dispose() {
//         super.dispose();
// 
//         loader.dispose();
//     }
// 
//     @Override
//     public void resume() {
//         super.resume();
//     }
// 
//     @Override
//     public void resize(int width, int height) {
//         VirtualViewport = MultipleVirtualViewportBuilder.getVirtualViewport(Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
// 
//         Camera.setVirtualViewport(VirtualViewport);
//         Camera.updateViewport();
//         Camera.position.set(Config.APP_WIDTH / 2, Config.APP_HEIGHT / 2, 0f);
// 
//         super.resize(width, height);
//     }
// }
// 
// Path: wisper-libgdx/core/src/java/fr/wisper/utils/Config.java
// public class Config {
//     public static final String GAME_NAME = "Wisper";
//     public static final String GAME_VERSION = "v0.1";
//     public static final int APP_WIDTH = 1280;
//     public static final int APP_HEIGHT = 768;
//     public static final String DEFAULT_SAVE_FOLDER = Config.GAME_NAME + "/saves";
//     public static final float ANIMATION_DURATION = 1.5f;
//     public static final float WISPER_SPEED = 150;
//     public static final float DOUBLE_TAP_INTERVAL = 500f;
//     public static final float WISPER_DASH_DISTANCE = 300f;
//     public static final float WISPER_DASH_DURATION = 0.25f;
//     public static final float WISPER_DASH_TIMEOUT = 2f;
//     public static final long WISPER_TIME_BETWEEN_ANIMATIONS = 8000;
//     public static final long WISPER_TIME_FIRST_ANIMATIONS = 3000;
//     public static final float GAME_RATIO = 0.1f;
//     public static final float BOX2D_WISPER_MOVE_FORCE = 500f;
//     public static final float BOX2D_WISPER_MOVE_DAMPING = 15f;
//     public static final float BOX2D_WISPER_DASH_FORCE = 50000f;
//     public static final float BOX2D_WISPER_DASH_DAMPING = 3.5f;
//     public static final float BOX2D_WISPER_DASH_TIME = 0.35f;
// 
//     public static boolean isAndroid() {
//         return (Gdx.app.getType() == Application.ApplicationType.Android);
//     }
// 
//     public static Vector2 getProjectedCoordinates(int screenX, int screenY, Viewport viewport) {
//         Vector2 touchPos = new Vector2(screenX, screenY);
//         //touchPos = getCamera().unproject(touchPos);
//         float xRatio = (float) Config.APP_WIDTH / (float) viewport.getViewportWidth();
//         float yRatio = (float) Config.APP_HEIGHT / (float) viewport.getViewportHeight();
// 
//         touchPos.x -= (Gdx.graphics.getWidth() - viewport.getViewportWidth()) / 2;
//         touchPos.x *= xRatio;
// 
//         touchPos.y = Gdx.graphics.getHeight() - touchPos.y;
//         touchPos.y -= (Gdx.graphics.getHeight() - viewport.getViewportHeight()) / 2;
//         touchPos.y *= yRatio;
// 
//         return touchPos;
//     }
// }


// Path: wisper-libgdx/desktop/src/fr/wisper/desktop/DesktopLauncher.java
import com.badlogic.gdx.Files;
import com.badlogic.gdx.backends.lwjgl.LwjglApplication;
import com.badlogic.gdx.backends.lwjgl.LwjglApplicationConfiguration;
import fr.wisper.Game.WisperGame;
import fr.wisper.utils.Config;

package fr.wisper.desktop;


public class DesktopLauncher {
	public static void main (String[] arg) {
        LwjglApplicationConfiguration config = new LwjglApplicationConfiguration();

        config.useGL30 = false;
        config.vSyncEnabled = true;
        config.title = Config.GAME_NAME + " " + Config.GAME_VERSION;