From 297e19f2a7f99109e597f9e066cec61223855e16 Mon Sep 17 00:00:00 2001 From: quinnvoker Date: Wed, 28 Nov 2018 15:59:22 -0800 Subject: [PATCH] Added Sprite Updater to AnimationEditor --- AnimationEditor/Form1.Designer.cs | 24 ++++++++++++++++++++- AnimationEditor/Form1.cs | 36 +++++++++++++++++++++++++++++++ 2 files changed, 59 insertions(+), 1 deletion(-) diff --git a/AnimationEditor/Form1.Designer.cs b/AnimationEditor/Form1.Designer.cs index 6ba83e3..8d5e208 100644 --- a/AnimationEditor/Form1.Designer.cs +++ b/AnimationEditor/Form1.Designer.cs @@ -71,6 +71,8 @@ this.animationLabel = new System.Windows.Forms.Label(); this.animationPreview = new AnimationEditor.AnimationPreview(); this.loadAnimationSetDialog = new System.Windows.Forms.OpenFileDialog(); + this.editToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.updateAnimationSpritesFromSpriteMapToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); ((System.ComponentModel.ISupportInitialize)(this.spritePreview)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.frameTrackBar)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.delayInputBox)).BeginInit(); @@ -227,7 +229,8 @@ // this.mainMenuStrip.BackColor = System.Drawing.SystemColors.Control; this.mainMenuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.fileToolStripMenuItem}); + this.fileToolStripMenuItem, + this.editToolStripMenuItem}); this.mainMenuStrip.Location = new System.Drawing.Point(0, 0); this.mainMenuStrip.Name = "mainMenuStrip"; this.mainMenuStrip.Size = new System.Drawing.Size(763, 24); @@ -503,6 +506,23 @@ this.loadAnimationSetDialog.FileName = "openFileDialog1"; this.loadAnimationSetDialog.Filter = "QUROGames AnimationSet|*.animSet"; // + // editToolStripMenuItem + // + this.editToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.updateAnimationSpritesFromSpriteMapToolStripMenuItem}); + this.editToolStripMenuItem.Enabled = false; + this.editToolStripMenuItem.Name = "editToolStripMenuItem"; + this.editToolStripMenuItem.Size = new System.Drawing.Size(39, 20); + this.editToolStripMenuItem.Text = "Edit"; + // + // updateAnimationSpritesFromSpriteMapToolStripMenuItem + // + this.updateAnimationSpritesFromSpriteMapToolStripMenuItem.Enabled = false; + this.updateAnimationSpritesFromSpriteMapToolStripMenuItem.Name = "updateAnimationSpritesFromSpriteMapToolStripMenuItem"; + this.updateAnimationSpritesFromSpriteMapToolStripMenuItem.Size = new System.Drawing.Size(304, 22); + this.updateAnimationSpritesFromSpriteMapToolStripMenuItem.Text = "Update Animation Sprites from SpriteMap..."; + this.updateAnimationSpritesFromSpriteMapToolStripMenuItem.Click += new System.EventHandler(this.updateAnimationSpritesFromSpriteMapToolStripMenuItem_Click); + // // Form1 // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); @@ -575,6 +595,8 @@ private System.Windows.Forms.Label animationLabel; private System.Windows.Forms.Label animationNameLabel; private System.Windows.Forms.OpenFileDialog loadAnimationSetDialog; + private System.Windows.Forms.ToolStripMenuItem editToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem updateAnimationSpritesFromSpriteMapToolStripMenuItem; } } diff --git a/AnimationEditor/Form1.cs b/AnimationEditor/Form1.cs index e3892e2..4da7414 100644 --- a/AnimationEditor/Form1.cs +++ b/AnimationEditor/Form1.cs @@ -83,6 +83,9 @@ namespace AnimationEditor frameTrackBar.Enabled = true; playAnimationButton.Enabled = true; animationPreview.Enabled = true; + + editToolStripMenuItem.Enabled = true; + updateAnimationSpritesFromSpriteMapToolStripMenuItem.Enabled = true; } private void InitiateAnimationList(bool newAnimation = true) @@ -218,6 +221,11 @@ namespace AnimationEditor } private void loadSpriteMapToolStripMenuItem_Click(object sender, EventArgs e) + { + LoadSpriteMapFromFile(); + } + + private Dictionary LoadSpriteMapFromFile() { if (loadSpriteMapDialog.ShowDialog() == DialogResult.OK) { @@ -247,7 +255,9 @@ namespace AnimationEditor EnableSpriteMapControls(); EnableAnimationEditingControls(); + return loadedSpriteMap; } + return null; } private void animationPreview_FrameChanged(object sender, EventArgs e) @@ -478,5 +488,31 @@ namespace AnimationEditor UpdateAnimation(); } } + + private void updateAnimationSpritesFromSpriteMapToolStripMenuItem_Click(object sender, EventArgs e) + { + var loadedSpriteMap = LoadSpriteMapFromFile(); + + using(XmlReader xmlRead = XmlReader.Create(loadSpriteMapDialog.FileName)) + { + loadedSpriteMap = IntermediateSerializer.Deserialize>(xmlRead, null); + } + + int updateCounter = 0; + + foreach(Animation anim in Animations) + { + foreach(Frame frame in anim.Frames) + { + if (loadedSpriteMap.ContainsKey(frame.Name)) + { + frame.Sprite = loadedSpriteMap[frame.Name]; + updateCounter++; + } + } + } + + MessageBox.Show("Updated " + updateCounter + " sprites!"); + } } }