Example usage for com.badlogic.gdx.scenes.scene2d.ui Label setAlignment

List of usage examples for com.badlogic.gdx.scenes.scene2d.ui Label setAlignment

Introduction

In this page you can find the example usage for com.badlogic.gdx.scenes.scene2d.ui Label setAlignment.

Prototype

public void setAlignment(int alignment) 

Source Link

Usage

From source file:be.ac.ucl.lfsab1509.bouboule.game.screen.AboutScreen.java

License:Open Source License

@Override
public void show() {
    super.show();

    //Set Background
    addBackGroundShift("GdxMenus/settings/settingsbg.jpg");

    // Note: no accent with the default font and multiple spaces or \t are not working
    String cAboutText = "App's name:\n" + " Bouboule\n\n" + "Authors: (v1)\n"
            + " Baerts Matthieu, Remy Baptiste, Van Wallendael " + "Nicolas and Verhaeghe Helene\n\n"
            + "Authors: (v2+)\n" + " Baerts Matthieu, Van Wallendael Nicolas\n\n" + "Graphisms:\n"
            + " Van Wallendael Julien\n\n" + "Music and sounds:\n"
            + " Adans Paschal (adanspaschal.gmail.com) and" + " Klez (The gateway - SpaceShip level)\n\n"
            + "Credits & License:\n" + " Bouboule was developed during the course"
            + " FSAB1509 - Projet Informatique (Yves Deville, Universite"
            + " Catholique de Louvain, Belgium), 2012-2013.\n\n"
            + "Open-Source  GPL3 license and developed with LibGDX"
            + " (Free and Open-Source game development framework under" + " Apache License 2.0).";
    int iVersion = Gdx.app.getVersion();
    if (iVersion > 0)
        cAboutText += "\n\nVersion: " + iVersion;
    Label label = new Label(cAboutText, getSkin(), "osaka-font", Color.WHITE);

    // not on the border
    label.setWidth(GlobalSettings.APPWIDTH - 20 * GlobalSettings.HD);
    label.setHeight(GlobalSettings.APPHEIGHT - 20 * GlobalSettings.HD);
    label.setPosition(10 * GlobalSettings.HD, 10 * GlobalSettings.HD);
    label.setAlignment(Align.center);

    label.setWrap(true); // return to the next lines

    // filters/*from  w ww  .jav  a 2 s .c om*/
    // label.getStyle().font.getRegion().getTexture().setFilter(TextureFilter.Linear, TextureFilter.Linear);

    // label.setFillParent(true); used all the screen: too large

    stage.addActor(label);

    //Create all Buttons
    addBackButton(false);
}

From source file:ca.hiphiparray.amazingmaze.ContinueScreen.java

License:Open Source License

/**
 * Displays the high score dialog.// w w  w  . j a  v  a 2s . c o  m
 */
public void highScoreDialog() {
    Label.LabelStyle labelStyle = new Label.LabelStyle(
            game.assets.getFont(Assets.MONO_REGULAR, Assets.SMALL_FONT_SIZE), Color.WHITE);
    final Dialog dialog = new Dialog("High Score", game.assets.skin);
    final TextButton okButton = new TextButton("OK", game.assets.skin);
    dialog.getButtonTable().bottom();
    Label label = new Label("Enter your name:", labelStyle);
    label.setScale(.5f);
    label.setWrap(true);
    label.setAlignment(Align.center);
    final TextField nameField = new TextField("", game.assets.skin);
    dialog.add(label).width(500).pad(50);
    dialog.add(nameField);
    dialog.add(okButton).bottom();
    nameField.setTextFieldListener(new TextFieldListener() {
        @Override
        public void keyTyped(TextField textField, char key) {
            name = formatString(nameField.getText());
            if (!name.equals("")) {
                if (key == (char) 13) {
                    displayHighScores(name);
                }
            }
        }
    });
    okButton.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            name = formatString(nameField.getText());
            if (!name.equals("")) {
                if (okButton.isPressed()) {
                    dialog.hide();
                    displayHighScores(name);
                }
            }
        }
    });
    dialog.addListener(new InputListener() {
        @Override
        public boolean keyDown(InputEvent event, int keycode) {
            name = formatString(nameField.getText());
            if (!name.equals("")) {
                if (keycode == Keys.ENTER) {
                    displayHighScores(name);
                    return true;
                }
            }
            return false;
        }
    });
    dialog.show(stage);
}

