Twinklebear/LPCGame — pull request #7 by btstevens89 (2012-10-12 19:30:29+00:00)
Title: Added a TileSet Class

### The TileSet class stores Tiles and their associated Textures into maps.
#### Disambiguations
Just to clarify, in this document, from hereon in...
1. Any reference to 'image' is to purely mean the actual image file. NOT anything related to the Image class.
2. There are two types of tilenames.
* The image's tilename. Found in the image's .json file
* The tileset's full tilenames. The image's name, paired with the image's tilename.
* If the image name is "../res/img/forest.png", and it's .json file defines a tile named "Grass - Plain", the image's tilename is "Grass - Plain". The full tilename used for querying will be "forest - Grass - Plain".

#### Functions
There are 4 main functions that will be used.
##### Add()
`void Add(std::string imageFile)`
imageFile should be a path to an image file. There should be an accompanying .json file in the same directory that contains the clips for the image. The .json file should include "name", and "solid" attributes for the clips. There should be no "name" collisions.

This function is used to add an image to the TileSet. The SDL_Texture paired with the path to the image in mImages. The tiles in the image's .json file will be paired with their full tilename in mTileSet.

##### Texture()
`SDL_Texture* Texture(std::string tilename)`
tilename should be the full tilename.

Returns a pointer to it's SDL_Texture.

##### Solid()
`bool Solid(std::string tilename)`
tilename should be the full tilename.

Returns a bool property of Solid.

##### Clip()
`Recti Clip(std::string tilename)`
tilename should be the full tilename.

Returns the Recti of where the tile is found in the image.

##### Other Functions
`int Size()` returns the amount of tiles in the tileset
`iterator Begin()` returns a reference to the first element in the tileset
`iterator End()` returns a reference to the end of the tileset