com.badlogic.gdx.assets.loaders.TileMapRendererLoader.java Source code

Java tutorial

Introduction

Here is the source code for com.badlogic.gdx.assets.loaders.TileMapRendererLoader.java

Source

/*******************************************************************************
 * Copyright 2011 See AUTHORS file.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *   http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 ******************************************************************************/

package com.badlogic.gdx.assets.loaders;

import com.badlogic.gdx.assets.AssetDescriptor;
import com.badlogic.gdx.assets.AssetLoaderParameters;
import com.badlogic.gdx.assets.AssetManager;
import com.badlogic.gdx.graphics.g2d.tiled.TileAtlas;
import com.badlogic.gdx.graphics.g2d.tiled.TileMapRenderer;
import com.badlogic.gdx.graphics.g2d.tiled.TiledLoader;
import com.badlogic.gdx.graphics.g2d.tiled.TiledMap;
import com.badlogic.gdx.utils.Array;

/** {@link AssetLoader} for {@link TiledMap} instances.
 * @author mzechner */
public class TileMapRendererLoader
        extends SynchronousAssetLoader<TileMapRenderer, TileMapRendererLoader.TileMapParameter> {
    /** Parameter for {@link TileMapRendererLoader}.
     * @author mzechner */
    public static class TileMapParameter extends AssetLoaderParameters<TileMapRenderer> {
        /** the directory the images (pack files) are stored in **/
        public final String imageDirectory;
        public final int tilesPerBlockX;
        public final int tilesPerBlockY;
        public final float unitsPerTileX;
        public final float unitsPerTileY;

        public TileMapParameter(String imageDirectory, int tilesPerBlockX, int tilesPerBlockY) {
            this.imageDirectory = imageDirectory;
            this.tilesPerBlockX = tilesPerBlockX;
            this.tilesPerBlockY = tilesPerBlockY;
            this.unitsPerTileX = 0.0f;
            this.unitsPerTileY = 0.0f;
        }

        public TileMapParameter(String imageDirectory, int tilesPerBlockX, int tilesPerBlockY, float unitsPerTileX,
                float unitsPerTileY) {
            this.imageDirectory = imageDirectory;
            this.tilesPerBlockX = tilesPerBlockX;
            this.tilesPerBlockY = tilesPerBlockY;
            this.unitsPerTileX = unitsPerTileX;
            this.unitsPerTileY = unitsPerTileY;
        }
    }

    public TileMapRendererLoader(FileHandleResolver resolver) {
        super(resolver);
    }

    @Override
    public Array<AssetDescriptor> getDependencies(String fileName, TileMapParameter parameter) {
        if (parameter == null)
            throw new IllegalArgumentException("Missing TileMapRendererParameter: " + fileName);
        return null;
    }

    @Override
    public TileMapRenderer load(AssetManager assetManager, String fileName, TileMapParameter parameter) {
        TiledMap map = TiledLoader.createMap(resolve(fileName));
        TileAtlas atlas = new TileAtlas(map, resolve(parameter.imageDirectory));
        if (parameter.unitsPerTileX == 0 || parameter.unitsPerTileY == 0)
            return new TileMapRenderer(map, atlas, parameter.tilesPerBlockX, parameter.tilesPerBlockY);
        else
            return new TileMapRenderer(map, atlas, parameter.tilesPerBlockX, parameter.tilesPerBlockY,
                    parameter.unitsPerTileX, parameter.unitsPerTileY);
    }
}