From source file:ca.hiphiparray.amazingmaze.CreditsScreen.java

License:Open Source License

/**
 * Helper method to create centred labels.
 *
 * @param lines the lines to put in the label. Assumed to have at least one element.
 * @param skin the skin to load the style from.
 * @return a new {@link Label} with the given properties.
 */// ww w  . jav a2 s .co  m
private Label setupCreditsLabel(String[] lines, String style) {
    String s = lines[0];
    for (int i = 1; i < lines.length; i++) {
        s += "\n" + lines[i];

    }
    Label label = new Label(s, game.assets.skin, style);
    label.setAlignment(Align.center);
    return label;
}

From source file:ca.hiphiparray.amazingmaze.FishMiniGame.java

License:Open Source License

/**
 * Constructor for FishMiniGame./*w  w w.j  a  v a2  s.c o m*/
 *
 * @param game the {@link AmazingMazeGame} instance that is managing this screen.
 * @param player the {@link Player} instance that completed the last level.
 */
public FishMiniGame(final AmazingMazeGame game, Player player) {
    this.game = game;
    this.player = player;
    fishNumber = new int[5];

    fishNumber[0] = this.player.blueCollected;
    fishNumber[1] = this.player.purpleCollected;
    fishNumber[2] = this.player.greenCollected;
    fishNumber[3] = this.player.redCollected;
    fishNumber[4] = this.player.orangeCollected;

    answer = 0;
    for (int i = 0; i < fishNumber.length; i++) {
        answer += fishNumber[i] * fishValue[i];
    }

    stage = new Stage(new ScreenViewport(), this.game.batch);

    menuTable = new Table();
    fishTable = new Table();

    canvas = new Canvas(
            new Pixmap(Gdx.graphics.getWidth(), Gdx.graphics.getHeight() + shift, Pixmap.Format.RGB565));

    menuTable.setFillParent(true);
    menuTable.top();
    fishTable.bottom();
    fishTable.setFillParent(true);

    fishImage = new Image[5];

    TextureAtlas atlas = this.game.assets.manager.get(Assets.GAME_ATLAS_LOCATION, TextureAtlas.class);
    fishImage[0] = new Image(atlas.findRegion(Assets.FISH + Assets.BLUE_MODIFIER));
    fishImage[0].setScale(4f);
    fishImage[1] = new Image(atlas.findRegion(Assets.FISH + Assets.PURPLE_MODIFIER));
    fishImage[1].setScale(4f);
    fishImage[2] = new Image(atlas.findRegion(Assets.FISH + Assets.GREEN_MODIFIER));
    fishImage[2].setScale(4f);
    fishImage[3] = new Image(atlas.findRegion(Assets.FISH + Assets.RED_MODIFIER));
    fishImage[3].setScale(4f);
    fishImage[4] = new Image(atlas.findRegion(Assets.FISH + Assets.ORANGE_MODIFIER));
    fishImage[4].setScale(4f);

    pencilButton = new Button(new TextureRegionDrawable(
            new TextureRegion(this.game.assets.manager.get(Assets.PENCIL_BUTTON, Texture.class))));
    pencilButton.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            if (pencilButton.isPressed()) {
                canvas.setColor(drawColor);
            }
        }
    });

    eraserButton = new Button(new TextureRegionDrawable(
            new TextureRegion(this.game.assets.manager.get(Assets.ERASER_BUTTON, Texture.class))));
    eraserButton.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            if (eraserButton.isPressed()) {
                canvas.setColor(clearColor);
            }
        }
    });

    helpButton = new Button(new TextureRegionDrawable(
            new TextureRegion(this.game.assets.manager.get(Assets.HELP_BUTTON, Texture.class))));
    helpButton.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            if (helpButton.isPressed()) {
                Label.LabelStyle labelStyle = new Label.LabelStyle(
                        game.assets.getFont(Assets.MONO_REGULAR, Assets.SMALL_FONT_SIZE), Color.WHITE);
                final Dialog dialog = new Dialog("Help", game.assets.skin);
                final TextButton okButton = new TextButton("OK", game.assets.skin);
                dialog.getButtonTable().bottom();
                Label label = new Label("Find the total value of fish that you retrieved!\n"
                        + "Each colour corresponds to the colour of Canadian money.\n"
                        + "The numbers correspond to each number of fish you got.\n\n"
                        + "In case you forgot: blue is 5, purple is 10, green is 20, red is 50, and orange is 100.",
                        labelStyle);
                label.setScale(.5f);
                label.setWrap(true);
                label.setAlignment(Align.center);
                dialog.add(label).width(500).pad(50);
                dialog.add(okButton).bottom();
                okButton.addListener(new ChangeListener() {
                    @Override
                    public void changed(ChangeEvent event, Actor actor) {
                        if (okButton.isPressed()) {
                            dialog.hide();
                            canvas.setColor(drawColor);
                        }
                    }
                });
                dialog.key(Keys.ENTER, true);
                dialog.show(stage);
            }
        }
    });

    checkButton = new Button(new TextureRegionDrawable(
            new TextureRegion(this.game.assets.manager.get(Assets.CHECK_BUTTON, Texture.class))));
    checkButton.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            dialog();
        }
    });

    clearButton = new Button(new TextureRegionDrawable(
            new TextureRegion(this.game.assets.manager.get(Assets.CLEAR_BUTTON, Texture.class))));
    clearButton.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            if (clearButton.isPressed()) {
                canvas.clear();
                canvas.setColor(drawColor);
            }
        }
    });

    answerField = new TextField("", game.assets.skin);
    answerField.setTextFieldListener(new TextFieldListener() {
        @Override
        public void keyTyped(TextField textField, char key) {
            if (key == (char) 13) {
                stage.unfocus(answerField);
                dialog();
            }
        }
    });
    stage.addActor(menuTable);
    stage.addActor(canvas);
    stage.addActor(fishTable);

    menuTable.clear();
    fishTable.clear();
    helpButton.right();
    menuTable.background(new TextureRegionDrawable(
            new TextureRegion(this.game.assets.manager.get(Assets.MINI_BACKGROUND, Texture.class))));
    menuTable.add(pencilButton).pad(10).size(64);
    menuTable.add(eraserButton).pad(10).size(64);
    menuTable.add(clearButton).pad(10).size(64);
    menuTable.add(helpButton).pad(10).size(64);

    menuTable.row();

    Label.LabelStyle labelStyle = new Label.LabelStyle(
            game.assets.getFont(Assets.SANS_REGULAR, Assets.REGULAR_FONT_SIZE), Color.WHITE);

    for (int i = 0; i < 5; i++) {
        fishTable.add(fishImage[i]).bottom().left().padLeft(10);
    }
    fishTable.add(answerField).minWidth(150).padLeft(150);
    fishTable.add(checkButton).pad(10).size(64);
    fishTable.row();

    for (int i = 0; i < 5; i++) {
        fishTable.add(new Label(fishNumber[i] + "", labelStyle)).pad(30).center();
    }
    fishTable.row();

    setupPauseMenu();
    input = new InputMultiplexer(stage, this);
    input.addProcessor(pauseMenu);
}

