Example usage for com.badlogic.gdx.utils JsonReader parse

List of usage examples for com.badlogic.gdx.utils JsonReader parse

Introduction

In this page you can find the example usage for com.badlogic.gdx.utils JsonReader parse.

Prototype

public JsonValue parse(FileHandle file) 

Source Link

Usage

From source file:br.com.questingsoftware.libgdx.g3db.G3DBConverter.java

License:Apache License

/** <p>
 * Convert a text JSON file into binary JSON. The new file will be saved in the same folder as the original one with the
 * {@code gd3b} extension./*from  ww w . ja v a2  s  .c o  m*/
 * </p>
 * 
 * @param g3djFile Handle to the original G3DJ file.
 * @param overwrite If {@code true} the new file will overwrite any previous file with the same name. Otherwise append a
 *           counter at the end of the file name to make it unique.
 * @throws IOException If there's an exception while reading the input file or writing the output file. */
public void convert(FileHandle g3djFile, boolean overwrite) throws IOException {
    FileHandle newFile = new FileHandle(g3djFile.pathWithoutExtension() + ".g3db");
    int noOverwriteCounter = 0;
    while (!overwrite && newFile.exists()) {
        newFile = new FileHandle(g3djFile.pathWithoutExtension() + "(" + (++noOverwriteCounter) + ").g3db");
    }

    OutputStream fileOutputStream = newFile.write(false);
    UBJsonWriter writer = new UBJsonWriter(fileOutputStream);
    JsonReader reader = new JsonReader();

    try {
        JsonValue root = reader.parse(g3djFile);
        writeObject(root, writer);

    } finally {
        writer.close();
    }
}

From source file:com.ahsgaming.valleyofbones.screens.GameJoinScreen.java

License:Apache License

