public bool TextureExist(string path) { path = path.Replace(@"\", @"|"); string[] arr = path.Split('|'); string filename = arr.Last(); string[] folders = arr.Length > 1 ? arr.Take(arr.Length - 1).ToArray() : null; IFolder folder = new ContentFolder(); if (folders != null) { foreach (var folderName in folders) { folder = folder.GetFolder(folderName); } } var mainContentExist = folder.CheckExists($"{filename}.xnb") == ExistenceCheckResult.FileExists || folder.CheckExists($"{filename}.png") == ExistenceCheckResult.FileExists; if (mainContentExist) { return(true); } if (Core.GameOptions.ContentPackNames.Any()) { foreach (var contentPackName in Core.GameOptions.ContentPackNames) { IFolder contentPackContentFolder = new ContentPacksFolder().GetContentPack(contentPackName); if (folders != null) { foreach (var folderName in folders) { contentPackContentFolder = contentPackContentFolder.GetFolder(folderName); } } if (contentPackContentFolder.CheckExists($"{filename}.xnb") == ExistenceCheckResult.FileExists || contentPackContentFolder.CheckExists($"{filename}.png") == ExistenceCheckResult.FileExists) { return(true); } } } return(false); }
public Texture2D GetTexture(string path) { path = path.Replace(@"\", @"|"); string[] arr = path.Split('|'); string filename = arr.Last(); string[] folders = arr.Length > 1 ? arr.Take(arr.Length - 1).ToArray() : null; IFile file = null; IFolder folder = new ContentFolder(); if (folders != null) { foreach (var folderName in folders) { folder = folder.GetFolder(folderName); } } if (folder.CheckExists($"{filename}.xnb") != ExistenceCheckResult.FileExists) { if (folder.CheckExists($"{filename}.png") == ExistenceCheckResult.FileExists) { file = folder.GetFile($"{filename}.png"); } } else { file = folder.GetFile($"{filename}.xnb"); } if (file != null) { return(new TextureFile(file, new TextureFolder(folder, this))); } if (Core.GameOptions.ContentPackNames.Any()) { foreach (var contentPackName in Core.GameOptions.ContentPackNames) { IFolder contentPackContentFolder = new ContentPacksFolder().GetContentPack(contentPackName); if (folders != null) { foreach (var folderName in folders) { contentPackContentFolder = contentPackContentFolder.GetFolder(folderName); } } if (contentPackContentFolder.CheckExists($"{filename}.xnb") != ExistenceCheckResult.FileExists) { if (contentPackContentFolder.CheckExists($"{filename}.png") == ExistenceCheckResult.FileExists) { file = contentPackContentFolder.GetFile($"{filename}.png"); } } else { file = contentPackContentFolder.GetFile($"{filename}.xnb"); } if (file != null) { return(new TextureFile(file, new TextureFolder(folder, this))); } } } return(TextureManager.DefaultTexture); }