From source file:ca.hiphiparray.amazingmaze.FishMiniGame.java

License:Open Source License

/**
 * Displays the results dialog.//from w  ww.  ja  v a 2 s  .  c om
 */
public void dialog() {
    message = formatString(answerField.getText());
    Label.LabelStyle labelStyle = new Label.LabelStyle(
            game.assets.getFont(Assets.MONO_REGULAR, Assets.SMALL_FONT_SIZE), Color.WHITE);
    final Dialog dialog = new Dialog("Results", game.assets.skin);
    final TextButton okButton = new TextButton("OK", game.assets.skin);
    dialog.getButtonTable().bottom();
    if (checkAnswer() == -1) {
        Label label = new Label("Invalid answer. Please try again.", labelStyle);
        label.setScale(.5f);
        label.setWrap(true);
        label.setAlignment(Align.center);
        dialog.add(label).width(500).pad(50);
        dialog.add(okButton).bottom();
        okButton.addListener(new ChangeListener() {
            @Override
            public void changed(ChangeEvent event, Actor actor) {
                if (okButton.isPressed()) {
                    dialog.hide();
                    canvas.setColor(drawColor);
                }
            }
        });
        dialog.addListener(new InputListener() {
            @Override
            public boolean keyDown(InputEvent event, int keycode) {
                if (keycode == Keys.ENTER) {
                    dialog.hide();
                    return true;
                }
                return false;
            }
        });
    } else {
        Label label = new Label("Your answer was: " + message + ". " + "The correct answer was: " + answer
                + ". " + "You get " + checkAnswer() + " back!", labelStyle);
        game.save.addScore(checkAnswer());
        game.save.setLives(player.getLives());
        label.setScale(.5f);
        label.setWrap(true);
        label.setAlignment(Align.center);
        dialog.add(label).width(500).pad(50);
        dialog.add(okButton).bottom();
        okButton.addListener(new ChangeListener() {
            @Override
            public void changed(ChangeEvent event, Actor actor) {
                if (okButton.isPressed()) {
                    dialog.cancel();
                    if ((game.save.getLevel() - 1) % 5 == 0) {
                        game.setScreen(new ContinueScreen(game, true));
                    } else {
                        game.setScreen(new MazeScreen(game, false));
                    }
                }
            }
        });
        dialog.addListener(new InputListener() {
            @Override
            public boolean keyDown(InputEvent event, int keycode) {
                if (keycode == Keys.ENTER) {
                    if ((game.save.getLevel() - 1) % 5 == 0) {
                        game.setScreen(new ContinueScreen(game, true));
                    } else {
                        game.setScreen(new MazeScreen(game, false));
                    }
                    return true;
                }
                return false;
            }
        });
    }
    dialog.show(stage);
}