public void setupScreen() {
    Table table = new Table(getSkin());
    table.setFillParent(true);//from  ww  w  . jav  a  2s  . c  o  m
    stage.addActor(table);

    table.add("Name:").pad(4).left();
    lblNickname = new Label(game.profile.name, getSkin());
    table.add(lblNickname).pad(4).left();

    chkAuth = new CheckBox(" Authenticating...", getSkin());
    table.add(chkAuth).colspan(2).left();

    table.row();

    table.add("Server Name", "small-grey");
    table.add("Address", "small-grey");
    table.add("Players", "small-grey");
    table.add("Status", "small-grey");
    table.row();

    listNames = new List(new Object[] {}, getSkin());
    listServers = new List(new Object[] {}, getSkin());
    listPlayers = new List(new Object[] {}, getSkin());
    listStatus = new List(new Object[] {}, getSkin());

    table.add(listNames).pad(5);
    table.add(listServers).pad(5);
    table.add(listPlayers).pad(5);
    table.add(listStatus).pad(5);

    ChangeListener changeAll = new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            int index = ((List) actor).getSelectedIndex();

            listNames.setSelectedIndex(index);
            listServers.setSelectedIndex(index);
            listPlayers.setSelectedIndex(index);
            listStatus.setSelectedIndex(index);

            ServerObj server = servers.get(index);
            txtJoinHostname.setText(String.format("%s:%d", server.ipAddr, server.port));
        }
    };

    listNames.addListener(changeAll);
    listServers.addListener(changeAll);
    listPlayers.addListener(changeAll);
    listStatus.addListener(changeAll);

    table.row();

    lblJoinHostname = new Label("Join Server:", getSkin());
    table.add(lblJoinHostname).pad(4).left();

    txtJoinHostname = new TextField("", getSkin());
    table.add(txtJoinHostname).pad(4).fillX().left().colspan(3);

    table.row();

    btnCancel = new TextButton("Cancel", getSkin(), "cancel");
    table.add(btnCancel).size(150, 50).pad(4);

    btnConnect = new TextButton("Join", getSkin());
    table.add(btnConnect).size(150, 50).pad(4);

    btnSpectate = new TextButton("Spectate", getSkin());
    table.add(btnSpectate).size(150, 50).pad(4);

    table.row();

    lblStatus = new Label("", getSkin());
    table.add(lblStatus).colspan(2).pad(4);

    btnCancel.addListener(new ClickListener() {

        /* (non-Javadoc)
         * @see com.badlogic.gdx.scenes.scene2d.utils.ClickListener#touchUp(com.badlogic.gdx.scenes.scene2d.InputEvent, float, float, int, int)
         */
        @Override
        public void touchUp(InputEvent event, float x, float y, int pointer, int button) {
            super.touchUp(event, x, y, pointer, button);
            game.setScreen(game.getMainMenuScreen());
        }
    });

    btnConnect.addListener(new ClickListener() {

        @Override
        public void clicked(InputEvent event, float x, float y) {
            super.clicked(event, x, y);

            Gdx.app.log(LOG, "btnConnect touched");
            String host = txtJoinHostname.getText();
            if (host.equals("")) {
                if (servers.size == 0)
                    return;
                host = String.format("%s:%d", servers.get(listServers.getSelectedIndex()).ipAddr,
                        servers.get(listServers.getSelectedIndex()).port);
            }
            GameSetupConfig cfg = new GameSetupConfig();
            cfg.hostName = host.split(":")[0];
            cfg.isHost = false;
            cfg.isMulti = true;
            cfg.hostPort = (host.indexOf(':') > -1 ? Integer.parseInt(host.split(":")[1]) : KryoCommon.tcpPort);
            cfg.playerName = game.profile.name;
            cfg.playerKey = (authPlayer != null ? authPlayer.key : "");
            gsScreen = game.getGameSetupScreenMP(cfg);
            lblStatus.setText(String.format("Connecting to host %s", cfg.hostName));
            Gdx.app.log(LOG, String.format("Attempting connection to host %s", cfg.hostName));
        }
    });

    btnSpectate.addListener(new ClickListener() {
        @Override
        public void clicked(InputEvent event, float x, float y) {
            super.clicked(event, x, y);

            Gdx.app.log(LOG, "btnSpectate touched");
            String host = txtJoinHostname.getText();
            if (host.equals("")) {
                if (servers.size == 0)
                    return;
                host = String.format("%s:%d", servers.get(listServers.getSelectedIndex()).ipAddr,
                        servers.get(listServers.getSelectedIndex()).port);
            }
            GameSetupConfig cfg = new GameSetupConfig();
            cfg.hostName = host.split(":")[0];
            cfg.isHost = false;
            cfg.isMulti = true;
            cfg.isSpectator = true;
            cfg.hostPort = (host.indexOf(':') > -1 ? Integer.parseInt(host.split(":")[1]) : KryoCommon.tcpPort);
            cfg.playerName = game.profile.name;
            cfg.playerKey = (authPlayer != null ? authPlayer.key : "");
            gsScreen = game.getGameSetupScreenMP(cfg);
            lblStatus.setText(String.format("Connecting to host %s", cfg.hostName));
            Gdx.app.log(LOG, String.format("Attempting connection to host %s", cfg.hostName));
        }
    });

    servers = new Array<ServerObj>();

    Net.HttpRequest httpGet = new Net.HttpRequest(Net.HttpMethods.GET);
    httpGet.setUrl(globalServerUrl);

    Gdx.net.sendHttpRequest(httpGet, new Net.HttpResponseListener() {
        @Override
        public void handleHttpResponse(Net.HttpResponse httpResponse) {
            String response = httpResponse.getResultAsString();
            int code = httpResponse.getStatus().getStatusCode();
            switch (code) {
            case 400:
            case 404:
                Gdx.app.log(LOG, "Server retrieval failed");
                Gdx.app.log(LOG, response);
                break;
            case 200:
                Gdx.app.log(LOG, "Got server list");
                JsonReader reader = new JsonReader();
                JsonValue result = reader.parse(response);
                Gdx.app.log(LOG, response);
                for (JsonValue server : result) {
                    if (server.getString("version", "").equals(VOBGame.VERSION))
                        servers.add(new ServerObj(server));
                }
                break;
            default:
                Gdx.app.log(LOG, String.format("Unknown response code: %d", code));
                Gdx.app.log(LOG, response);
            }
            updateServerList();
        }

        @Override
        public void failed(Throwable t) {
            Gdx.app.log(LOG, "GET server request failed");
            t.printStackTrace();
        }
    });

    // discover host
    new Thread() {
        public void run() {
            // for whatever reason, without this line the discoverHost call cant
            // access the network...not very forward compatible I guess
            System.setProperty("java.net.preferIPv4Stack", "true");
            Client c = new Client();
            c.start();

            InetAddress iAddress = c.discoverHost(KryoCommon.udpPort, 5000);
            if (iAddress != null && txtJoinHostname.getText().equals("")) {
                //               txtJoinHostname.setText(iAddress.getHostAddress());
                servers.add(new ServerObj(-1, iAddress.getHostAddress(), KryoCommon.tcpPort, "LAN Server"));
                updateServerList();
            }
        }
    }.start();

}

From source file:com.ahsgaming.valleyofbones.screens.MPGameSetupScreen.java

License:Apache License

