Example usage for com.badlogic.gdx.maps.tiled TiledMapTileLayer setName

List of usage examples for com.badlogic.gdx.maps.tiled TiledMapTileLayer setName

Introduction

In this page you can find the example usage for com.badlogic.gdx.maps.tiled TiledMapTileLayer setName.

Prototype

public void setName(String name) 

Source Link

Usage

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

License:Open Source License

/**
 * Return a map generated with the {@link MapFactory}'s parameters.
 *
 * @return a tiled map./*from   w  w w .j  a va 2 s .  c o m*/
 */
public TiledMap generateMap() {
    TiledMap map = new TiledMap();
    map.getTileSets().addTileSet(assets.tiles);

    TiledMapTileLayer backgroundLayer = new TiledMapTileLayer(width, height, MazeScreen.TILE_SIZE,
            MazeScreen.TILE_SIZE);
    backgroundLayer.setName(BACKGROUND_LAYER);
    for (int c = 0; c < backgroundLayer.getWidth(); c++) {
        for (int r = 0; r < backgroundLayer.getHeight(); r++) {
            Cell cell = new Cell();
            cell.setTile(assets.tiles.getTile(TileIDs.computeID(TileIDs.BACKGROUND)));
            backgroundLayer.setCell(c, r, cell);
        }
    }
    map.getLayers().add(backgroundLayer);

    final int gateSpace = 2;
    final int extraRoom = 3;
    List<Integer> splits = generateWireLocations();

    TiledMapTileLayer objectLayer = new TiledMapTileLayer(width, height, MazeScreen.TILE_SIZE,
            MazeScreen.TILE_SIZE);
    objectLayer.setName(OBJECT_LAYER);
    TiledMapTileLayer wireLayer = new TiledMapTileLayer(width, height, MazeScreen.TILE_SIZE,
            MazeScreen.TILE_SIZE);
    wireLayer.setName(WIRE_LAYER);
    for (int col : splits) { // Place the middle barriers and the unknown wires.
        boolean upperOutput = random.nextBoolean();
        Circuit upperGate = new Circuit(upperOutput, random);
        Circuit lowerGate = new Circuit(!upperOutput, random);
        Point highLocation = new Point(col, height - gateSpace);
        Point lowLocation = new Point(col, gateSpace - 1);

        if (Circuit.evaluateGate(upperGate.getGate(), upperGate.isInputA(), upperGate.isInputB())) {
            gateOn.add(upperGate);
        } else {
            gateOn.add(lowerGate);
        }

        placeUpperCircuit(objectLayer, upperGate, highLocation);
        placeLowerCircuit(objectLayer, lowerGate, lowLocation);
        int barrierLoc = randomInt(gateSpace + extraRoom, height - (gateSpace + extraRoom));
        Cell cell = new Cell();
        cell.setTile(assets.tiles.getTile(TileIDs.computeID(TileIDs.BARRIER)));
        objectLayer.setCell(col, barrierLoc, cell);
        for (int r = barrierLoc - 1; r >= gateSpace; r--) { // Place the lower wires.
            WireCell wire = new WireCell(!upperOutput);
            wire.setTile(assets.tiles
                    .getTile(TileIDs.computeID(TileIDs.WIRE_RANGE, TileIDs.VERTICAL, TileIDs.UNKNOWN)));
            wireLayer.setCell(col, r, wire);
        }
        for (int r = barrierLoc + 1; r < height - gateSpace; r++) { // Place the upper wires.
            WireCell wire = new WireCell(upperOutput);
            wire.setTile(assets.tiles
                    .getTile(TileIDs.computeID(TileIDs.WIRE_RANGE, TileIDs.VERTICAL, TileIDs.UNKNOWN)));
            wireLayer.setCell(col, r, wire);
        }
    }
    for (int c = 0; c < width; c++) {
        if (!splits.contains(c)) {
            Cell cell = new Cell();
            cell.setTile(assets.tiles.getTile(TileIDs.computeID(TileIDs.BARRIER)));
            objectLayer.setCell(c, gateSpace, cell);
            cell = new Cell();
            cell.setTile(assets.tiles.getTile(TileIDs.computeID(TileIDs.BARRIER)));
            objectLayer.setCell(c, height - gateSpace - 1, cell);
        }
    }

    map.getLayers().add(objectLayer);
    map.getLayers().add(wireLayer);

    TiledMapTileLayer powerUpLayer = new TiledMapTileLayer(width, height, MazeScreen.TILE_SIZE,
            MazeScreen.TILE_SIZE);
    powerUpLayer.setName(ITEM_LAYER);
    for (int c = 1; c < width; c++) {
        if (!splits.contains(c)) {
            if (random.nextDouble() <= 0.25) {
                placeFish(powerUpLayer, c, gateSpace);
                c++;
            } else if (random.nextDouble() <= 0.1) {
                placeCheese(powerUpLayer, c, gateSpace);
                c++;
            }
        }
    }
    map.getLayers().add(powerUpLayer);

    return map;
}

