Example #1
0
 /// <summary>
 /// Loads given texture(s) from atlas.
 /// </summary>
 /// <param name="valueAsString"></param>
 /// <param name="atlasedTexture"></param>
 public void LoadAtlasedTexture(string valueAsString, AtlasedTexture atlasedTexture)
 {
     //if made up of seperate textures
     if (NineSliceExtensions.GetIfShouldUsePattern(valueAsString))
     {
         SetTexturesUsingPattern(valueAsString, SystemManagers.Default, true);
     }
     else //single texture
     {
         foreach (var sprite in mSprites)
         {
             sprite.AtlasedTexture = atlasedTexture;
         }
     }
 }
Example #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="anyOf9Textures"></param>
        /// <param name="managers"></param>
        /// <param name="inAtlas">True if textures are atlased.</param>
        public void SetTexturesUsingPattern(string anyOf9Textures, SystemManagers managers, bool inAtlas)
        {
            string absoluteTexture = anyOf9Textures;

            if (FileManager.IsRelative(absoluteTexture))
            {
                absoluteTexture = FileManager.RelativeDirectory + absoluteTexture;

                absoluteTexture = FileManager.RemoveDotDotSlash(absoluteTexture);
            }

            string extension = FileManager.GetExtension(absoluteTexture);

            string bareTexture = NineSliceExtensions.GetBareTextureForNineSliceTexture(absoluteTexture);
            string error;

            if (!string.IsNullOrEmpty(bareTexture))
            {
                if (inAtlas)
                {
                    //loop through all nine sprite names
                    for (var sprite = 0; sprite < NineSliceExtensions.PossibleNineSliceEndings.Count(); sprite++)
                    {
                        var atlasedTexture = LoaderManager.Self.TryLoadContent <AtlasedTexture>
                                                 (bareTexture + NineSliceExtensions.PossibleNineSliceEndings[sprite] + "." + extension);

                        if (atlasedTexture != null)
                        {
                            mSprites[sprite].AtlasedTexture = atlasedTexture;
                        }
                    }
                }
                else
                {
                    for (var sprite = 0; sprite < NineSliceExtensions.PossibleNineSliceEndings.Count(); sprite++)
                    {
                        mSprites[sprite].Texture = LoaderManager.Self.LoadOrInvalid(
                            bareTexture + NineSliceExtensions.PossibleNineSliceEndings[sprite] + "." + extension, managers, out error);
                    }
                }
            }
        }