public void setupScreen() {

    Label gameTypeLbl = new Label("Multiplayer", getSkin(), "medium");

    Table table = new Table(getSkin());
    table.setFillParent(true);// w  w w.  j av a  2s.  co  m
    stage.addActor(table);

    table.add(gameTypeLbl).colspan(2).center();
    table.row().minWidth(600);

    Table playerTable = new Table(getSkin());
    playerTable.setBackground(getSkin().getDrawable("default-pane"));

    playerTable.add().padBottom(10).width(30);
    playerTable.add().padBottom(10).width(30);
    playerTable.add(new Label("Name", getSkin(), "small-grey")).padBottom(10);
    playerTable.add(new Label("Race", getSkin(), "small-grey")).padBottom(10);
    playerTable.add(new Label("Color", getSkin(), "small-grey")).padBottom(10);
    playerTable.add(new Label("Ready", getSkin(), "small-grey")).padBottom(10).row();

    pList = new Array<Player>();
    pList.addAll(game.getPlayers());

    for (final Player p : pList) {
        playerTable.add("P" + ((pList.indexOf(p, true) + 1))).padLeft(10);
        if (pList.indexOf(p, true) == 0) {
            Image host = new Image(game.getTextureManager().getSpriteFromAtlas("assets", "king-small"));
            playerTable.add(host).size(host.getWidth() / VOBGame.SCALE, host.getHeight() / VOBGame.SCALE)
                    .padLeft(10).padRight(10);
        } else {
            if (config.isHost) {
                Image btn = getRemovePlayerButton(p.getPlayerId());
                playerTable.add(btn).size(btn.getWidth() / VOBGame.SCALE, btn.getHeight() / VOBGame.SCALE)
                        .padLeft(10).padRight(10);
            } else {
                playerTable.add().padLeft(10).padRight(10);
            }
        }

        playerTable.add(new Label(String.format("%s (%d)", p.getPlayerName(), p.getPlayerId()), getSkin()))
                .left().expandX();

        if (p == client.getPlayer() || (config.isHost && p.isAI())) {

            SelectBox raceSelect = new SelectBox(Prototypes.getRaces().toArray(), getSkin());
            playerTable.add(raceSelect).expandX();
            raceSelect.setSelection(p.getRace());

            raceSelect.addListener(new ChangeListener() {
                @Override
                public void changed(ChangeEvent event, Actor actor) {
                    KryoCommon.UpdatePlayer update = new KryoCommon.UpdatePlayer();
                    update.id = p.getPlayerId();
                    update.race = ((SelectBox) actor).getSelection();
                    update.color = 0;
                    while (update.color < Player.AUTOCOLORS.length
                            && !p.getPlayerColor().equals(Player.AUTOCOLORS[update.color])) {
                        update.color++;
                    }
                    update.ready = p.isReady();
                    if (client instanceof MPGameClient)
                        ((MPGameClient) client).sendPlayerUpdate(update);
                }
            });

        } else {
            playerTable.add(p.getRace());
        }

        Image color = new Image(getSkin().getDrawable("white-hex"));
        color.setColor(p.getPlayerColor());
        playerTable.add(color).expandX().width(color.getWidth());

        if (p == client.getPlayer() || (config.isHost && p.isAI())) {
            color.addListener(new ClickListener() {
                @Override
                public void clicked(InputEvent event, float x, float y) {
                    super.clicked(event, x, y);
                    int i = 0;
                    while (i < Player.AUTOCOLORS.length
                            && !Player.AUTOCOLORS[i].equals(event.getTarget().getColor())) {
                        i++;
                    }
                    i++;

                    i %= Player.AUTOCOLORS.length;
                    event.getTarget().setColor(Player.AUTOCOLORS[i]);

                    KryoCommon.UpdatePlayer update = new KryoCommon.UpdatePlayer();
                    update.id = p.getPlayerId();
                    update.race = p.getRace();
                    update.color = i;
                    update.ready = p.isReady();
                    if (client instanceof MPGameClient)
                        ((MPGameClient) client).sendPlayerUpdate(update);
                }
            });
        }

        CheckBox chkReady = new CheckBox("", getSkin());
        playerTable.add(chkReady).expandX();

        chkReady.setChecked(p.isReady());
        if (p != client.getPlayer())
            chkReady.setDisabled(true);

        chkReady.addListener(new ChangeListener() {
            @Override
            public void changed(ChangeEvent event, Actor actor) {
                KryoCommon.UpdatePlayer update = new KryoCommon.UpdatePlayer();
                update.id = p.getPlayerId();
                update.race = p.getRace();
                update.color = 0;
                while (update.color < Player.AUTOCOLORS.length
                        && !p.getPlayerColor().equals(Player.AUTOCOLORS[update.color])) {
                    update.color++;
                }
                update.ready = !p.isReady();
                if (client instanceof MPGameClient)
                    ((MPGameClient) client).sendPlayerUpdate(update);
            }
        });

        playerTable.row().padBottom(5).padTop(5);
    }

    if (pList.size < 2 && config.isHost) {
        TextButton addAI = new TextButton(" Add AI Player ", getSkin(), "small");
        addAI.addListener(new ClickListener() {
            @Override
            public void clicked(InputEvent event, float x, float y) {
                super.clicked(event, x, y);

                game.addAIPlayer();
            }
        });
        playerTable.add();
        playerTable.add();
        playerTable.add(addAI).colspan(5).left();
    }

    table.add(playerTable).fillX().colspan(2);

    table.row();

    sList = game.getSpectators();
    if (sList.keySet().size() > 0) {
        table.add("Spectators").colspan(2).left();
        table.row();

        Table spectatorTable = new Table(getSkin());
        spectatorTable.setBackground(getSkin().getDrawable("default-pane"));

        for (Integer id : sList.keySet()) {
            if (config.isHost) {
                Image btn = getRemovePlayerButton(id);
                spectatorTable.add(btn).size(btn.getWidth() / VOBGame.SCALE, btn.getHeight() / VOBGame.SCALE)
                        .padLeft(10).padRight(10);
            }
            spectatorTable.add(sList.get(id)).expandX().left();
            spectatorTable.row().expandX().padBottom(5).padTop(5);
        }

        table.add(spectatorTable).fillX().colspan(2);
        table.row();
    }

    ChangeListener updateListener = new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            needsUpdate = true;
        }
    };

    Table setupTable = new Table(getSkin());

    chkSpectators = new CheckBox(" Allow Spectators?", getSkin());
    chkSpectators.setChecked(config.allowSpectate);
    chkSpectators.setDisabled(!config.isHost);
    chkSpectators.addListener(updateListener);
    setupTable.add(chkSpectators).colspan(2).left().padTop(4).row();

    Label mapLbl = new Label("Map:", getSkin());
    setupTable.add(mapLbl).left();

    if (config.isHost) {
        needsUpdate = true; // always send an update on setup, just so we're all on the same page

        JsonReader reader = new JsonReader();
        JsonValue val = reader.parse(Gdx.files.internal("maps/maps.json").readString());

        Array<String> maps = new Array<String>();
        for (JsonValue v : val) {
            maps.add(v.asString());
        }

        mapSelect = new SelectBox(maps.toArray(), getSkin());
        mapSelect.setSelection(config.mapName);

        mapSelect.addListener(updateListener);

        setupTable.add(mapSelect).left().padTop(4).padBottom(4).fillX();
    } else {
        lblMap = new Label(config.mapName, getSkin());
        setupTable.add(lblMap).left();
    }
    setupTable.row();

    setupTable.add("Rules:").left();
    if (config.isHost) {
        Array<VOBGame.RuleSet> ruleSets = game.getRuleSets();
        String[] items = new String[ruleSets.size];
        for (int i = 0; i < ruleSets.size; i++) {
            items[i] = ruleSets.get(i).name;
        }
        ruleSelect = new SelectBox(items, getSkin());
        setupTable.add(ruleSelect).left().padBottom(4).fillX();
        ruleSelect.setSelection(config.ruleSet);

        ruleSelect.addListener(updateListener);
    } else {
        lblRule = new Label(game.getRuleSets().get(config.ruleSet).name, getSkin());
        setupTable.add(lblRule).left();
    }
    setupTable.row();

    setupTable.add("Starting Locations:").left();
    if (config.isHost) {
        spawnSelect = new SelectBox(spawnTypes, getSkin());
        setupTable.add(spawnSelect).left().padBottom(4).fillX();
        spawnSelect.setSelection(config.spawnType);

        spawnSelect.addListener(updateListener);
    } else {
        lblSpawn = new Label(spawnTypes[config.spawnType], getSkin());
        setupTable.add(lblSpawn).left();
    }
    setupTable.row();

    setupTable.add("First Move:").left();
    if (config.isHost) {
        moveSelect = new SelectBox(firstMoves, getSkin());
        setupTable.add(moveSelect).left().padBottom(4).fillX();
        moveSelect.setSelection(config.firstMove);

        moveSelect.addListener(updateListener);
    } else {
        lblMove = new Label(firstMoves[config.firstMove], getSkin());
        setupTable.add(lblMove).left();
    }
    setupTable.row();

    setupTable.add("Timing Rules:").colspan(2).left().row();

    Table timingTable = new Table(getSkin());
    setupTable.add(timingTable).colspan(2).fillX();

    timingTable.add("Base:").left().expandX();
    if (config.isHost) {
        baseTime = new SelectBox(new String[] { "30", "60", "90" }, getSkin());
        timingTable.add(baseTime).expandX().padLeft(4);
        baseTime.setSelection(Integer.toString(config.baseTimer));
        baseTime.addListener(updateListener);
    } else {
        lblBaseTime = new Label(Integer.toString(config.baseTimer), getSkin());
        timingTable.add(lblBaseTime).expandX().padLeft(4);
    }

    timingTable.add("Action:").left().expandX().padLeft(4);
    if (config.isHost) {
        actionTime = new SelectBox(new String[] { "0", "15", "30" }, getSkin());
        timingTable.add(actionTime).expandX().padLeft(4);
        actionTime.setSelection(Integer.toString(config.actionBonusTime));
        actionTime.addListener(updateListener);
    } else {
        lblActionTime = new Label(Integer.toString(config.actionBonusTime), getSkin());
        timingTable.add(lblActionTime).expandX().padLeft(4);
    }

    timingTable.add("Unit:").left().expandX().padLeft(4);
    if (config.isHost) {
        unitTime = new SelectBox(new String[] { "0", "3", "5" }, getSkin());
        timingTable.add(unitTime).expandX().padLeft(4);
        unitTime.setSelection(Integer.toString(config.unitBonusTime));
        unitTime.addListener(updateListener);
    } else {
        lblUnitTime = new Label(Integer.toString(config.unitBonusTime), getSkin());
        timingTable.add(lblUnitTime).expandX().padLeft(4);
    }

    table.add(setupTable).fillX();

    Table controlTable = new Table(getSkin());

    Sprite mapThumb = game.getTextureManager().getSpriteFromAtlas("assets", config.mapName);
    if (mapThumb != null) {
        controlTable.add(new Image(mapThumb)).colspan(2).row();
    }

    if (config.isHost) {
        isHost = true;
        TextButton start = new TextButton("Start Game", getSkin());
        start.addListener(new ClickListener() {
            @Override
            public void clicked(InputEvent event, float x, float y) {
                super.clicked(event, x, y);
                if (game.getPlayers().size >= 2)
                    game.sendStartGame();
            }
        });
        controlTable.add().expand();
        controlTable.add(start).padTop(4).right();

        controlTable.row();
    }

    TextButton cancel = new TextButton("Cancel", getSkin(), "cancel");
    cancel.addListener(new ClickListener() {
        @Override
        public void clicked(InputEvent event, float x, float y) {
            super.clicked(event, x, y);
            game.setScreen(game.getMainMenuScreen());
            game.closeGame();
        }
    });

    controlTable.add();
    controlTable.add(cancel).fillX().padTop(4).right();

    table.add(controlTable).fillX().row();

    if (chatTable == null) {
        chatTable = new Table(getSkin());
        chatScroll = new ScrollPane(chatTable, getSkin());
        chatScroll.setFadeScrollBars(false);
        chatTable.padLeft(20);
    }
    table.add(chatScroll).colspan(2).fillX().height(100);

    table.row();

    Table chatBox = new Table(getSkin());
    final TextField chatMsgText = new TextField("", getSkin());
    if (chatListener != null) {
        stage.removeListener(chatListener);
    }
    stage.addListener(new InputListener() {
        @Override
        public boolean keyUp(InputEvent event, int keycode) {
            if (stage.getKeyboardFocus() == chatMsgText && keycode == Input.Keys.ENTER
                    && chatMsgText.getText().length() > 0) {
                Gdx.app.log(LOG, "Chat: " + chatMsgText.getText());
                client.sendChat(chatMsgText.getText());
                chatMsgText.setText("");
                return false;
            }
            return super.keyUp(event, keycode);
        }
    });

    chatBox.add(chatMsgText).expandX().fillX();
    TextButton chatMsgSend = new TextButton("Send", getSkin(), "small");
    chatMsgSend.addListener(new ClickListener() {
        @Override
        public void clicked(InputEvent event, float x, float y) {
            super.clicked(event, x, y); //To change body of overridden methods use File | Settings | File Templates.

            if (chatMsgText.getText().length() > 0) {
                Gdx.app.log(LOG, "Chat: " + chatMsgText.getText());
                client.sendChat(chatMsgText.getText());
                chatMsgText.setText("");
            }
        }
    });
    chatBox.add(chatMsgSend).fillY().fillX();
    table.add(chatBox).colspan(2).fillX();
    chatHistory = new Array<String>();
}