From source file:com.agateau.pixelwheels.racescreen.HudContent.java

License:Open Source License

private void createPlayerLabels(AnchorGroup root) {
    Skin skin = mAssets.ui.skin;/*www  . java  2 s  .  com*/
    int playerCount = mGameWorld.getPlayerRacers().size;

    Actor topEdge = root;
    Anchor topAnchor = Anchor.TOP_RIGHT;
    float hMargin = -5;

    boolean singlePlayer = mGameWorld.getPlayerRacers().size == 1;
    for (int idx = 0; idx < playerCount; ++idx) {
        Label rankLabel = new Label("", skin, singlePlayer ? "hudRank" : "smallHudRank");
        rankLabel.setAlignment(Align.right);

        Label lapLabel = new Label("", skin, singlePlayer ? "hud" : "smallHud");
        lapLabel.setAlignment(Align.right);

        root.addPositionRule(rankLabel, Anchor.TOP_RIGHT, topEdge, topAnchor, hMargin, 0);
        root.addPositionRule(lapLabel, Anchor.TOP_RIGHT, rankLabel, Anchor.BOTTOM_RIGHT, 0, 10);

        mRankLabels.add(rankLabel);
        mLapLabels.add(lapLabel);

        topAnchor = Anchor.BOTTOM_RIGHT;
        topEdge = lapLabel;
        hMargin = 0;
    }
}

From source file:com.agateau.ui.UiBuilder.java

License:Apache License

protected Label createLabel(XmlReader.Element element) {
    String styleName = element.getAttribute("style", "default");
    String text = processText(element.getText());
    Label label = new Label(text, mSkin, styleName);
    int align = parseAlign(element);
    if (align != -1) {
        label.setAlignment(align);
    }//from w ww.  ja  v  a  2  s  . co m
    return label;
}

From source file:com.bladecoder.engine.ui.LoadSaveScreen.java

License:Apache License

