Example #1
0
		private void Build(PivotCollection collection, Stream stream)
		{
			try
			{
				int mortonStart = MortonHelpers.LevelXYToMortonStart(Level, X, Y, AllTileDefaults.CollectionTileMaxLevel);

				// Draw the sub-tiles into the tile
				int subTileCount = MortonHelpers.LevelToSubTileCount(Level, AllTileDefaults.CollectionTileMaxLevel);
				int subTileSize = AllTileDefaults.CollectionTileSize / subTileCount;
				using (CollectionTile tile = new CollectionTile(AllTileDefaults.CollectionTileSize, subTileSize))
				{
					for (int subTileX = 0; subTileX < subTileCount; ++subTileX)
					{
						for (int subTileY = 0; subTileY < subTileCount; ++subTileY)
						{
							int uniqueID = mortonStart + MortonHelpers.XYToMorton(subTileX, subTileY);
							Item item = collection.FindItem(uniqueID);
							if (item == null)
								continue;
							ImageProviderBase imageProvider = item.ItemImage.GetImageProvider();
							tile.Draw(imageProvider, subTileX * subTileSize, subTileY * subTileSize);
						}
					}

					tile.Save(stream, ImageFormat.Png);
				}
			}
			catch (Exception ex)
			{
				ex.GetType();
			}
		}