package stray; import stray.ui.BackButton; import stray.ui.BooleanButton; import stray.ui.LanguageButton; import stray.ui.Slider; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.Input.Keys; import com.badlogic.gdx.graphics.GL20; public class SettingsScreen extends Updateable { public SettingsScreen(Main m) { super(m); addGuiElements(); } private void addGuiElements() { container.elements.clear(); container.elements.add(new BackButton(Settings.DEFAULT_WIDTH - 37, Gdx.graphics .getHeight() - 37) { @Override public boolean onLeftClick() { exitScreen(); return true; } }); container.elements.add(new LanguageButton(5, 5)); container.elements.add(music.setSlider(Settings.musicVolume)); container.elements.add(sound.setSlider(Settings.soundVolume)); container.elements.add(new BooleanButton((Settings.DEFAULT_WIDTH / 2) - 80, Gdx.graphics .getHeight() - 286, 160, 32, "menu.settings.showfps") { @Override public boolean onLeftClick() { super.onLeftClick(); Settings.showFPS = !Settings.showFPS; Settings.getPreferences() .putBoolean("showFPS", Settings.showFPS).flush(); return true; } }.setState(Settings.showFPS)); container.elements.add(debug); container.elements.add(new BooleanButton((Settings.DEFAULT_WIDTH / 2) - 80, Gdx.graphics .getHeight() - 378, 160, 32, "menu.settings.vignette") { @Override public boolean onLeftClick() { super.onLeftClick(); Settings.showVignette = !Settings.showVignette; return true; } }.setState(Settings.showVignette)); } private Slider music = new Slider((Settings.DEFAULT_WIDTH / 2) - 80, Gdx.graphics.getHeight() - 192, 160, 32); private Slider sound = new Slider((Settings.DEFAULT_WIDTH / 2) - 80, Gdx.graphics.getHeight() - 240, 160, 32); private BooleanButton debug = new BooleanButton((Settings.DEFAULT_WIDTH / 2) - 80, Gdx.graphics .getHeight() - 332, 160, 32, "menu.settings.debugmode") { @Override public boolean onLeftClick() { super.onLeftClick(); Settings.debug = !Settings.debug; return true; } }.setState(Settings.debug); private boolean showRestartMsg = false; @Override public void render(float delta) { Gdx.gl20.glClearColor(0, 0, 0, 1); Gdx.gl20.glClear(GL20.GL_COLOR_BUFFER_BIT); main.batch.begin(); container.render(main); if (showRestartMsg) { main.font.setColor(1, 0, 0, 1); main.font.draw(main.batch, "[RED]*[]", (Settings.DEFAULT_WIDTH / 2) - 100 - (main.font.getSpaceWidth() * 2), Gdx.graphics.getHeight() - 144 + 20); main.font.setColor(1, 1, 1, 1); main.drawScaled(Translator.getMsg("menu.settings.requiresrestart"), (Settings.DEFAULT_WIDTH / 2), 100, 512, 0); } main.font.setColor(1, 1, 1, 1); main.font.draw(main.batch, Translator.getMsg("menu.settings.musicvol", (int) (music.slider * 100)), (Settings.DEFAULT_WIDTH / 2) + 80 + (main.font.getSpaceWidth()), Gdx.graphics.getHeight() - 192 + 20); main.font.draw(main.batch, Translator.getMsg("menu.settings.soundvol", (int) (sound.slider * 100)), (Settings.DEFAULT_WIDTH / 2) + 80 + (main.font.getSpaceWidth()), Gdx.graphics.getHeight() - 240 + 20); main.batch.end(); } @Override public void renderUpdate() { if (Gdx.input.isKeyJustPressed(Keys.R) && Settings.debug) { addGuiElements(); } if (Gdx.input.isKeyJustPressed(Keys.ESCAPE)) { exitScreen(); } debug.setState(Settings.debug); } private void exitScreen() { main.setScreen(Main.MAINMENU); Settings.instance().save(); } @Override public void tickUpdate() { } @Override public void renderDebug(int starting) { } @Override public void resize(int width, int height) { } @Override public void show() { } @Override public void hide() { } @Override public void pause() { } @Override public void resume() { } @Override public void dispose() { } }