public void loadTiles(String tileSetName, int pixelOffset)
	{
		int actualPixelOffset = pixelOffset * 2;
		try
		{
			fullTilesetImage = ImageIO.read(new File(tileSetLocation + tileSetName));

			int numTilesAcross = fullTilesetImage.getWidth() / (tileSize + actualPixelOffset);
			int numTilesDown = fullTilesetImage.getHeight() / (tileSize + actualPixelOffset);

			// Woo, initialize some stuff for the following loops
			tilesByID = new ArrayList<Tile>();
			BufferedImage currentTileImage;

			for(int row = 0; row < numTilesDown; row++)
			{
				for(int column = 0; column < numTilesAcross; column++)
				{
					// Grabbing a single tile's image from the main image. Pixel offset is used to
					// ignore the extra pixels.
					currentTileImage = fullTilesetImage.getSubimage((column * tileSize)
							+ (actualPixelOffset * column), (row * tileSize)
							+ (actualPixelOffset * row), tileSize, tileSize);

					// The prototype tileset stuff is set up so that all the blocked things are on a
					// row other than the first. The top row contains all background elements
					// (currently).
					if(row == 0)
					{
						Tile currentTile = new Tile(currentTileImage, false);
						tilesByID.add(currentTile);
					}
					else
					{
						Tile currentTile = new Tile(currentTileImage, true);
						tilesByID.add(currentTile);
					}
				}
			}
		} catch (IOException e)
		{
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}