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

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

Introduction

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

Prototype

JsonReader

Source Link

Usage

From source file:be.ac.ucl.lfsab1509.bouboule.game.physicEditor.BodyEditorLoader.java

License:Open Source License

private Model readJson(String str) {
    Model m = new Model();

    JsonValue map = new JsonReader().parse(str);

    JsonValue bodyElem = map.getChild("rigidBodies");
    for (; bodyElem != null; bodyElem = bodyElem.next()) {
        RigidBodyModel rbModel = readRigidBody(bodyElem);
        m.rigidBodies.put(rbModel.name, rbModel);
    }/*from  w  w w .j  a va 2 s.c  o  m*/

    return m;
}

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  w ww.  j av a2  s .c  om
 * </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:CB_UI_Base.CB_Texturepacker.TexturePackerFileProcessor.java

License:Apache License

public ArrayList<Entry> process(File inputFile, File outputRoot) throws Exception {
    root = inputFile;//from   w ww . j  a  v  a2 s  . co  m

    // Collect pack.json setting files.
    final ArrayList<File> settingsFiles = new ArrayList<File>();
    FileProcessor settingsProcessor = new FileProcessor() {
        protected void processFile(Entry inputFile) throws Exception {
            settingsFiles.add(inputFile.inputFile);
        }
    };
    settingsProcessor.addInputRegex("pack\\.json");
    settingsProcessor.process(inputFile, null);
    // Sort parent first.
    Collections.sort(settingsFiles, new Comparator<File>() {
        public int compare(File file1, File file2) {
            return file1.toString().length() - file2.toString().length();
        }
    });
    for (File settingsFile : settingsFiles) {
        // Find first parent with settings, or use defaults.
        Settings settings = null;
        File parent = settingsFile.getParentFile();
        while (true) {
            if (parent.equals(root))
                break;
            parent = parent.getParentFile();
            settings = dirToSettings.get(parent);
            if (settings != null) {
                settings = new Settings(settings);
                break;
            }
        }
        if (settings == null)
            settings = new Settings(defaultSettings);
        // Merge settings from current directory.
        try {
            json.readFields(settings, new JsonReader().parse(settingsFile.getFileReader()));
        } catch (SerializationException ex) {
            throw new GdxRuntimeException("Error reading settings file: " + settingsFile, ex);
        }
        dirToSettings.put(settingsFile.getParentFile(), settings);
    }

    // Do actual processing.
    return super.process(inputFile, outputRoot);
}

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

License:Apache License

public void setupScreen() {
    Table table = new Table(getSkin());
    table.setFillParent(true);/*from  w  w w .  java2s  . 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);/*from   w  w  w.  j a v 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  ww w .j a  v  a  2 s.c o  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).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();//from  ww w .  ja v  a  2s.  c  om
    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.bladecoder.engine.actions.DisableActionAction.java

License:Apache License

public Action getAction() {
    if (action == null) {
        Json json = new Json();
        JsonValue root = new JsonReader().parse(serializedAction);
        action = ActionUtils.readJson(json, root);
    }// ww w .  j ava2 s.c om

    return action;
}

From source file:com.bladecoder.engine.model.World.java

License:Apache License

/**
 * Load the world description in 'world.json'.
 * /*from  w  w  w .j  a  va  2  s.c  o m*/
 * @throws IOException
 */
public void loadWorldDesc() throws IOException {
    if (EngineAssetManager.getInstance().getModelFile(EngineAssetManager.WORLD_FILENAME_JSON).exists()) {
        SerializationHelper.getInstance().setMode(Mode.MODEL);

        JsonValue root = new JsonReader().parse(EngineAssetManager.getInstance()
                .getModelFile(EngineAssetManager.WORLD_FILENAME_JSON).reader("UTF-8"));

        Json json = new Json();
        json.setIgnoreUnknownFields(true);

        int width = json.readValue("width", Integer.class, root);
        int height = json.readValue("height", Integer.class, root);

        // When we know the world width, we can put the scale
        EngineAssetManager.getInstance().setScale(width, height);
        float scale = EngineAssetManager.getInstance().getScale();

        setWidth((int) (width * scale));
        setHeight((int) (height * scale));
        setInitChapter(json.readValue("initChapter", String.class, root));
        verbs.read(json, root);
        I18N.loadWorld(EngineAssetManager.MODEL_DIR + "world");
    } else {
        EngineLogger.error("ERROR LOADING WORLD: world.json doesn't exists.");
        dispose();
        throw new IOException("ERROR LOADING WORLD: world.json doesn't exists.");
    }
}

From source file:com.bladecoder.engine.model.World.java

License:Apache License

public void loadChapter(String chapterName) throws IOException {
    if (!disposed)
        dispose();//ww  w  .  j  a v  a  2s .  co  m

    init();

    long initTime = System.currentTimeMillis();

    SerializationHelper.getInstance().setMode(Mode.MODEL);

    if (chapterName == null)
        chapterName = initChapter;

    currentChapter = initChapter;

    if (EngineAssetManager.getInstance().getModelFile(chapterName + EngineAssetManager.CHAPTER_EXT).exists()) {

        JsonValue root = new JsonReader().parse(EngineAssetManager.getInstance()
                .getModelFile(chapterName + EngineAssetManager.CHAPTER_EXT).reader("UTF-8"));

        Json json = new Json();
        json.setIgnoreUnknownFields(true);

        read(json, root);

        I18N.loadChapter(EngineAssetManager.MODEL_DIR + chapterName);
    } else {
        EngineLogger.error(
                "ERROR LOADING CHAPTER: " + chapterName + EngineAssetManager.CHAPTER_EXT + " doesn't exists.");
        dispose();
        throw new IOException(
                "ERROR LOADING CHAPTER: " + chapterName + EngineAssetManager.CHAPTER_EXT + " doesn't exists.");
    }

    EngineLogger.debug("MODEL LOADING TIME (ms): " + (System.currentTimeMillis() - initTime));
}