private void duplicateSelectedToolStripMenuItem_Click(object sender, EventArgs e) { if (SelectedItem == string.Empty) { MessageBox.Show("Nothing to duplicate!"); return; } DPOW.Reader.Animation obj = dpow.getAnimation(treObjects.SelectedNode.Text); if (SelectedItem.Contains("flag")) { int k = int.Parse(SelectedItem.Split('_')[0].Replace("Element", "")); int l = int.Parse(SelectedItem.Split('_')[1].Replace("flag", "")); obj.getFrameOnTime(trcFrameBar.Value).Element.addIcon(DPOW.Reader.Animation.DeepClone <DPOW.Reader.Icon>(dpow.Elements[k].Icons[l])); } else if (SelectedItem.Contains("str")) { int k = int.Parse(SelectedItem.Split('_')[0].Replace("Element", "")); int l = int.Parse(SelectedItem.Split('_')[1].Replace("str", "")); obj.getFrameOnTime(trcFrameBar.Value).Element.addText(DPOW.Reader.Animation.DeepClone <DPOW.Reader.Text>(dpow.Elements[k].Texts[l])); } else if (SelectedItem.Contains("text")) { int k = int.Parse(SelectedItem.Split('_')[0].Replace("Element", "")); int l = int.Parse(SelectedItem.Split('_')[1].Replace("text", "")); obj.getFrameOnTime(trcFrameBar.Value).Element.addImage(DPOW.Reader.Animation.DeepClone <DPOW.Reader.Image>(dpow.Elements[k].Images[l])); } }
private void timeLine1_KeyFrameRemoved(DPOW.Reader.Animation animation, int Time) { DPOW.Reader.Element elem = animation.getFrameOnTime(Time, false).Element; animation.RemoveKeyFrame((short)Time); if (!animation.HasElement(elem)) { dpow.RemoveElement(elem); } trcFrameBar.Maximum = dpow.getAnimation(treObjects.SelectedNode.Text).MaxTime; }
private void pastToolStripMenuItem_Click(object sender, EventArgs e) { DPOW.Reader.Animation obj = dpow.getAnimation(treObjects.SelectedNode.Text); if (Clipboard.ContainsData("DPOWImage")) { DPOW.Reader.Image temp = (DPOW.Reader.Image)DeSerialize(Clipboard.GetData("DPOWImage").ToString()); if (temp.TextureId >= dpow.Textures.Length) { temp.TextureId = 0; } obj.getFrameOnTime(trcFrameBar.Value).Element.addImage(temp); } else if (Clipboard.ContainsData("DPOWText")) { obj.getFrameOnTime(trcFrameBar.Value).Element.addText((DPOW.Reader.Text)DeSerialize(Clipboard.GetData("DPOWText").ToString())); } else if (Clipboard.ContainsData("DPOWIcon")) { obj.getFrameOnTime(trcFrameBar.Value).Element.addIcon((DPOW.Reader.Icon)DeSerialize(Clipboard.GetData("DPOWIcon").ToString())); } drawFrame(); }
private void loadFrame(DPOW.Reader.Animation obj, int time, SceneNode parent) { SceneNode node; if (obj.getFrameOnTime(time) == null) { return; } int objid = obj.getFrameOnTime(time).ElementId; if (mgr.HasSceneNode("Element" + objid.ToString() + "_node")) { node = mgr.GetSceneNode("Element" + objid.ToString() + "_node"); if (node.Parent != null) { node.Parent.RemoveChild(node); } parent.AddChild(node); } else { node = buildElement(dpow.Elements[objid], "Element" + objid.ToString()); parent.AddChild(node); } for (int i = 0; i < obj.Childs.Length; i++) { if (obj.Childs[i].ChildIcon < 0) { loadFrame(dpow.Animations[obj.Childs[i].ChildId], time, node); } else { loadFrame(dpow.Animations[obj.Childs[i].ChildId], time, mgr.GetSceneNode("Element" + objid.ToString() + "_flag" + obj.Childs[i].ChildIcon.ToString() + "_node")); } } }
private void refreshControls() { tmlTimeLine.SelectedAnimation = activeAnimation; cmbImage.Items.Clear(); for (int i = 0; i < activeAnimation.getFrameOnTime((int)numStartFrame.Value).Element.Images.Length; i++) { cmbImage.Items.Add("Image " + i.ToString()); } for (int i = 0; i < activeAnimation.getFrameOnTime((int)numStartFrame.Value).Element.Icons.Length; i++) { cmbImage.Items.Add("Icon " + i.ToString()); } }
private void DrawLine(DPOW.Reader.Animation anim, int y, Graphics g) { List <int> starts = new List <int>(); if (anim.getFrameOnTime(scrHorizontalBar.Value, handleEvents) != null) { if (scrHorizontalBar.Value != anim.getFrameOnTime(scrHorizontalBar.Value, handleEvents).Time) { starts.Add(anim.getFrameOnTime(scrHorizontalBar.Value).Time); } } for (int i = scrHorizontalBar.Value; i <= Math.Min(anim.MaxTime, scrHorizontalBar.Value + Width / mColumnWidth + 1); i++) { if (anim.getFrameOnTime(i) == null) { g.DrawRectangle(Pens.LightGray, (i - scrHorizontalBar.Value) * mColumnWidth, y, mColumnWidth, 20); } else { if (anim.getFrameOnTime(i, handleEvents).Time == i) { starts.Add(i); } } } starts.Add(Math.Min(anim.MaxTime + 1, scrHorizontalBar.Value + Width / mColumnWidth + 1)); // Draw timeline for (int i = 0; i < starts.Count - 1; i++) { g.FillRectangle(Brushes.DarkSeaGreen, (starts[i] - scrHorizontalBar.Value) * mColumnWidth, y, (starts[i + 1] - starts[i]) * mColumnWidth, 20); g.DrawRectangle(Pens.Black, (starts[i] - scrHorizontalBar.Value) * mColumnWidth, y, (starts[i + 1] - starts[i]) * mColumnWidth, 20); g.DrawString(anim.getFrameOnTime(starts[i], handleEvents).ElementId.ToString(), Font, Brushes.Black, (starts[i] - scrHorizontalBar.Value) * mColumnWidth, y + 4); } Pen boldpen = new Pen(Color.DarkRed, 2); boldpen.Alignment = System.Drawing.Drawing2D.PenAlignment.Center; // Draw events for (int i = 0; i < anim.Events.Length; i++) { g.DrawRectangle(boldpen, (anim.Events[i].Start - scrHorizontalBar.Value) * mColumnWidth, y, (anim.Events[i].End - anim.Events[i].Start + 1) * mColumnWidth, 20); } }