Search in sources :

Example 1 with ITileLayer

use of de.gurkenlabs.litiengine.environment.tilemap.ITileLayer in project litiengine by gurkenlabs.

the class TmxMap method updateDimensionsByTileLayers.

/**
 * Update width and height by the max width and height of the tile layers in the infinite map.
 */
private void updateDimensionsByTileLayers() {
    int minChunkOffsetX = 0;
    int minChunkOffsetY = 0;
    int w = 0;
    int h = 0;
    for (ITileLayer tileLayer : this.tileLayers) {
        if (!(tileLayer instanceof TileLayer)) {
            continue;
        }
        TileLayer layer = (TileLayer) tileLayer;
        if (layer.getRawTileData() != null && layer.getRawTileData().getOffsetX() < minChunkOffsetX) {
            minChunkOffsetX = layer.getRawTileData().getOffsetX();
        }
        if (layer.getRawTileData() != null && layer.getRawTileData().getOffsetY() < minChunkOffsetY) {
            minChunkOffsetY = layer.getRawTileData().getOffsetY();
        }
    }
    // locating their chunks in it
    for (ITileLayer tileLayer : this.tileLayers) {
        if (!(tileLayer instanceof TileLayer)) {
            continue;
        }
        TileLayer layer = (TileLayer) tileLayer;
        if (layer.getRawTileData() != null) {
            layer.getRawTileData().setMinChunkOffsets(minChunkOffsetX, minChunkOffsetY);
        }
        if (tileLayer.getWidth() > w) {
            w = tileLayer.getWidth();
        }
        if (tileLayer.getHeight() > h) {
            h = tileLayer.getHeight();
        }
    }
    this.chunkOffsetX = minChunkOffsetX;
    this.chunkOffsetY = minChunkOffsetY;
    this.width = w;
    this.height = h;
}
Also used : ITileLayer(de.gurkenlabs.litiengine.environment.tilemap.ITileLayer) ITileLayer(de.gurkenlabs.litiengine.environment.tilemap.ITileLayer)

Aggregations

ITileLayer (de.gurkenlabs.litiengine.environment.tilemap.ITileLayer)1