//替换引用 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; }
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); }
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); }
//刷新数据显示======================================================== 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(); }