static public XmlData.ChildNode GetXmlChildNode(int id) { XmlData.ChildNode node = null; if (Program.AnimationXML.Childs != null && Program.AnimationXML.Childs.Child != null) { foreach (var n in Program.AnimationXML.Childs.Child) { if (n.Id == id) { return(n); } } } return(node); }
static public void UpdateXmlChildNode(XmlData.ChildNode oldNode, XmlData.ChildNode newNode) { if (Program.AnimationXML.Childs == null || Program.AnimationXML.Childs.Child == null || oldNode == null) { var newNodes = new XmlData.ChildNode[1]; newNodes[0] = newNode; if (Program.AnimationXML.Childs == null) { Program.AnimationXML.Childs = new XmlData.ChildsNode(); } if (Program.AnimationXML.Childs.Child == null) { Program.AnimationXML.Childs.Child = new XmlData.ChildNode[0]; } Program.AnimationXML.Childs.Child = Program.AnimationXML.Childs.Child.Concat(newNodes).ToArray(); } else { foreach (var n in Program.AnimationXML.Childs.Child) { if (n.Id == oldNode.Id) { if (newNode == null) { var newChild = new List <XmlData.ChildNode>(Program.AnimationXML.Childs.Child); newChild.Remove(n); Program.AnimationXML.Childs.Child = newChild.ToArray(); } else { n.Next = newNode.Next; n.Id = newNode.Id; n.X = newNode.X; n.Y = newNode.Y; } break; } } } }
private void insertNodeToolStripMenuItem_Click(object sender, EventArgs e) { var cms = contextMenuStrip1; var lv = cms.SourceControl as ListView; if (lv == listView1) // spawn { treeView1.SelectedNode = treeView1.Nodes[0].Nodes[2]; var node = new XmlData.SpawnNode(); for (var j = 1; j <= listView1.Items.Count + 2; j++) { if (XmlTools.GetXmlSpawnNode(j) == null) { node.Id = j; node.Next = new XmlData.NextNode(); node.Probability = 10; node.X = ""; node.Y = ""; XmlTools.UpdateXmlSpawnNode(null, node); MainWindow.MainWin.UpdateData(); break; } } } else if (lv == listView2) // animations { treeView1.SelectedNode = treeView1.Nodes[0].Nodes[3]; var node = new XmlData.AnimationNode(); for (var j = 1; j <= listView2.Items.Count + 2; j++) { if (XmlTools.GetXmlAnimationNode(j) == null) { node.Id = j; node.Name = "New"; XmlTools.UpdateXmlAnimationNode(null, node); MainWindow.MainWin.UpdateData(); break; } } } else if (lv == listView3) // childs { treeView1.SelectedNode = treeView1.Nodes[0].Nodes[4]; var node = new XmlData.ChildNode(); for (var j = 1; j <= listView3.Items.Count + 2; j++) { if (XmlTools.GetXmlChildNode(j) == null) { node.Id = j; node.Next = j; XmlTools.UpdateXmlChildNode(null, node); MainWindow.MainWin.UpdateData(); break; } } } else if (lv == listView4) // sounds { treeView1.SelectedNode = treeView1.Nodes[0].Nodes[5]; var node = new XmlData.SoundNode(); for (var j = 1; j <= listView4.Items.Count + 2; j++) { if (XmlTools.GetXmlSoundNode(j) == null) { node.Id = j; XmlTools.UpdateXmlSoundNode(null, node); MainWindow.MainWin.UpdateData(); break; } } } }