/// <summary> /// /// </summary> /// <param name="BaseDirectory"></param> /// <returns></returns> public static LoadResults LoadSystemTextures(string BaseDirectory) { string[] _TextureDirectories = System.IO.Directory.GetDirectories(BaseDirectory); LoadResults _TmpReturn = new LoadResults(); for (int x = 0; x < _TextureDirectories.Count(); x++) { if (!System.IO.File.Exists(_TextureDirectories[x].EnsureDirectoryFormat() + "info.txt")) { continue; } dynamic TextureInfo = ACT.Core.Dynamic.Encoder.LoadFromFile(_TextureDirectories[x].EnsureDirectoryFormat() + "info.txt"); var _MemberNames = TextureInfo.backgrounds.GetMemberNames; for (int xx = 0; xx < _MemberNames.Count; xx++) { if (_MemberNames[xx] == "name") { continue; } TextureInfo _TmpNewTexture = new Assets.TextureInfo(); _TmpNewTexture.FileName = TextureInfo.backgrounds.GetObject(_MemberNames[xx]).GetObject("filename"); if (!System.IO.File.Exists(_TextureDirectories[x].EnsureDirectoryFormat() + _TmpNewTexture.FileName)) { _TmpReturn.TotalImagesFailed++; ErrorLogable.LogError(null, "Image File Not Found: " + _TmpNewTexture.FileName, ACT.Core.Enums.ErrorLevel.Critical); continue; } _TmpReturn.TotalImagesLoaded++; _TmpNewTexture.PackageName = _TextureDirectories[x].GetDirectoryName(); _TmpNewTexture.Description = TextureInfo.backgrounds.GetObject(_MemberNames[xx]).GetObject("description"); _TmpNewTexture.DisplayName = TextureInfo.backgrounds.GetObject(_MemberNames[xx]).GetObject("displayname"); _TmpNewTexture.FileName = TextureInfo.backgrounds.GetObject(_MemberNames[xx]).GetObject("filename"); _TmpNewTexture.ID = TextureInfo.backgrounds.GetObject(_MemberNames[xx]).GetObject("id"); _TmpNewTexture.Name = TextureInfo.backgrounds.GetObject(_MemberNames[xx]).GetObject("name"); _TmpNewTexture.Image = new CompressibleImage(new Bitmap(_TextureDirectories[x].EnsureDirectoryFormat() + _TmpNewTexture.FileName), System.Drawing.Imaging.ImageFormat.Png); _SystemTextureCache.Add(_TmpNewTexture.Name, _TmpNewTexture); } } return(_TmpReturn); }
/// <summary> /// Loads All The System Resources Found In The Directory Specified /// </summary> /// <param name="BaseDirectory"></param> /// <returns></returns> public static LoadResults LoadSystemImages(string BaseDirectory) { LoadResults _TmpReturn = new LoadResults(); if (Directory.Exists(BaseDirectory)) { _SystemImageCache.Clear(); // Load All Objects Found foreach (string _ObjFile in Directory.GetFiles(BaseDirectory)) { if (_ObjFile.EndsWith(".png") == false) { continue; } System.IO.FileInfo _TmpFileInfo = new FileInfo(_ObjFile); _TmpReturn.TotalBytesLoaded += _TmpFileInfo.Length; _TmpFileInfo = null; try { CompressibleImage _TmpImage = new CompressibleImage(Image.FromFile(_ObjFile), System.Drawing.Imaging.ImageFormat.Png); _SystemImageCache.Add(_ObjFile.GetFileName(false), _TmpImage); _TmpReturn.TotalImagesLoaded++; } catch (Exception ex) { ErrorLogable.LogError(ex, "Error Loading Resource: " + BaseDirectory + _ObjFile, ACT.Core.Enums.ErrorLevel.Critical); _TmpReturn.TotalImagesFailed++; } } } else { _TmpReturn.TotalImagesLoaded = -1; ErrorLogable.LogError(null, "Error Loading Resources From Directory: " + BaseDirectory, ACT.Core.Enums.ErrorLevel.Critical); } return(_TmpReturn); }