From source file:de.bitowl.advent.game2.MyAtlasTmxMapLoader.java

License:Apache License

protected void loadTileLayer(TiledMap map, Element element) {
    if (element.getName().equals("layer")) {
        String name = element.getAttribute("name", null);
        int width = element.getIntAttribute("width", 0);
        int height = element.getIntAttribute("height", 0);
        int tileWidth = element.getParent().getIntAttribute("tilewidth", 0);
        int tileHeight = element.getParent().getIntAttribute("tileheight", 0);
        boolean visible = element.getIntAttribute("visible", 1) == 1;
        float opacity = element.getFloatAttribute("opacity", 1.0f);
        TiledMapTileLayer layer = new TiledMapTileLayer(width, height, tileWidth, tileHeight);
        layer.setVisible(visible);//  w  w w . j  av a  2  s .  c  om
        layer.setOpacity(opacity);
        layer.setName(name);

        TiledMapTileSets tilesets = map.getTileSets();

        Element data = element.getChildByName("data");
        String encoding = data.getAttribute("encoding", null);
        String compression = data.getAttribute("compression", null);
        if (encoding == null) { // no 'encoding' attribute means that the encoding is XML
            throw new GdxRuntimeException("Unsupported encoding (XML) for TMX Layer Data");
        }
        if (encoding.equals("csv")) {
            String[] array = data.getText().split(",");
            for (int y = 0; y < height; y++) {
                for (int x = 0; x < width; x++) {
                    int id = (int) Long.parseLong(array[y * width + x].trim());

                    final boolean flipHorizontally = ((id & FLAG_FLIP_HORIZONTALLY) != 0);
                    final boolean flipVertically = ((id & FLAG_FLIP_VERTICALLY) != 0);
                    final boolean flipDiagonally = ((id & FLAG_FLIP_DIAGONALLY) != 0);

                    id = id & ~MASK_CLEAR;

                    tilesets.getTile(id);

                    TiledMapTile tile = tilesets.getTile(id);
                    if (tile != null) {
                        Cell cell = createTileLayerCell(flipHorizontally, flipVertically, flipDiagonally);
                        cell.setTile(tile);
                        layer.setCell(x, yUp ? height - 1 - y : y, cell);
                    }
                }
            }
        } else {
            if (encoding.equals("base64")) {
                byte[] bytes = Base64Coder.decode(data.getText());
                if (compression == null) {
                    int read = 0;
                    for (int y = 0; y < height; y++) {
                        for (int x = 0; x < width; x++) {

                            int id = unsignedByteToInt(bytes[read++]) | unsignedByteToInt(bytes[read++]) << 8
                                    | unsignedByteToInt(bytes[read++]) << 16
                                    | unsignedByteToInt(bytes[read++]) << 24;

                            final boolean flipHorizontally = ((id & FLAG_FLIP_HORIZONTALLY) != 0);
                            final boolean flipVertically = ((id & FLAG_FLIP_VERTICALLY) != 0);
                            final boolean flipDiagonally = ((id & FLAG_FLIP_DIAGONALLY) != 0);

                            id = id & ~MASK_CLEAR;

                            tilesets.getTile(id);
                            TiledMapTile tile = tilesets.getTile(id);
                            if (tile != null) {
                                Cell cell = createTileLayerCell(flipHorizontally, flipVertically,
                                        flipDiagonally);
                                cell.setTile(tile);
                                layer.setCell(x, yUp ? height - 1 - y : y, cell);
                            }
                        }
                    }
                } else if (compression.equals("gzip")) {
                    GZIPInputStream GZIS = null;
                    try {
                        GZIS = new GZIPInputStream(new ByteArrayInputStream(bytes), bytes.length);
                    } catch (IOException e) {
                        throw new GdxRuntimeException(
                                "Error Reading TMX Layer Data - IOException: " + e.getMessage());
                    }

                    byte[] temp = new byte[4];
                    for (int y = 0; y < height; y++) {
                        for (int x = 0; x < width; x++) {
                            try {
                                GZIS.read(temp, 0, 4);
                                int id = unsignedByteToInt(temp[0]) | unsignedByteToInt(temp[1]) << 8
                                        | unsignedByteToInt(temp[2]) << 16 | unsignedByteToInt(temp[3]) << 24;

                                final boolean flipHorizontally = ((id & FLAG_FLIP_HORIZONTALLY) != 0);
                                final boolean flipVertically = ((id & FLAG_FLIP_VERTICALLY) != 0);
                                final boolean flipDiagonally = ((id & FLAG_FLIP_DIAGONALLY) != 0);

                                id = id & ~MASK_CLEAR;

                                tilesets.getTile(id);
                                TiledMapTile tile = tilesets.getTile(id);
                                if (tile != null) {
                                    Cell cell = createTileLayerCell(flipHorizontally, flipVertically,
                                            flipDiagonally);
                                    cell.setTile(tile);
                                    layer.setCell(x, yUp ? height - 1 - y : y, cell);
                                }
                            } catch (IOException e) {
                                throw new GdxRuntimeException("Error Reading TMX Layer Data.", e);
                            }
                        }
                    }
                } else if (compression.equals("zlib")) {
                    Inflater zlib = new Inflater();

                    byte[] temp = new byte[4];

                    zlib.setInput(bytes, 0, bytes.length);

                    for (int y = 0; y < height; y++) {
                        for (int x = 0; x < width; x++) {
                            try {
                                zlib.inflate(temp, 0, 4);
                                int id = unsignedByteToInt(temp[0]) | unsignedByteToInt(temp[1]) << 8
                                        | unsignedByteToInt(temp[2]) << 16 | unsignedByteToInt(temp[3]) << 24;

                                final boolean flipHorizontally = ((id & FLAG_FLIP_HORIZONTALLY) != 0);
                                final boolean flipVertically = ((id & FLAG_FLIP_VERTICALLY) != 0);
                                final boolean flipDiagonally = ((id & FLAG_FLIP_DIAGONALLY) != 0);

                                id = id & ~MASK_CLEAR;

                                tilesets.getTile(id);
                                if (id != 0) {
                                    String inset = "NONE";
                                    if (tilesets.getTileSet(0).getTile(id) != null) {
                                        inset = tilesets.getTileSet(0).getName();
                                    } else if (tilesets.getTileSet(1).getTile(id) != null) {
                                        inset = tilesets.getTileSet(1).getName();
                                    }
                                    System.out.println("need tile " + id + inset);
                                }

                                TiledMapTile tile = tilesets.getTile(id);
                                if (tile != null) {
                                    Cell cell = createTileLayerCell(flipHorizontally, flipVertically,
                                            flipDiagonally);
                                    cell.setTile(tile);
                                    layer.setCell(x, yUp ? height - 1 - y : y, cell);
                                }

                            } catch (DataFormatException e) {
                                throw new GdxRuntimeException("Error Reading TMX Layer Data.", e);
                            }
                        }
                    }
                }
            } else {
                // any other value of 'encoding' is one we're not aware of, probably a feature of a future version of Tiled
                // or another editor
                throw new GdxRuntimeException("Unrecognised encoding (" + encoding + ") for TMX Layer Data");
            }
        }
        Element properties = element.getChildByName("properties");
        if (properties != null) {
            loadProperties(layer.getProperties(), properties);
        }
        map.getLayers().add(layer);
    }
}