From source file:com.ahsgaming.valleyofbones.screens.SPGameSetupScreen.java

License:Apache License

public void setupScreen() {

    Label gameTypeLbl = new Label("Single Player", getSkin(), "medium");

    Table table = new Table(getSkin());
    table.setFillParent(true);/*from  w  w  w .  j ava  2 s  . com*/
    stage.addActor(table);

    table.add(gameTypeLbl).colspan(2).center();
    table.row().minWidth(600);

    Table playerTable = new Table(getSkin());
    playerTable.setBackground(getSkin().getDrawable("default-pane"));

    playerTable.add().padBottom(10).width(30);
    playerTable.add().padBottom(10).width(30);
    playerTable.add(new Label("Name", getSkin(), "small-grey")).padBottom(10);
    playerTable.add(new Label("Race", getSkin(), "small-grey")).padBottom(10);
    playerTable.add(new Label("Color", getSkin(), "small-grey")).padBottom(10).row();

    pList = new Array<Player>();
    pList.addAll(game.getPlayers());

    for (final Player p : pList) {
        playerTable.add("P" + ((pList.indexOf(p, true) + 1))).padLeft(10);
        if (pList.indexOf(p, true) == 0) {
            Image host = new Image(game.getTextureManager().getSpriteFromAtlas("assets", "king-small"));
            playerTable.add(host).size(host.getWidth() / VOBGame.SCALE, host.getHeight() / VOBGame.SCALE)
                    .padLeft(10).padRight(10);
        } else {
            playerTable.add().padLeft(10).padRight(10);
        }

        playerTable.add(new Label(String.format("%s (%d)", p.getPlayerName(), p.getPlayerId()), getSkin()))
                .expandX().left();

        SelectBox raceSelect = new SelectBox(Prototypes.getRaces().toArray(), getSkin());
        playerTable.add(raceSelect).expandX();
        raceSelect.setSelection(p.getRace());

        raceSelect.addListener(new ChangeListener() {
            @Override
            public void changed(ChangeEvent event, Actor actor) {
                p.setRace(((SelectBox) actor).getSelection());
            }
        });

        Image color = new Image(getSkin().getDrawable("white-hex"));
        color.setColor(p.getPlayerColor());
        playerTable.add(color).expandX();

        color.addListener(new ClickListener() {
            @Override
            public void clicked(InputEvent event, float x, float y) {
                super.clicked(event, x, y);
                int i = 0;
                while (i < Player.AUTOCOLORS.length
                        && !Player.AUTOCOLORS[i].equals(event.getTarget().getColor())) {
                    i++;
                }
                i++;

                i %= Player.AUTOCOLORS.length;
                event.getTarget().setColor(Player.AUTOCOLORS[i]);
                p.setPlayerColor(Player.AUTOCOLORS[i]);
            }
        });

        playerTable.row().padBottom(5).padTop(5);
    }

    table.add(playerTable).fillX().colspan(2);

    table.row();

    Table setupTable = new Table(getSkin());

    Label mapLbl = new Label("Map:", getSkin());
    setupTable.add(mapLbl).left();

    JsonReader reader = new JsonReader();
    JsonValue val = reader.parse(Gdx.files.internal("maps/maps.json").readString());

    Array<String> maps = new Array<String>();
    for (JsonValue v : val) {
        maps.add(v.asString());
    }

    mapSelect = new SelectBox(maps.toArray(), getSkin());
    mapSelect.setSelection(config.mapName);
    config.mapName = mapSelect.getSelection();

    mapSelect.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            config.mapName = ((SelectBox) actor).getSelection();
            needsUpdate = true;
        }
    });

    mapThumb = new Image(game.getTextureManager().getSpriteFromAtlas("assets", config.mapName));

    setupTable.add(mapSelect).left().padBottom(4).padTop(4).fillX();
    setupTable.row();

    setupTable.add("Rules:").left();
    SelectBox ruleSelect = new SelectBox(new String[] { "Classic" }, getSkin());

    ruleSelect.setSelection(config.ruleSet);
    ruleSelect.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            config.ruleSet = ((SelectBox) actor).getSelectionIndex();
        }
    });

    setupTable.add(ruleSelect).left().padBottom(4).fillX();
    setupTable.row();

    setupTable.add("Starting Locations:").left();
    SelectBox spawnSelect = new SelectBox(new String[] { "Normal", "Inverted", "Random" }, getSkin());

    spawnSelect.setSelection(config.spawnType);
    spawnSelect.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            config.spawnType = ((SelectBox) actor).getSelectionIndex();
        }
    });

    setupTable.add(spawnSelect).left().padBottom(4).fillX();
    setupTable.row();

    setupTable.add("First Move:").left();
    SelectBox moveSelect = new SelectBox(new String[] { "Random", "P1", "P2" }, getSkin());

    moveSelect.setSelection(config.firstMove);
    moveSelect.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            config.firstMove = ((SelectBox) actor).getSelectionIndex();
        }
    });

    setupTable.add(moveSelect).left().padBottom(4).fillX();
    setupTable.row();

    setupTable.add("Timing Rules:").colspan(2).left().row();

    Table timingTable = new Table(getSkin());
    setupTable.add(timingTable).colspan(2).fillX();

    timingTable.add("Base:").left().expandX();
    SelectBox baseTime = new SelectBox(new String[] { "30", "60", "90" }, getSkin());
    timingTable.add(baseTime).expandX();
    baseTime.setSelection(Integer.toString(config.baseTimer));
    baseTime.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            config.baseTimer = Integer.parseInt(((SelectBox) actor).getSelection());
        }
    });

    timingTable.add("Action:").left().expandX();
    SelectBox actionTime = new SelectBox(new String[] { "0", "15", "30" }, getSkin());
    timingTable.add(actionTime).expandX();
    actionTime.setSelection(Integer.toString(config.actionBonusTime));
    actionTime.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            config.actionBonusTime = Integer.parseInt(((SelectBox) actor).getSelection());
        }
    });

    timingTable.add("Unit:").left().expandX();
    SelectBox unitTime = new SelectBox(new String[] { "0", "3", "5" }, getSkin());
    timingTable.add(unitTime).expandX();
    unitTime.setSelection(Integer.toString(config.unitBonusTime));
    unitTime.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            config.unitBonusTime = Integer.parseInt(((SelectBox) actor).getSelection());
        }
    });

    setupTable.row().expandX().expandY().top().left();

    table.add(setupTable).fill();

    Table controlTable = new Table(getSkin());

    controlTable.add(mapThumb).colspan(2).row();

    isHost = true;
    TextButton start = new TextButton("Start Game", getSkin());
    start.addListener(new ClickListener() {

        /* (non-Javadoc)
         * @see com.badlogic.gdx.scenes.scene2d.utils.ClickListener#touchUp(com.badlogic.gdx.scenes.scene2d.InputEvent, float, float, int, int)
         */
        @Override
        public void touchUp(InputEvent event, float x, float y, int pointer, int button) {
            super.touchUp(event, x, y, pointer, button);
            if (game.getPlayers().size >= 2)
                game.sendStartGame();
        }

    });
    controlTable.add().expand();
    controlTable.add(start).padTop(4).right();

    controlTable.row();

    TextButton cancel = new TextButton("Cancel", getSkin(), "cancel");
    cancel.addListener(new ClickListener() {

        /* (non-Javadoc)
         * @see com.badlogic.gdx.scenes.scene2d.utils.ClickListener#touchUp(com.badlogic.gdx.scenes.scene2d.InputEvent, float, float, int, int)
         */
        @Override
        public void touchUp(InputEvent event, float x, float y, int pointer, int button) {
            super.touchUp(event, x, y, pointer, button);

            game.setScreen(game.getMainMenuScreen());
            game.closeGame();

        }

    });

    controlTable.add();
    controlTable.add(cancel).fillX().padTop(4);

    table.add(controlTable).fillX();

    table.row();
}

