//串行化输入与输出=================================================================== #region SerializeAble Members public void ReadObject(System.IO.Stream s) { short actorFolderIndex = IOUtil.readShort(s); short actorIndex = IOUtil.readShort(s); AntetypesManager antetypesManager = (AntetypesManager)GetTopParent(); if (actorFolderIndex >= 0 && actorIndex >= 0) { if (antetypesManager.actorsManager[actorFolderIndex] == null || antetypesManager.actorsManager[actorFolderIndex][actorIndex] == null) { MessageBox.Show("角色原型中动画索引丢失,需重新指定。", "提醒", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { this.Actor = antetypesManager.actorsManager[actorFolderIndex][actorIndex]; } } name = IOUtil.readString(s); int imgMappingLen = IOUtil.readInt(s); for (int i = 0; i < imgMappingLen; i++) { ImageMappingElement imgMapElement = new ImageMappingElement(antetypesManager.mapsManager.form_Main.form_MAnimation.form_MImgsList.mImgsManager); imgMapElement.ReadObject(s); imgMappingList.addElement(imgMapElement); } }
private void init() { if (antetype == null) { return; } noEvent = true; //引用设定界面刷新 textBox_Name.Text = antetype.name; comboBox_folder.Items.Clear(); AntetypesManager antetypesManager = ((AntetypesManager)antetype.GetTopParent()); for (int i = 0; i < antetypesManager.actorsManager.Count(); i++) { MActorFolder actorsFolder = antetypesManager.actorsManager[i]; comboBox_folder.Items.Add(actorsFolder.name); } if (antetype.Actor != null) { comboBox_folder.SelectedIndex = ((MActorFolder)(antetype.Actor.GetParent())).GetID(); refreshActorList(); if (antetype.Actor != null) { comboBox_Actor.SelectedIndex = antetype.Actor.GetID(); } } //图片映射界面刷新 refreshImgMapList(); //刷新角色预览 refreshActor(); noEvent = false; }
//合并 public void combine(AntetypesManager src_Manager, ArrayList anteTypesID) { //开始合并 for (int i = 0; i < anteTypesID.Count; i++) { int id = Convert.ToInt32(anteTypesID[i]); Antetype srcElement = src_Manager.getAntetypeBySumID(id); Antetype newElement = null; //检查是否已经含有同名和同文件夹的角色原型 for (int j = 0; j < this.GetSonsCount(); j++) { Antetype localAT = (Antetype)getAntetypeBySumID(j); if (localAT.equalsNameAndFolder(srcElement)) { newElement = localAT; } } //没有找到的话,则将源角色原型加入当前列表,优先加入到相同文件夹,如果文件夹不存在则创建 if (newElement == null) { AntetypeFolder folderDest = this.getFolderByName(srcElement.getFolderName()); if (folderDest == null) { folderDest = new AntetypeFolder(this); folderDest.name = srcElement.getFolderName(); this.Add(folderDest); } newElement = srcElement.clone(folderDest); folderDest.Add(newElement); } //转移源角色原型引用 for (int k = 0; k < src_Manager.mapsManager.getElementCount(); k++) { MapElement map = src_Manager.mapsManager.getElement(k); for (int x = 0; x < map.getMapW(); x++) { for (int y = 0; y < map.getMapH(); y++) { MapTileElement mapTile = map.getTile(x, y); for (int z = 0; z < mapTile.tile_objectList.Count; z++) { if (mapTile.tile_objectList[z] != null && mapTile.tile_objectList[z].antetype != null && mapTile.tile_objectList[z].antetype.Equals(srcElement)) { mapTile.tile_objectList[z].antetype = newElement; } } if (mapTile.tile_object_mask != null && mapTile.tile_object_mask.antetype != null && mapTile.tile_object_mask.antetype.Equals(srcElement)) { mapTile.tile_object_mask.antetype = newElement; } if (mapTile.tile_object_bg != null && mapTile.tile_object_bg.antetype != null && mapTile.tile_object_bg.antetype.Equals(srcElement)) { mapTile.tile_object_bg.antetype = newElement; } } } } } }
//刷新可选角色列表 private void refreshActorList() { AntetypesManager antetypesManager = (AntetypesManager)antetype.GetTopParent(); MActorFolder actorsFolder = antetypesManager.actorsManager[comboBox_folder.SelectedIndex]; comboBox_Actor.Items.Clear(); if (actorsFolder != null) { for (int i = 0; i < actorsFolder.Count(); i++) { MActor actor = actorsFolder[i]; comboBox_Actor.Items.Add(actor.name); } } }
//为下拉列表框添加图片选项 private void addItemsToComboBox(ComboBox comboBox) { if (antetype == null || comboBox == null) { return; } AntetypesManager antetypesManager = (AntetypesManager)antetype.GetTopParent(); MImgsManager imgsManager = antetypesManager.mapsManager.form_Main.form_MAnimation.form_MImgsList.mImgsManager; for (int i = 0; i < imgsManager.Count(); i++) { MImgElement imgElement = imgsManager[i]; comboBox.Items.Add(imgElement.getShowName()); } }
private void comboBox_Actor_SelectedIndexChanged(object sender, EventArgs e) { if (noEvent || antetype == null) { return; } AntetypesManager antetypesManager = (AntetypesManager)antetype.GetTopParent(); MActorFolder actorsFolder = antetypesManager.actorsManager[comboBox_folder.SelectedIndex]; MActor actor = actorsFolder[comboBox_Actor.SelectedIndex]; if (actor != null) { antetype.Actor = actor; antetype.name = antetype.Actor.name + ""; textBox_Name.Text = antetype.name; this.refreshActor(); } }
private void button_AddMap_Click(object sender, EventArgs e) { if (noEvent || antetype == null) { return; } AntetypesManager antetypesManager = (AntetypesManager)antetype.GetTopParent(); MImgsManager imgsManager = antetypesManager.mapsManager.form_Main.form_MAnimation.form_MImgsList.mImgsManager; if (imgsManager.Count() > 0) { ImageMappingElement element = new ImageMappingElement(imgsManager); element.ImgFrom = imgsManager[0]; element.ImgTo = imgsManager[0]; //添加到数据 antetype.imgMappingList.addElement(element); //添加到UI addImgMapElement(element); //刷新显示 refreshActor(); } }
//下拉列表框事件 private void ComboBox_SelectIndexChanged(object sender, EventArgs e) { if (noEvent || antetype == null) { return; } if (sender is ComboBox) { noEvent = true; ComboBox comboBox = (ComboBox)sender; int ctrID = panel_ImgMap.Controls.IndexOf(comboBox); ImageMappingElement imgMapElement = (ImageMappingElement)antetype.imgMappingList.getElement(ctrID / 3); AntetypesManager antetypesManager = (AntetypesManager)antetype.GetTopParent(); MImgsManager imgsManager = antetypesManager.mapsManager.form_Main.form_MAnimation.form_MImgsList.mImgsManager; if (ctrID % 3 == 1) { imgMapElement.ImgFrom = imgsManager[comboBox.SelectedIndex]; } else if (ctrID % 3 == 2) { imgMapElement.ImgTo = imgsManager[comboBox.SelectedIndex]; } CheckBox checkBox = (CheckBox)panel_ImgMap.Controls[(ctrID / 3) * 3]; if (imgMapElement.ImgFrom.image != null && imgMapElement.ImgTo.image != null && (!imgMapElement.ImgFrom.image.Size.Equals(imgMapElement.ImgTo.image.Size))) { checkBox.Text = "!"; } else { checkBox.Text = ""; } checkBox.Refresh(); //刷新显示 refreshActor(); noEvent = false; } }
//返回角色原型的使用次数(搜索所有地图的所有单元) public int getUsedTime() { AntetypesManager antetypesManager = (AntetypesManager)this.GetTopParent(); return(antetypesManager.mapsManager.getTileUsedTime(this)); }
public AntetypeFolder(AntetypesManager antetypesManager) { parent = antetypesManager; name = "默认文件夹"; }