Exemple #1
0
        public MImgsManager Clone(Form_Main form_MainT)
        {
            MImgsManager newInstance = new MImgsManager(form_MainT);

            for (int i = 0; i < Count(); i++)
            {
                newInstance.Add(this[i].Clone(newInstance), false);
            }
            newInstance.ui = ui;
            return(newInstance);
        }
 public void loadImage()
 {
     try
     {
         MImgsManager imgsManager = ((MImgsManager)parent);
         image = GraphicsUtil.createAlphaPmtImage(imgsManager.form_Main.path_folder, name, strAlphaImage, strPmt, alpha);
         rebindTexture();
     }
     catch (Exception e)
     {
         Console.WriteLine("load Image Error:" + e.Message);
     }
 }
        public MImgElement Clone(MImgsManager parentT)
        {
            MImgElement newElement = new MImgElement(parentT);

            newElement.name           = name + "";
            newElement.image          = image;
            newElement.imageTextured  = imageTextured;
            newElement.forbidOptimize = forbidOptimize;
            newElement.strAlphaImage  = strAlphaImage;
            newElement.strPmt         = strPmt;
            newElement.alpha          = alpha;
            newElement.linkID         = linkID;
            return(newElement);
        }
        public bool renameImage(String newName)
        {
            if (this.name == null)
            {
                return(false);
            }
            //改变文件名称
            String path    = Consts.PATH_PROJECT_FOLDER + Consts.SUBPARH_IMG + name;
            String newPath = Consts.PATH_PROJECT_FOLDER + Consts.SUBPARH_IMG + newName;

            if (File.Exists(newPath))
            {
                MessageBox.Show("已经存在同名文件");
                return(false);
            }
            if (File.Exists(path))
            {
                File.Copy(path, newPath);
                File.Delete(path);
            }
            //检查动画图片中的同类名字
            MImgsManager imsManager = ((MImgsManager)parent).form_Main.form_MAnimation.form_MImgsList.mImgsManager;

            for (int i = 0; i < imsManager.Count(); i++)
            {
                MImgElement imgElement = imsManager[i];
                if (!imgElement.Equals(this) && imgElement.name.Equals(name))
                {
                    imgElement.name = newName;
                }
            }
            //检查地图图片中的同类名字
            imsManager = ((MImgsManager)parent).form_Main.mapImagesManager;
            for (int i = 0; i < imsManager.Count(); i++)
            {
                MImgElement imgElement = imsManager[i];
                if (!imgElement.Equals(this) && imgElement.name.Equals(name))
                {
                    imgElement.name = newName;
                }
            }
            this.name = newName;
            return(true);
        }
        public MParentNode GetTopParent()
        {
            MParentNode parent = GetParent();

            if (parent != null)
            {
                if (!(parent is MSonNode))
                {
                    Console.WriteLine("error");
                }
                while (((MSonNode)parent).GetParent() != null)
                {
                    parent = ((MSonNode)parent).GetParent();
                    if (!(parent is MSonNode))
                    {
                        Console.WriteLine("error");
                    }
                }
            }
            return(parent);
        }
 public void setParent(MImgsManager parentT)
 {
     parent = parentT;
 }
 public MImgElement(MImgsManager parentT)
 {
     this.parent = parentT;
 }
 public MImgElement(String nameT, MImgsManager parentT)
 {
     this.parent = parentT;
     name        = nameT;
     loadImage();
 }
 public void SetParent(MParentNode parentT)
 {
     parent = (MImgsManager)parentT;
 }
Exemple #10
0
        //合并图片资源
        public void combine(MImgsManager src_ImgsManager)
        {
            //检查子文件夹
            if (!Directory.Exists(Consts.PATH_PROJECT_FOLDER + Consts.SUBPARH_IMG))
            {
                Directory.CreateDirectory(Consts.PATH_PROJECT_FOLDER + Consts.SUBPARH_IMG);
            }
            int res = 0;

            //合并
            for (int i = 0; i < src_ImgsManager.Count(); i++)
            {
                MImgElement srcElement   = src_ImgsManager[i];
                String      nameSrc      = srcElement.name;
                MImgElement newElement   = null;
                bool        findSameName = false;
                MImgElement localElement = null;
                //同名检查
                for (int j = 0; j < this.Count(); j++)
                {
                    localElement = this[j];
                    if (localElement.equalsOnName(srcElement))//发现相同的文件名
                    {
                        findSameName = true;
                        break;
                    }
                }
                //同名处理
                if (findSameName)
                {
                    if (res < 2)
                    {
                        res = SmallDialog_MessageBox.getResult("覆盖", "忽略", "全部覆盖", "全部忽略", "发现相同的图片资源“" + localElement.name + "”");
                    }
                    if (res == 0 || res == 2)//覆盖
                    {
                        if (!srcElement.getFullName().Equals(localElement.getFullName()))
                        {
                            IOUtil.Copy(srcElement.getFullName(), localElement.getFullName(), true);
                            if (!srcElement.strAlphaImage.Equals(""))
                            {
                                IOUtil.Copy(srcElement.getFullAlphaName(), localElement.getFullAlphaName(srcElement.strAlphaImage), true);
                            }
                            if (!srcElement.strPmt.Equals(""))
                            {
                                IOUtil.Copy(srcElement.getFullPmtName(), localElement.getFullPmtName(srcElement.strPmt), true);
                            }
                        }
                        localElement.loadImage();
                        newElement = localElement;
                    }
                    else if (res == 1 || res == 3)//忽略新资源
                    {
                        newElement = localElement;
                    }
                }
                else
                {
                    newElement = srcElement;//.Clone(this);
                    this.Add(newElement);
                    IOUtil.Copy(srcElement.getFullName(), newElement.getFullName(srcElement.name), true);
                    if (!srcElement.strAlphaImage.Equals(""))
                    {
                        IOUtil.Copy(srcElement.getFullAlphaName(), localElement.getFullAlphaName(srcElement.strAlphaImage), true);
                    }
                    if (!srcElement.strPmt.Equals(""))
                    {
                        IOUtil.Copy(srcElement.getFullPmtName(), localElement.getFullPmtName(srcElement.strPmt), true);
                    }

                    newElement.loadImage();
                }
                if (this.Equals(form_Main.mapImagesManager))//地图图片
                {
                    TileGfxManager tileGfxManager = form_Main.mapsManager.tileGfxManager;
                    for (int iCM = 0; iCM < tileGfxManager.Count(); iCM++)
                    {
                        MClipsManager clipsManagerElement = tileGfxManager[iCM];
                        for (int k = 0; k < clipsManagerElement.Count(); k++)
                        {
                            MClipElement element = clipsManagerElement[k];
                            if (element.imageElement != null && element.imageElement.Equals(srcElement))
                            {
                                element.imageElement = newElement;
                            }
                        }
                    }
                }
                else if (this.Equals(form_Main.form_MAnimation.form_MImgsList.mImgsManager))//动画图片
                {
                    MClipsManager mClipsManager       = form_Main.form_MAnimation.form_MImgsList.MClipsManager;
                    MClipsManager clipsManagerElement = mClipsManager;
                    for (int k = 0; k < clipsManagerElement.Count(); k++)
                    {
                        MClipElement element = clipsManagerElement[k];
                        if (element.imageElement != null && element.imageElement.Equals(srcElement))
                        {
                            element.imageElement = newElement;
                        }
                    }
                }
            }
        }