From source file:com.ahsgaming.valleyofbones.TextureManager.java

License:Apache License

public void loadTexturePackage(String name) {
    map.clear();/* w ww .jav a 2s  .co m*/
    JsonReader jsonReader = new JsonReader();
    Object rObj = jsonReader.parse(Gdx.files.internal(name + "/package.json"));
    ObjectMap<String, Object> mapObjs = (ObjectMap<String, Object>) rObj;
    for (String key : mapObjs.keys()) {
        ObjectMap<String, Object> createObj = (ObjectMap<String, Object>) mapObjs.get(key);
        String file = "";
        int x = 0, y = 0, w = 0, h = 0;

        if (createObj.containsKey("file")) {
            file = name + "/" + createObj.get("file").toString();
        }

        if (createObj.containsKey("x")) {
            x = (int) Float.parseFloat(createObj.get("x").toString());
        }

        if (createObj.containsKey("y")) {
            y = (int) Float.parseFloat(createObj.get("y").toString());
        }

        if (createObj.containsKey("w")) {
            w = (int) Float.parseFloat(createObj.get("w").toString());
        }

        if (createObj.containsKey("h")) {
            h = (int) Float.parseFloat(createObj.get("h").toString());
        }
        Gdx.app.log(LOG, String.format("Loading %s from %s", key, file));
        map.put(key, loadTextureRegion(file, x, y, w, h));
    }
}

