private void RetrieveItemAssetsFromRepository ( ItemId itemId, string itemType, string thumbnailUrl, string styleName, IEnumerable <Asset> assets ) { GameFacade.Instance.RetrieveProxy <ClientAssetRepository>().LoadAssetFromPath <ImageAsset> ( thumbnailUrl, delegate(ImageAsset imageAsset) { Texture2D fullImage = imageAsset.Texture2D; Texture2D thumbnail = TextureUtility.ResizeTexture(fullImage, THUMBNAIL_SIZE, THUMBNAIL_SIZE); TexturePixelSource fullImageSource = new TexturePixelSource(fullImage); LayeredTexture textureBuilder = new LayeredTexture(fullImageSource.Width, fullImageSource.Height, true); PixelSource fixinIcon = new TexturePixelSource(mNeedsFixinIconTexture); // normal and normalFixin textureBuilder.AddLayer("Main", fullImageSource); textureBuilder.FlattenLayers(); Texture2D normal = TextureUtility.CopyTexture(textureBuilder.Texture2D); textureBuilder.AddLayer("FixinIcon", fixinIcon); textureBuilder.MoveLayerRelative("FixinIcon", 10, fullImageSource.Height - 18 - THUMBNAIL_SIZE); textureBuilder.FlattenLayers(); Texture2D normalFixin = TextureUtility.CopyTexture(textureBuilder.Texture2D); normal.Apply(); normalFixin.Apply(); Pair <Texture2D> fullImagePair = new Pair <Texture2D>(fullImage, normalFixin); ClothingItem clothingItem = new ClothingItem(itemId, itemType, fullImagePair, thumbnail, styleName, assets); mItemIdsToClothingItems.Add(itemId, clothingItem); IList <ClothingItem> clothingItemsInType; if (mItemTypeToClothingItem.TryGetValue(itemType, out clothingItemsInType)) { clothingItemsInType.Add(clothingItem); } else { mItemTypeToClothingItem.Add(itemType, new List <ClothingItem>()); mItemTypeToClothingItem[itemType].Add(clothingItem); } textureBuilder.Dispose(); } ); }
private static TexturePixelSource TexturePixelSourceFromNode(XmlNode node, int resultSize) { TexturePixelSource result; XmlAttribute pathAttrib = node.Attributes["path"]; if (pathAttrib != null) { Texture2D loadedTexture = (Texture2D)Resources.Load(pathAttrib.InnerText); if (loadedTexture == null) { throw new Exception("Unable to find Texture at Path (" + pathAttrib.InnerText + ")"); } loadedTexture = TextureUtility.ResizeTexture(loadedTexture, resultSize, resultSize); result = new TexturePixelSource(loadedTexture); } else { throw new Exception("Unable to find path attribute in XmlNode (" + node + ")"); } return(result); }