/*******************************************************************************
* 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.graphics.g2d.tiled;
import java.util.ArrayList;
import java.util.HashMap;
import com.badlogic.gdx.files.FileHandle;
/**
* Contains information from a Tiled Map. Use {@link TiledLoader#createMap(FileHandle)} to fill it.
*
* @author David Fraska
*/
public class TiledMap {
public ArrayList<TiledLayer> layers = new ArrayList<TiledLayer>(4);
public ArrayList<TiledObjectGroup> objectGroups = new ArrayList<TiledObjectGroup>(1);
public ArrayList<TileSet> tileSets = new ArrayList<TileSet>(5);
/** Stores the map properties with a key of the property name. */
public HashMap<String, String> properties = new HashMap<String, String>(2);
private ArrayList<TileProperty> tileProperties = new ArrayList<TileProperty>(0);
public FileHandle tmxFile;
public String orientation;
public int width, height, tileWidth, tileHeight;
/**
* Sets a tile's property. Typically only called by {@link TiledLoader#createMap(FileHandle)}
*
* @param id
* The tile's id
* @param name
* The property name
* @param value
* The property value
*/
public void setTileProperty(int id, String name, String value) {
for (TileProperty tp : tileProperties) {
if (tp.id == id) {
tp.propertyMap.put(name, value);
return;
}
}
// no TileProperty found with the correct id, add a new one
TileProperty tempProperty = new TileProperty();
tempProperty.id = id;
tempProperty.propertyMap.put(name, value);
tileProperties.add(tempProperty);
}
/**
* Gets a tile's property.
*
* @param id
* The tile's id
* @param name
* The property name
* @return The property value
*/
public String getTileProperty(int id, String name) {
for (TileProperty tp : tileProperties) {
if (tp.id == id) {
return tp.propertyMap.get(name);
}
}
return null;
}
class TileProperty {
int id;
HashMap<String, String> propertyMap = new HashMap<String, String>();
}
}