Example #1
0
        public static void GenerateLocal(JToken configJToken, string resourcePath, string filePath)
        {
            List <Group> listGroup = new List <Group>();

            GenerateUtil.GenerateConfig(listGroup, configJToken["assetsGroups"], resourcePath);

            //loading组
            var loadingGroup = listGroup.Find(item => item.Name == "loading");

            if (loadingGroup != null)
            {
                List <Res> listPreload = new List <Res>();

                var listConfig = SpecialFolderGenerate.GenerateConfig(resourcePath);
                var listFont   = SpecialFolderGenerate.GenerateFont(resourcePath);

                listPreload.AddRange(listConfig);
                listPreload.AddRange(listFont);

                loadingGroup.listRes.AddRange(listPreload);
                loadingGroup.Keys = loadingGroup.GenerateKey();
            }

            //生成文件
            GenerateUtil.GenerateFile(filePath, listGroup);
        }
Example #2
0
        public static void SheetFolder2Res(string folderPath, string urlRoot, List <Res> list)
        {
            DirectoryInfo folder = new DirectoryInfo(folderPath);

            FileInfo[] files = folder.GetFiles();
            foreach (var item in files)
            {
                var ext       = item.Extension;
                var extension = ext.ToLower();
                var name      = item.Name.Split('.');
                var fileName  = name[0];

                Res res = new Res();
                var url = Helper.GetUrl(urlRoot, item.Name + VersionUtils.GetVersion(item.FullName));
                res.Url  = url;
                res.Name = fileName;

                if (extension == ".png" || extension == ".jpg")
                {
                    res.Type = "image";
                    var existImg = list.Find(n => n.Name == fileName && n.Type == "image");
                    if (existImg != null)
                    {
                        Program.needStop = true;
                        Console.WriteLine("存在重复文件名文件" + urlRoot + "/" + item.Name);
                    }
                    var sheetJson = list.Find(n => n.Name == fileName && n.Type == "json");
                    list.Add(res);

                    if (sheetJson != null)
                    {
                        //sheet
                        sheetJson.Type = "sheet";
                        list.Remove(res);

                        var fullName = item.FullName.Replace("png", "json");
                        //subKeys
                        sheetJson.SubKeys = SpecialFolderGenerate.GenerateSubKeys(fullName);
                    }
                }
                else if (extension == ".json")
                {
                    res.Type = "json";
                    var sheetImg = list.Find(n => n.Name == fileName && n.Type == "image");
                    list.Add(res);

                    if (sheetImg != null)
                    {
                        //sheet
                        res.Type = "sheet";
                        list.Remove(sheetImg);

                        //subKeys
                        res.SubKeys = SpecialFolderGenerate.GenerateSubKeys(item.FullName);
                    }
                }
            }
        }
Example #3
0
 public static void GenerateConfig(List <Group> listGroup, JToken groupConfigs, string resourcePath)
 {
     if (groupConfigs == null)
     {
         Program.ConsoleLog("缺少配置");
         return;
     }
     foreach (var child in groupConfigs)
     {
         var confFolderPath = child["folderPath"].Value <string>();
         var confUrlRoot    = child["urlRoot"].Value <string>();
         var isSingle       = child["single"].Value <bool>();
         var isSheet        = false;
         if (child["sheet"] != null)
         {
             isSheet = child["sheet"].Value <bool>();
         }
         if (isSheet)
         {
             if (isSingle)
             {
                 var singleGroup = SpecialFolderGenerate.SheetFolder2Group(resourcePath + confFolderPath, confUrlRoot);
                 if (singleGroup != null)
                 {
                     SpecialFolderGenerate.CheckDelGroup(singleGroup, listGroup);
                     listGroup.Add(singleGroup);
                 }
             }
             else
             {
                 SpecialFolderGenerate.SheetFolder2Groups(resourcePath + confFolderPath, confUrlRoot, listGroup);
             }
         }
         else
         {
             if (isSingle)
             {
                 var singleGroup = FolderGenerate.Folder2Group(resourcePath + confFolderPath, confUrlRoot);
                 if (singleGroup != null)
                 {
                     listGroup.Add(singleGroup);
                 }
             }
             else
             {
                 FolderGenerate.Folder2Groups(resourcePath + confFolderPath, confUrlRoot, listGroup);
             }
         }
     }
 }
Example #4
0
 //temp sound那种文件夹,根据文件夹下子文件夹生成组,一个文件夹一组
 public static void SheetFolder2Groups(string folderPath, string urlRoot, List <Group> listGroup)
 {
     if (Directory.Exists(folderPath))
     {
         var allFolders = Directory.GetDirectories(folderPath, "*.*", SearchOption.TopDirectoryOnly);
         for (int i = 0; i < allFolders.Length; i++)
         {
             var   path  = allFolders[i];
             Group group = SpecialFolderGenerate.SheetFolder2Group(path, urlRoot);
             if (group != null)
             {
                 SpecialFolderGenerate.CheckDelGroup(group, listGroup);
                 listGroup.Add(group);
             }
         }
     }
 }
Example #5
0
        public static List <Res> SheetFolder2Reses(string folderPath, string urlRoot, List <Res> list)
        {
            SpecialFolderGenerate.SheetFolder2Res(folderPath, urlRoot, list);
            var allFolders = Directory.GetDirectories(folderPath, "*.*", SearchOption.TopDirectoryOnly);

            for (int i = 0; i < allFolders.Length; i++)
            {
                var           path       = allFolders[i];
                DirectoryInfo folder     = new DirectoryInfo(path);
                string        folderName = folder.Name;
                if (Program.CheckWebFolder(folderName))
                {
                    continue;
                }
                var url = Helper.GetUrl(urlRoot, folder.Name);
                SpecialFolderGenerate.SheetFolder2Reses(path, url, list);
            }
            return(list);
        }
Example #6
0
        // folderPath .../assets/temp/avatar
        // urlRoot       assets/temp/(avatar)
        public static Group SheetFolder2Group(string folderPath, string urlRoot)
        {
            DirectoryInfo folder     = new DirectoryInfo(folderPath);
            string        folderName = folder.Name;

            if (Program.CheckWebFolder(folderName))
            {
                return(null);
            }
            Group group = new Group();

            group.Name = folderName;//temp下子文件夹
            List <Res> list = new List <Res>();
            var        url  = Helper.GetUrl(urlRoot, folderName);

            SpecialFolderGenerate.SheetFolder2Reses(folderPath, url, list);
            group.listRes = list;
            group.Keys    = group.GenerateKey();
            return(group);
        }