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