package com.tacoid.pweek.screens;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.Screen;
import com.badlogic.gdx.graphics.GL10;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.TextureRegion;
import com.badlogic.gdx.scenes.scene2d.InputEvent;
import com.badlogic.gdx.scenes.scene2d.Stage;
import com.badlogic.gdx.scenes.scene2d.ui.Button;
import com.badlogic.gdx.scenes.scene2d.utils.ClickListener;
import com.badlogic.gdx.scenes.scene2d.utils.TextureRegionDrawable;
import com.tacoid.pweek.I18nManager;
import com.tacoid.pweek.PreferenceManager;
import com.tacoid.pweek.Pweek;
import com.tacoid.pweek.I18nManager.Language;
import com.tacoid.pweek.PreferenceManager.Preference;
import com.tacoid.pweek.Pweek.ScreenOrientation;
import com.tacoid.pweek.actors.BackgroundActor;
public class LanguageScreen implements Screen {
private static final int VIRTUAL_WIDTH = 1280;
private static final int VIRTUAL_HEIGHT = 768;
private static LanguageScreen instance = null;
private Stage stage;
private Pweek puyopuyo = null;
private class LangButton extends Button {
public LangButton(TextureRegion region, final I18nManager.Language lang) {
super(new TextureRegionDrawable(region));
addListener(new ClickListener() {
@Override
public void clicked(InputEvent event, float x, float y) {
I18nManager.getInstance().setLanguage(lang);
PreferenceManager.getInstance().setPreference(Preference.LANGUAGE,lang.toString());
puyopuyo.loadLocalizedAssets();
puyopuyo.setScreen(GameServicesScreen.getInstance());
}
});
}
}
public static LanguageScreen getInstance() {
if(instance == null) {
instance = new LanguageScreen();
}
return instance;
}
private LanguageScreen() {
this.puyopuyo = Pweek.getInstance();
TextureRegion enRegion = new TextureRegion( puyopuyo.manager.get("images/menu/flag-en.png", Texture.class));
TextureRegion frRegion = new TextureRegion( puyopuyo.manager.get("images/menu/flag-fr.png", Texture.class));
LangButton enButton = new LangButton(enRegion, Language.ENGLISH);
LangButton frButton = new LangButton(frRegion, Language.FRENCH);
this.puyopuyo = Pweek.getInstance();
stage = new Stage(Gdx.graphics.getWidth(), Gdx.graphics.getHeight(),
false);
/* Positionnement des bouttons aux premier tier et deuxieme tier de l'�cran */
enButton.setX(2*VIRTUAL_WIDTH/3 - enRegion.getRegionWidth()/2);
enButton.setY(VIRTUAL_HEIGHT/3 - enRegion.getRegionHeight()/2);
frButton.setX(VIRTUAL_WIDTH/3 - frRegion.getRegionWidth()/2);
frButton.setY(VIRTUAL_HEIGHT/3 - enRegion.getRegionHeight()/2);
stage.addActor(new BackgroundActor(ScreenOrientation.LANDSCAPE));
stage.addActor(enButton);
stage.addActor(frButton);
}
@Override
public void dispose() {
// TODO Auto-generated method stub
}
@Override
public void hide() {
// TODO Auto-generated method stub
}
@Override
public void pause() {
// TODO Auto-generated method stub
}
@Override
public void render(float arg0) {
Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
stage.draw();
stage.act(Gdx.graphics.getDeltaTime());
}
@Override
public void resize(int arg0, int arg1) {
stage.setViewport(VIRTUAL_WIDTH, VIRTUAL_HEIGHT, false);
stage.getCamera().position.set(VIRTUAL_WIDTH / 2, VIRTUAL_HEIGHT / 2, 0);
}
@Override
public void resume() {
// TODO Auto-generated method stub
}
@Override
public void show() {
Gdx.input.setInputProcessor(stage);
}
}