From source file:com.jupiter.europa.tools.AtlasPacker.java

License:Open Source License

@Override
public void run() {
    Path configFile = FileLocations.SPRITES_DIRECTORY.resolve(CONFIGURATION_FILE);
    JsonReader reader = new JsonReader();
    String contents = "";

    try {//from  w w w  . jav a2 s .  com
        contents = new String(Files.readAllBytes(configFile), StandardCharsets.UTF_8);
    } catch (IOException ex) {
        System.out.println("Atlas building failed.");
        return;
    }

    JsonValue value = reader.parse(contents);
    JsonValue atlasList = value.get("atlas");

    for (int i = 0; i < atlasList.size; i++) {
        JsonValue currentAtlas = atlasList.get(i);
        String fileName = currentAtlas.getString("name");
        String imageName = currentAtlas.getString("image");
        int size = currentAtlas.getInt("size");
        String[] rows = currentAtlas.get("rows").asStringArray();
        String[] columns = currentAtlas.get("columns").asStringArray();

        //            String imageName = fileName.replace(".atlas", ".png");
        Path output = FileLocations.SPRITES_DIRECTORY.resolve(fileName);
        try (BufferedWriter bw = Files.newBufferedWriter(output); PrintWriter pw = new PrintWriter(bw)) {
            pw.println(imageName);
            pw.println("format: RGBA8888");
            pw.println("filter: Nearest,Nearest");
            pw.println("repeat: none");

            for (int row = 0; row < rows.length; row++) {
                for (int column = 0; column < columns.length; column++) {
                    String patchName = rows[row] + "-" + columns[column];
                    int x = column * size;
                    int y = row * size;

                    pw.println(patchName);
                    pw.println("  rotate: false");
                    pw.println("  xy: " + x + ", " + y);
                    pw.println("  size: " + size + ", " + size);
                    pw.println("  orig: 0, 0");
                    pw.println("  offset: 0, 0");
                    pw.println("  index: -1");
                }
            }
        } catch (IOException ex) {
            System.out.println("Problem with atlas for " + fileName);
        }
    }

    TexturePacker.Settings settings = new TexturePacker.Settings();
    settings.maxHeight = 2048;
    settings.maxWidth = 2048;
    TexturePacker.process(settings, MAIN_MENU_SKIN_DIRECTORY.toString(), MAIN_MENU_SKIN_DIRECTORY.toString(),
            "main_menu.atlas");

    System.out.println("Atlas building completed.");
}

