예제 #1
0
        private void fixData(JToken data, JsonResetInfo resetInfo)
        {
            if (data != null && data.HasValues == true)
            {
                if (data[EnumAttriType.path].ToString() == "")
                {
                    return;
                }

                //图片路径(单图是相对fullName,碎图是name)
                string path = data[EnumAttriType.path].ToString();

                //获取图片name
                int    lastIndex = path.LastIndexOf(@"/");
                string name      = path.Substring(lastIndex + 1);

                //有真实图片
                if (dictImgInfo.ContainsKey(name) == true)
                {
                    ImgInfo imgInfo = dictImgInfo[name];

                    //单图
                    if (imgInfo.plist == null)
                    {
                        data[EnumAttriType.path]      = (imgInfo.path + "/" + imgInfo.name).Replace(this.dealImagePath + "/", "");
                        data[EnumAttriType.plistFile] = "";

                        //记录到单图列表
                        resetInfo.addSingleImage(data[EnumAttriType.path].ToString());
                    }
                    //碎图
                    else
                    {
                        data[EnumAttriType.path]      = imgInfo.name;
                        data[EnumAttriType.plistFile] = imgInfo.plist.Replace(this.dealImagePath + "/", "");



                        //记录到plist列表
                        resetInfo.addPlist(data[EnumAttriType.plistFile].ToString());
                    }
                }
                //没真实图片
                else
                {
                    data[EnumAttriType.path]      = "ui/daitu.png"; //图片设置为daitu.png
                    data[EnumAttriType.plistFile] = "";             //plistFile设置为""

                    //记录到单图列表
                    resetInfo.addSingleImage(data[EnumAttriType.path].ToString());
                }
            }
        }
예제 #2
0
        private void checkCCNodeChildren(JToken ccNodeParent, JsonResetInfo resetInfo)
        {
            JToken options = ccNodeParent[EnumAttriType.options];
            //JToken fileData = options[enumAttriType.fileNameData];
            //if (fileData == null)
            //{
            //    fileData = options[enumAttriType.backGroundImageData];
            //}

            //修复数据
            List <string> keyList = EnumAttriType.getImageKeyList();

            foreach (var str in keyList)
            {
                JToken fileData = options[str];
                fixData(fileData, resetInfo);
            }


            foreach (JToken ccNode in ccNodeParent[EnumAttriType.children])
            {
                checkCCNodeChildren(ccNode, resetInfo);
            }
        }
예제 #3
0
        private void dealUiJsonFile(FileInfo file)
        {
            if (file.Extension == EnumFileType.json)
            {
                //if (file.Name == "layout_login.json")
                //{
                //    Console.WriteLine("=================");
                //}

                //if (setNeedFixJsonFileName.Contains(file.Name) == false)
                //{
                //    return;
                //}

                JsonResetInfo resetInfo = new JsonResetInfo();
                JObject       jsonObj   = JsonUtils.getJsonObjFromJsonFile(file.FullName);

                //递归遍历cocos2d的节点树,修改图片路径
                JToken ccNodeRoot = jsonObj.GetValue(EnumAttriType.widgetTree);
                checkCCNodeChildren(ccNodeRoot, resetInfo);

                #region 似乎不需要改textures, texturesPng
                ////修改texturesPng属性
                //JArray imgs = (JArray)jsonObj.GetValue(enumAttriType.texturesPng);
                //foreach (var item in resetInfo.dictSingleImage)
                //{
                //    bool isAdd = true;
                //    foreach (JToken jt in imgs)
                //    {
                //        if (jt.ToString() == item)
                //        {
                //            isAdd = false;
                //            break;
                //        }
                //    }
                //    if (isAdd)
                //    {
                //        imgs.Add(item);
                //    }
                //}

                ////修改textures属性  ,
                ////JArray plists = (JArray)jsonObj.GetValue(enumAttriType.textures);
                ////plists.Clear();
                //foreach (var item in resetInfo.dictPlists)
                //{
                //    //plists.Add(item);
                //    bool isAdd = true;
                //    foreach (JToken jt in imgs)
                //    {
                //        if (jt.ToString() == item)
                //        {
                //            isAdd = false;
                //            break;
                //        }
                //    }
                //    if (isAdd)
                //    {
                //        imgs.Add(item);
                //    }
                //}
                #endregion

                //拷贝图片(做了链接,不需要拷贝了)
                //string strUIProjectResPath = Path.Combine(file.DirectoryName, "../Resources");
                //foreach (var item in resetInfo.dictSingleImage)
                //{
                //    string srcSingleImgFullName = Path.Combine(this.dealImagePath, item);

                //    string destSingleImgFullName = Path.Combine(strUIProjectResPath, item);

                //    FileUtils.copyFile(srcSingleImgFullName, destSingleImgFullName, true);
                //}
                //foreach(var item in resetInfo.dictPlists)
                //{
                //    string srcPlistFullName = Path.Combine(this.dealImagePath, item);
                //    string srcImageFullName = srcPlistFullName.Replace(EnumFileType.plist, EnumFileType.png);
                //    if (File.Exists(srcImageFullName) == false)
                //    {
                //        srcImageFullName = srcPlistFullName.Replace(EnumFileType.plist, EnumFileType.jpg);
                //    }

                //    string destPlistFullName = srcPlistFullName.Replace(this.dealImagePath, strUIProjectResPath);
                //    string destImageFullName = srcImageFullName.Replace(this.dealImagePath, strUIProjectResPath);

                //    FileUtils.copyFile(srcPlistFullName, destPlistFullName, true);
                //    FileUtils.copyFile(srcImageFullName, destImageFullName, true);
                //}

                //保存到文件
                JsonUtils.writeJsonStrToFile(jsonObj, file.FullName);
                //LogUtils.WriteLine("json文件修改=====>{0}\n", file.FullName);

                //将json文件拷贝到转换成lua的路径
                FileUtils.copyFile(file.FullName, Path.Combine(this.parseToolPath + @"\json", file.Name), true);
            }
        }