package com.siondream.core;
import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.math.Vector2;
import com.badlogic.gdx.math.Vector3;
import com.badlogic.gdx.utils.Logger;
public class Env {
// Game façade
public static SionGame game;
public static PlatformResolver platform;
// Application config
public static float virtualWidth;
public static float virtualHeight;
public static float aspectRatio;
public static float metresToPixels;
public static float pixelsToMetres;
public static boolean catchBack;
public static boolean catchMenu;
public static Color backgroundColor;
// Physics
public static Vector2 gravity;
public static boolean doSleep;
public static int velocityIterations;
public static int positionIterations;
public static float physicsDeltaTime;
// Particles
public static int particlePoolInitialCapacity;
public static int particlePoolMaxCapacity;
// Debug
public static int debugLevel;
public static boolean debug;
public static boolean drawBodies;
public static boolean drawJoints;
public static boolean drawABBs;
public static boolean drawInactiveBodies;
public static boolean drawVelocities;
public static boolean drawContacts;
public static boolean drawStage;
public static boolean drawGrid;
public static boolean drawFPS;
private static String TAG = "Globals";
private static Settings settings;
private static Logger logger = new Logger(TAG, Logger.INFO);
public static void init(SionGame game) {
logger.info("initialising");
Env.game = game;
settings = new Settings("data/config/globals.xml");
virtualWidth = settings.getFloat("virtualWidth", 1280.0f);
virtualHeight = settings.getFloat("virtualHeight", 720.0f);
aspectRatio = virtualWidth / virtualHeight;
metresToPixels = settings.getFloat("metresToPixels", 64);
pixelsToMetres = 1.0f / metresToPixels;
catchBack = settings.getBoolean("catchBack", true);
catchMenu = settings.getBoolean("catchMenu", true);
catchMenu = settings.getBoolean("catchMenu", true);
Vector3 background = settings.getVector("backgroundColor", Vector3.Zero);
backgroundColor = new Color(background.x, background.y, background.z, 1.0f);
Vector3 gravity3 = settings.getVector("gravity", Vector3.Zero);
gravity = new Vector2(gravity3.x, gravity3.y);
doSleep = settings.getBoolean("doSleep", false);
velocityIterations = settings.getInt("velocityIterations", 6);
positionIterations = settings.getInt("positionIterations", 10);
physicsDeltaTime = settings.getFloat("physicsDeltaTime", 0.01f);
particlePoolInitialCapacity = settings.getInt("particlePoolInitialCapacity", 5);
particlePoolMaxCapacity = settings.getInt("particlePoolMaxCapacity", 20);
debugLevel = settings.getInt("debugLevel", Logger.INFO);
debug = debugLevel > Logger.ERROR;
drawBodies = settings.getBoolean("drawBodies", false);
drawJoints = settings.getBoolean("drawJoints", false);
drawABBs = settings.getBoolean("drawABBs", false);
drawInactiveBodies = settings.getBoolean("drawInactiveBodies", false);
drawVelocities = settings.getBoolean("drawVelocities", false);
drawContacts = settings.getBoolean("drawContacts", false);
drawStage = settings.getBoolean("drawStage", false);
drawGrid = settings.getBoolean("drawGrid", true);
drawFPS = settings.getBoolean("drawFPS", true);
}
}