Ejemplo n.º 1
0
        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();
            }
            );
        }
Ejemplo n.º 2
0
        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);
        }