From source file:com.jupiter.europa.world.World.java

License:Open Source License

public static World fromDirectory(Path dir) {
    World world = new World();

    // Basic gist: If we are working with a directory, see if it has a subdirectory with levels in it.  If so,
    //  go through each file in that subdirectory and load a level from it, if possible
    if (Files.isDirectory(dir)) {
        Path levelDir = dir.resolve(Level.LEVEL_FOLDER);

        if (Files.exists(levelDir) && Files.isDirectory(levelDir)) {
            // Set the world's properties
            Path configFile = dir.resolve(WORLD_FILE_NAME);
            JsonReader reader = new JsonReader();
            String contents;//from   w w w. j  a va 2 s .  c  om
            try {
                contents = new String(Files.readAllBytes(configFile), StandardCharsets.UTF_8);
                JsonValue value = reader.parse(contents);

                // Name
                if (value.has(NAME_KEY)) {
                    world.name = value.getString(NAME_KEY);
                } else {
                    world.name = DEFAULT_WORLD_NAME;
                }

                // Starting Level
                if (value.has(STARTING_LEVEL_KEY)) {
                    world.startingLevelName = value.getString(STARTING_LEVEL_KEY);
                } else {
                    world.startingLevelName = DEFAULT_STARTING_LEVEL;
                }
            } catch (Exception ex) {
                // Set default properties
                world.name = DEFAULT_WORLD_NAME;
                world.startingLevelName = DEFAULT_STARTING_LEVEL;
            }

            // Loop through all levels in the directory
            try (DirectoryStream<Path> paths = Files.newDirectoryStream(levelDir)) {
                paths.iterator().forEachRemaining((Path file) -> {
                    if (FileUtils.getExtension(file).equalsIgnoreCase(Level.LEVEL_EXTENSION)) {
                        TiledMap map = EuropaGame.game.getAssetManager().get(file.toString(), TiledMap.class);
                        String name = file.getFileName().toString().replace("." + Level.LEVEL_EXTENSION, "");
                        world.addLevel(new Level(name, map, world));
                    }
                });
            } catch (IOException ex) {

            }
        }
    }

    return world;
}

