Exemple #1
0
        //替换引用
        public void replaceHandler(MClipElement toReplace, MClipElement toCompare)
        {
            MActorsManager MAM = form_Main.form_MAnimation.form_MActorList.actorsManager;

            //转移引用
            for (int i1 = 0; i1 < MAM.Count(); i1++)
            {
                for (int i2 = 0; i2 < MAM[i1].Count(); i2++)
                {
                    for (int i3 = 0; i3 < MAM[i1][i2].Count(); i3++)
                    {
                        for (int i4 = 0; i4 < MAM[i1][i2][i3].Count(); i4++)
                        {
                            for (int i5 = 0; i5 < MAM[i1][i2][i3][i4].Count(); i5++)
                            {
                                for (int i6 = 0; i6 < MAM[i1][i2][i3][i4][i5].Count(); i6++)
                                {
                                    MFrameUnit unit = MAM[i1][i2][i3][i4][i5][i6];
                                    if (unit is MFrameUnit_Bitmap)
                                    {
                                        MFrameUnit_Bitmap unitBitmap = (MFrameUnit_Bitmap)unit;
                                        if (unitBitmap.clipElement.Equals(toCompare))
                                        {
                                            unitBitmap.clipElement = toReplace;
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
        //刷新Anims数据状态
        public void updateAnimsItems()
        {
            noEvent = true;

            for (int i = 0; i < listBox_Anims.Items.Count; i++)
            {
                if (listBox_Anims.GetItemCheckState(i) == CheckState.Checked)
                {
                    continue;
                }
                MActorsManager actorsManager = srcForm.form_MAnimation.form_MActorList.actorsManager;
                MActor         actor         = actorsManager.getActorBySumID(i);
                bool           used          = false;
                for (int j = 0; j < ListBox_AnteType.Items.Count; j++)
                {
                    if (ListBox_AnteType.GetItemCheckState(j) == CheckState.Checked)
                    {
                        Antetype anteType = (Antetype)srcForm.mapsManager.antetypesManager.getAntetypeBySumID(j);
                        if (anteType.Actor != null && anteType.Actor.Equals(actor))
                        {
                            used = true;
                            break;
                        }
                    }
                }
                if (used)
                {
                    listBox_Anims.SetItemCheckState(i, CheckState.Checked);
                }
            }
            noEvent = false;
        }
Exemple #3
0
        public MActorsManager actorsManager = null;    //
        //public ArrayList antetypesList = new ArrayList();
        //public ObjectVector antetypeFolders = new ObjectVector();//角色原型文件夹列表
        public AntetypesManager(MapsManager mapsManagerT, MActorsManager actorsManagerT)
        {
            mapsManager   = mapsManagerT;
            actorsManager = actorsManagerT;
            AntetypeFolder defFolder = new AntetypeFolder(this);

            this.Add(defFolder);
        }
 public static List<ActorAndFolder> getActors(MActorsManager actorsManagerT)
 {
     actorsManager = actorsManagerT;
     actors.Clear();
     Form_CreateAnteType dialog = new Form_CreateAnteType();
     dialog.ShowDialog();
     actorsManager = null;
     return actors;
 }
        public static List <ActorAndFolder> getActors(MActorsManager actorsManagerT)
        {
            actorsManager = actorsManagerT;
            actors.Clear();
            Form_CreateAnteType dialog = new Form_CreateAnteType();

            dialog.ShowDialog();
            actorsManager = null;
            return(actors);
        }
Exemple #6
0
        protected override void updateTo(HistoryValue valueT)
        {
            HistoryValue_Action value = (HistoryValue_Action)valueT;
            MActorsManager      MAM   = container.form_MA.form_MActorList.actorsManager;

            //这里会引起错误
            MAM[value.actorFolderID][value.actorID][value.actionID] = (MAction)value.timeLineHoder;
            container.form_MA.form_MActorList.setCurrentActorFolder(value.actorFolderID, false, 0);
            container.form_MA.form_MActorList.setCurrentActor(value.actorID, false, 1);
            container.form_MA.form_MActorList.setCurrentAction(value.actionID, false, 2);
            container.form_MA.form_MTimeLine.setTimeLinePos(value.timeLinePos);
            container.form_MA.refreshActionUIs();
        }
        //返回使用情况
        public virtual String getUsedInfor()
        {
            String         s      = "";
            int            number = 0;
            MActorsManager MAM    = null;

            if (clipsManager.Equals(clipsManager.form_Main.form_MapImagesManager.MClipsManager))
            {
                MAM = clipsManager.form_Main.form_MAnimation.form_MActorList.actorsManager;
            }
            else if (clipsManager.Equals(clipsManager.form_Main.animClipsManagerForExport))
            {
                MAM = clipsManager.form_Main.animActorsManagerExport;
            }
            if (MAM == null)
            {
                return(s);
            }
            for (int i1 = 0; i1 < MAM.Count(); i1++)
            {
                for (int i2 = 0; i2 < MAM[i1].Count(); i2++)
                {
                    for (int i3 = 0; i3 < MAM[i1][i2].Count(); i3++)
                    {
                        for (int i4 = 0; i4 < MAM[i1][i2][i3].Count(); i4++)
                        {
                            for (int i5 = 0; i5 < MAM[i1][i2][i3][i4].Count(); i5++)
                            {
                                for (int i6 = 0; i6 < MAM[i1][i2][i3][i4][i5].Count(); i6++)
                                {
                                    MFrameUnit unit = MAM[i1][i2][i3][i4][i5][i6];
                                    if (unit is MFrameUnit_Bitmap)
                                    {
                                        MFrameUnit_Bitmap unitBitmap = (MFrameUnit_Bitmap)unit;
                                        if (unitBitmap.clipElement.Equals(this))
                                        {
                                            s += "" + MAM[i1].name + "->" + MAM[i1][i2].name + "->" + MAM[i1][i2][i3].name + "->" +
                                                 MAM[i1][i2][i3][i4].name + "->第" + MAM[i1][i2][i3][i4][i5].timeBegin + "帧" + "->第" +
                                                 MAM[i1][i2][i3][i4][i5][i6].GetID() + "个单元" + "\n";
                                            number++;
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
            s += "共被使用了" + number + "次\n";
            return(s);
        }
        //返回是用次数
        public virtual int getUsedTime()
        {
            int            number        = 0;
            MActorsManager MAM           = null;
            MClipsManager  clipsManagerM = clipsManager.form_Main.form_MAnimation.form_MImgsList.MClipsManager;

            Console.WriteLine("m:" + clipsManagerM.GetHashCode() + ",c:" + clipsManager.GetHashCode());
            if (clipsManager.Equals(clipsManagerM))
            {
                MAM = clipsManager.form_Main.form_MAnimation.form_MActorList.actorsManager;
            }
            else if (clipsManager.Equals(clipsManager.form_Main.animClipsManagerForExport))
            {
                MAM = clipsManager.form_Main.animActorsManagerExport;
            }
            if (MAM == null)
            {
                return(0);
            }
            for (int i1 = 0; i1 < MAM.Count(); i1++)
            {
                for (int i2 = 0; i2 < MAM[i1].Count(); i2++)
                {
                    for (int i3 = 0; i3 < MAM[i1][i2].Count(); i3++)
                    {
                        for (int i4 = 0; i4 < MAM[i1][i2][i3].Count(); i4++)
                        {
                            for (int i5 = 0; i5 < MAM[i1][i2][i3][i4].Count(); i5++)
                            {
                                for (int i6 = 0; i6 < MAM[i1][i2][i3][i4][i5].Count(); i6++)
                                {
                                    MFrameUnit unit = MAM[i1][i2][i3][i4][i5][i6];
                                    if (unit is MFrameUnit_Bitmap)
                                    {
                                        MFrameUnit_Bitmap unitBitmap = (MFrameUnit_Bitmap)unit;
                                        if (unitBitmap.clipElement != null && unitBitmap.clipElement.Equals(this))
                                        {
                                            number++;
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
            return(number);
        }
 public Form_MActorsList(Form_MAnimation form_MAT)
 {
     InitializeComponent();
     form_MA = form_MAT;
     actorsManager = new MActorsManager(this);
 }
 public void resExport_Animation(String subFolderName, String strFormat, SmallDialog_ExportConfig dialogRes)
 {
     //克隆会改变的文档数据
     animClipsManagerForExport = form_MAnimation.form_MImgsList.MClipsManager.CloneForExport();
     animImgsManagerForExport = form_MAnimation.form_MImgsList.mImgsManager.Clone();
     animActorsManagerExport = form_MAnimation.form_MActorList.actorsManager.Clone();
     //关联引用(动画->切块)
     MActorsManager MAM = animActorsManagerExport;     
     for (int i1 = 0; i1 < MAM.Count(); i1++)
     {
         for (int i2 = 0; i2 < MAM[i1].Count(); i2++)
         {
             for (int i3 = 0; i3 < MAM[i1][i2].Count(); i3++)
             {
                 for (int i4 = 0; i4 < MAM[i1][i2][i3].Count(); i4++)
                 {
                     for (int i5 = 0; i5 < MAM[i1][i2][i3][i4].Count(); i5++)
                     {
                         for (int i6 = 0; i6 < MAM[i1][i2][i3][i4][i5].Count(); i6++)
                         {
                             MFrameUnit unit = MAM[i1][i2][i3][i4][i5][i6];
                             if (unit is MFrameUnit_Bitmap)
                             {
                                 MFrameUnit_Bitmap unitBitmap = (MFrameUnit_Bitmap)unit;
                                 unitBitmap.clipElement = animClipsManagerForExport[unitBitmap.clipElement.GetID()];
                             }
                         }
                     }
                 }
             }
         }
     }
     //关联引用(切块->图片)
     for (int i=0;i<animClipsManagerForExport.Count();i++)
     {
         MClipElement clip = animClipsManagerForExport[i];
         clip.imageElement = animImgsManagerForExport[clip.imageElement.GetID()];
     }
     //清除冗余
     animClipsManagerForExport.ClearSpilth(false);
     //新生成的图片组
     MImgsManager mImgsManagerGenerated = new MImgsManager();
     //获取链接分组列表
     List<List<MImgElement>> allGroups = animImgsManagerForExport.getAllUsedGroups();
     //处理优化分组
     for (int i = 0; i < allGroups.Count - 1; i++)
     {
         List<MImgElement> group = allGroups[i];
         Size needSize;
         int usedSpace;
         Image imgExort;
         MImgElement imgElement = MImgsManager.optimizeClips(group, out needSize, out usedSpace, out imgExort, true);
         mImgsManagerGenerated.Add(imgElement);
         SaveGenImage(strFormat, subFolderName, imgElement);
     }
     //处理禁止优化分组
     List<MImgElement> groupForbidOpt = allGroups[allGroups.Count-1];
     foreach (MImgElement imgElement in groupForbidOpt)
     {
         mImgsManagerGenerated.Add(imgElement);
         imgElement.image = GraphicsUtil.getMatchImage((Bitmap)imgElement.image);
         SaveGenImage(strFormat, subFolderName, imgElement);
     }
     //变更图片管理器
     animImgsManagerForExport = mImgsManagerGenerated;
     dialogRes.setStep(1, 1);
 }
Exemple #11
0
 public Form_MActorsList(Form_MAnimation form_MAT)
 {
     InitializeComponent();
     form_MA       = form_MAT;
     actorsManager = new MActorsManager(this);
 }
        //刷新数据显示========================================================
        public void updateRes()
        {
            //载入地图
            listBox_Maps.Items.Clear();
            for (int i = 0; i < srcForm.mapsManager.getElementCount(); i++)
            {
                String text = "" + srcForm.mapsManager.getElement(i).getName();
                listBox_Maps.Items.Add(text);
            }
            listBox_Maps.Refresh();
            //载入角色原型
            ListBox_AnteType.Items.Clear();
            for (int i = 0; i < srcForm.mapsManager.antetypesManager.Count(); i++)
            {
                AntetypeFolder folder = srcForm.mapsManager.antetypesManager[i];
                for (int j = 0; j < folder.Count(); j++)
                {
                    Antetype anteType = folder[i];
                    String   text     = "";
                    if (anteType != null)
                    {
                        text = "[" + anteType.getFolderName() + "]" + anteType.name;
                        if (anteType.Actor == null)
                        {
                            MessageBox.Show("角色原型“" + anteType.name + "”指向的角色为空!", "警告", MessageBoxButtons.OK);
                        }
                    }
                    else
                    {
                        text = "错误的角色原型";
                    }
                    ListBox_AnteType.Items.Add(text);
                }
            }
            ListBox_AnteType.Refresh();
            //载入动画
            listBox_Anims.Items.Clear();
            MActorsManager actorsManager = srcForm.form_MAnimation.form_MActorList.actorsManager;

            for (int i = 0; i < actorsManager.Count(); i++)
            {
                MActorFolder folder = actorsManager[i];
                for (int j = 0; j < folder.Count(); j++)
                {
                    MActor actor = folder[j];
                    String text  = folder.name + "_" + actor.name;
                    listBox_Anims.Items.Add(text);
                }
            }
            listBox_Anims.Refresh();
            //载入触发器
            listBox_Triggers.Items.Clear();
            listBox_Triggers.Refresh();
            //载入属性表
            listBox_Props.Items.Clear();
            for (int i = 0; i < srcForm.propertyTypesManager.getElementCount(); i++)
            {
                String text = "" + ((PropertyTypeElement)srcForm.propertyTypesManager.getElement(i)).name;
                listBox_Props.Items.Add(text);
            }
            listBox_Props.Refresh();
        }