/// <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; } } }
/// <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); } } } }