@Override
public void show() {
    float size = DPIUtils.getPrefButtonSize();
    float pad = DPIUtils.getMarginSize();
    final Skin skin = ui.getSkin();
    final World world = World.getInstance();

    // loadScreenMode = ui.getScreen(Screens.LOAD_GAME_SCREEN) == this;
    loadScreenMode = world.getCurrentScene() == null;

    stage = new Stage(new ScreenViewport());

    slotWidth = (int) (stage.getViewport().getWorldWidth() / (ROW_SLOTS + 1) - 2 * pad);
    slotHeight = (int) (slotWidth * stage.getViewport().getScreenHeight()
            / stage.getViewport().getScreenWidth());

    LoadSaveScreenStyle style = skin.get(LoadSaveScreenStyle.class);

    Drawable bg = style.background;//from   www. j  a  v a 2 s.  c  o m

    if (bg == null && style.bgFile != null) {
        bgTexFile = new Texture(EngineAssetManager.getInstance().getResAsset(style.bgFile));
        bgTexFile.setFilter(TextureFilter.Linear, TextureFilter.Linear);

        bg = new TextureRegionDrawable(new TextureRegion(bgTexFile));
    }

    Table table = new Table(skin);
    table.setFillParent(true);
    table.center();
    table.pad(pad);

    Label title = new Label(loadScreenMode ? I18N.getString("ui.load") : I18N.getString("ui.save"), skin,
            "title");

    Button back = new Button(skin, "back");

    back.addListener(new ClickListener() {
        public void clicked(InputEvent event, float x, float y) {
            ui.setCurrentScreen(Screens.MENU_SCREEN);
        }
    });

    Table header = new Table();
    // header.padBottom(pad);
    Container<Button> cont = new Container<Button>(back);
    cont.size(size);
    header.add(cont);
    header.add(title).fillX().expandX().left();
    table.add(header).fillX().expandX().left();

    if (bg != null)
        table.setBackground(bg);

    table.addListener(new InputListener() {
        @Override
        public boolean keyUp(InputEvent event, int keycode) {
            if (keycode == Input.Keys.ESCAPE || keycode == Input.Keys.BACK)
                if (world.getCurrentScene() != null)
                    ui.setCurrentScreen(Screens.SCENE_SCREEN);

            return true;
        }
    });

    final PagedScrollPane scroll = new PagedScrollPane();
    scroll.setFlingTime(0.1f);
    scroll.setPageSpacing(25);

    Table slots = new Table().pad(pad);
    slots.defaults().pad(pad).size(slotWidth + pad, slotHeight + pad * 2).top();
    int c = 0;

    // Add "new slot" slot for save screen
    if (!loadScreenMode) {
        slots.add(getSlotButton(Long.toString(new Date().getTime()))).fill().expand();
        c++;
    }

    final List<String> sl = getSlots();

    Collections.sort(sl);

    for (int j = sl.size() - 1; j >= 0; j--) {

        String s = sl.get(j);

        if (c % ROW_SLOTS == 0 && c % (ROW_SLOTS * COL_SLOTS) != 0)
            slots.row();

        if (c != 0 && c % (ROW_SLOTS * COL_SLOTS) == 0) {
            scroll.addPage(slots);
            slots = new Table().pad(pad);
            slots.defaults().pad(pad).size(slotWidth + pad, slotHeight + pad * 2).top();
        }

        Button removeButton = new Button(skin, "delete_game");
        removeButton.setName(s);
        removeButton.addListener(removeClickListener);

        Container<Button> container = new Container<Button>(removeButton);
        container.size(DPIUtils.getPrefButtonSize() * .75f);
        container.align(Align.topRight);

        slots.stack(getSlotButton(s), container).fill().expand();

        c++;
    }

    // Add last page
    if (slots.getCells().size > 0)
        scroll.addPage(slots);

    table.row();

    if (loadScreenMode && sl.size() == 0) {
        Label lbl = new Label(I18N.getString("ui.noSavedGames"), skin, "title");
        lbl.setAlignment(Align.center);
        table.add(lbl).expand().fill();
    } else {
        table.add(scroll).expand().fill();
    }

    table.pack();

    stage.setKeyboardFocus(table);
    stage.addActor(table);

    pointer = new Pointer(ui.getSkin());
    stage.addActor(pointer);

    Gdx.input.setInputProcessor(stage);
}

From source file:com.bladecoder.engine.ui.LoadSaveScreen.java

License:Apache License

/**
 * Creates a button to represent one slot
 *
 * @param slot//from   www.  ja  va  2 s .c  o  m
 * @return The button to use for one slot
 */