From source file:com.maplescot.loggerbill.gpg.AchievementManager.java

License:Creative Commons License

public void init() {

    JsonReader jsonReader = new JsonReader();
    JsonValue values = jsonReader.parse(Gdx.files.internal(Constants.ACHIEVEMENTS));
    for (JsonValue value = values.child; value != null; value = value.next) {
        if (value.type() == JsonValue.ValueType.object) {
            String objectName = value.name();
            Achievement achievement = null;

            try {
                //achievement = (Achievement) ClassReflection.forName(objectName);
                achievement = (Achievement) ClassReflection.newInstance(ClassReflection.forName(objectName));
            } catch (ReflectionException e) {
                e.printStackTrace();// w w w.j  av a2 s .co  m
            }

            achievement.init(value.get("id").asString(), value.get("name").asString(),
                    value.get("desc").asString(), value.get("type").asString(), value.get("test").asString(),
                    value.get("value").asFloat(), value.get("incremental").asBoolean());
            Gdx.app.debug(TAG, achievement.toString());
            achievements.add(achievement);
        }
    }
}

From source file:com.maplescot.loggerbill.gpg.LeaderboardManager.java

License:Creative Commons License

public void init() {
    JsonReader jsonReader = new JsonReader();
    JsonValue values = jsonReader.parse(Gdx.files.internal(Constants.LEADERBOARDS));
    for (JsonValue value : values) {
        Leaderboard l = new Leaderboard(value.get("id").asString(), value.get("name").asString());
        leaderboards.add(l);//from   w w  w  .  j a va  2s . c o  m
    }
}

From source file:com.mbrlabs.mundus.runtime.SceneLoader.java

License:Apache License

public Scene load(String name) {
    final JsonReader reader = new JsonReader();
    final JsonValue json = reader.parse(root.child(name));

    Scene scene = new Scene();
    scene.setId(json.getInt(JsonScene.ID));
    scene.setName(json.getString(JsonScene.NAME));

    // game objects
    for (JsonValue go : json.get(JsonScene.GAME_OBJECTS)) {
        scene.sceneGraph.addGameObject(convertGameObject(scene.sceneGraph, go));
    }/*from  w w  w.jav  a2 s . com*/

    return scene;
}