private Button getSlotButton(String slot) {
    final Skin skin = ui.getSkin();
    final Button button = new Button(new ButtonStyle());
    final ButtonStyle style = button.getStyle();
    style.up = style.down = skin.getDrawable("black");

    String textLabel = I18N.getString("ui.newSlot");
    button.setSize(slotWidth, slotHeight);

    if (slotExists(slot)) {
        button.add(getScreenshot(slot)).maxSize(slotWidth * .95f, slotHeight * .95f);

        try {
            long l = Long.parseLong(slot);

            Date d = new Date(l);
            textLabel = (new SimpleDateFormat()).format(d);
        } catch (Exception e) {
            textLabel = slot;
        }

        button.addListener(loadClickListener);
    } else {
        Image fg = new Image(skin.getDrawable("plus"));
        button.add(fg).maxSize(slotHeight / 2, slotHeight / 2);

        button.addListener(saveClickListener);
    }

    button.row();

    Label label = new Label(textLabel, skin);
    label.setAlignment(Align.center);

    button.add(label).fillX();

    button.setName(slot);
    return button;
}

From source file:com.bladecoder.engine.ui.MenuScreen.java

License:Apache License

@Override
public void show() {
    stage = new Stage(new ScreenViewport());

    final Skin skin = ui.getSkin();
    final World world = World.getInstance();

    final MenuScreenStyle style = skin.get(MenuScreenStyle.class);
    final BitmapFont f = skin.get(style.textButtonStyle, TextButtonStyle.class).font;
    float buttonWidth = f.getCapHeight() * 15f;

    // Image background = new Image(style.background);
    Drawable bg = style.background;/*from   ww w. java  2 s.co m*/

    if (bg == null && style.bgFile != null) {
        bgTexFile = new Texture(EngineAssetManager.getInstance().getResAsset(style.bgFile));
        bgTexFile.setFilter(TextureFilter.Linear, TextureFilter.Linear);

        bg = new TextureRegionDrawable(new TextureRegion(bgTexFile));
    }

    final Table table = new Table();
    table.setFillParent(true);
    table.center();

    if (bg != null)
        table.setBackground(bg);

    table.addListener(new InputListener() {
        @Override
        public boolean keyUp(InputEvent event, int keycode) {
            if (keycode == Input.Keys.ESCAPE || keycode == Input.Keys.BACK)
                if (world.getCurrentScene() != null)
                    ui.setCurrentScreen(Screens.SCENE_SCREEN);

            return true;
        }
    });

    table.defaults().pad(BUTTON_PADDING).width(buttonWidth);

    stage.setKeyboardFocus(table);

    if (style.showTitle) {

        Label title = new Label(Config.getProperty(Config.TITLE_PROP, "Adventure Blade Engine"), skin,
                style.titleStyle);

        title.setAlignment(Align.center);

        table.add(title).padBottom(DPIUtils.getMarginSize() * 2);
        table.row();
    }

    if (world.savedGameExists() || world.getCurrentScene() != null) {
        TextButton continueGame = new TextButton(I18N.getString("ui.continue"), skin, style.textButtonStyle);

        continueGame.addListener(new ClickListener() {
            public void clicked(InputEvent event, float x, float y) {
                if (world.getCurrentScene() == null)
                    try {
                        world.load();
                    } catch (Exception e) {
                        Gdx.app.exit();
                    }

                ui.setCurrentScreen(Screens.SCENE_SCREEN);
            }
        });

        table.add(continueGame);
    }

    TextButton newGame = new TextButton(I18N.getString("ui.new"), skin, style.textButtonStyle);
    newGame.addListener(new ClickListener() {
        public void clicked(InputEvent event, float x, float y) {
            if (world.savedGameExists()) {
                Dialog d = new Dialog("", skin) {
                    protected void result(Object object) {
                        if (((Boolean) object).booleanValue()) {
                            try {
                                world.newGame();
                            } catch (Exception e) {
                                Gdx.app.exit();
                            }
                            ui.setCurrentScreen(Screens.SCENE_SCREEN);
                        }
                    }
                };

                d.pad(DPIUtils.getMarginSize());
                d.getButtonTable().padTop(DPIUtils.getMarginSize());
                d.getButtonTable().defaults().padLeft(DPIUtils.getMarginSize())
                        .padRight(DPIUtils.getMarginSize());

                Label l = new Label(I18N.getString("ui.override"), ui.getSkin(), "ui-dialog");
                l.setWrap(true);
                l.setAlignment(Align.center);

                d.getContentTable().add(l).prefWidth(Gdx.graphics.getWidth() * .7f);

                d.button(I18N.getString("ui.yes"), true, ui.getSkin().get("ui-dialog", TextButtonStyle.class));
                d.button(I18N.getString("ui.no"), false, ui.getSkin().get("ui-dialog", TextButtonStyle.class));
                d.key(Keys.ENTER, true).key(Keys.ESCAPE, false);

                d.show(stage);
            } else {

                try {
                    world.newGame();
                } catch (Exception e) {
                    Gdx.app.exit();
                }
                ui.setCurrentScreen(Screens.SCENE_SCREEN);
            }
        }
    });

    table.row();
    table.add(newGame);

    TextButton loadGame = new TextButton(I18N.getString("ui.load"), skin, style.textButtonStyle);
    loadGame.addListener(new ClickListener() {
        public void clicked(InputEvent event, float x, float y) {
            ui.setCurrentScreen(Screens.LOAD_GAME_SCREEN);
        }
    });

    table.row();
    table.add(loadGame);

    //      if (world.getCurrentScene() != null) {
    //         TextButton saveGame = new TextButton(I18N.getString("ui.save"), skin, style.textButtonStyle);
    //         saveGame.addListener(new ClickListener() {
    //            public void clicked(InputEvent event, float x, float y) {
    //               ui.setCurrentScreen(Screens.SAVE_GAME_SCREEN);
    //            }
    //         });
    //
    //         table.row();
    //         table.add(saveGame);
    //      }

    TextButton quit = new TextButton(I18N.getString("ui.quit"), skin, style.textButtonStyle);
    quit.addListener(new ClickListener() {
        public void clicked(InputEvent event, float x, float y) {
            Gdx.app.exit();
        }
    });

    table.row();
    table.add(quit);

    table.pack();

    stage.addActor(table);

    // BOTTOM-RIGHT BUTTON STACK
    credits = new Button(skin, "credits");
    credits.addListener(new ClickListener() {
        public void clicked(InputEvent event, float x, float y) {
            ui.setCurrentScreen(Screens.CREDIT_SCREEN);
        }
    });

    help = new Button(skin, "help");
    help.addListener(new ClickListener() {
        public void clicked(InputEvent event, float x, float y) {
            ui.setCurrentScreen(Screens.HELP_SCREEN);
        }
    });

    debug = new Button(skin, "debug");
    debug.addListener(new ClickListener() {
        public void clicked(InputEvent event, float x, float y) {
            DebugScreen debugScr = new DebugScreen();
            debugScr.setUI(ui);
            ui.setCurrentScreen(debugScr);
        }
    });

    Table buttonStack = new Table();
    buttonStack.defaults().pad(DPIUtils.getSpacing()).size(DPIUtils.getPrefButtonSize(),
            DPIUtils.getPrefButtonSize());
    buttonStack.pad(DPIUtils.getMarginSize() * 2);

    if (EngineLogger.debugMode() && world.getCurrentScene() != null) {
        buttonStack.add(debug);
        buttonStack.row();
    }

    buttonStack.add(help);
    buttonStack.row();
    buttonStack.add(credits);
    buttonStack.bottom().right();
    buttonStack.setFillParent(true);
    buttonStack.pack();
    stage.addActor(buttonStack);

    Label version = new Label("v" + Config.getProperty(Config.VERSION_PROP, " unspecified"), skin);
    version.setPosition(DPIUtils.getMarginSize(), DPIUtils.getMarginSize());
    stage.addActor(version);

    debug.addListener(new ClickListener() {
        public void clicked(InputEvent event, float x, float y) {
            DebugScreen debugScr = new DebugScreen();
            debugScr.setUI(ui);
            ui.setCurrentScreen(debugScr);
        }
    });

    pointer = new Pointer(skin);
    stage.addActor(pointer);

    Gdx.input.setInputProcessor(stage);
}