diff --git a/PCK-Studio/Forms/Editor/COLEditor.Designer.cs b/PCK-Studio/Forms/Editor/COLEditor.Designer.cs index 8c972a95..85fd1f15 100644 --- a/PCK-Studio/Forms/Editor/COLEditor.Designer.cs +++ b/PCK-Studio/Forms/Editor/COLEditor.Designer.cs @@ -69,6 +69,8 @@ namespace PckStudio.Forms.Editor this.waterTreeView = new System.Windows.Forms.TreeView(); this.ColorContextMenu = new MetroFramework.Controls.MetroContextMenu(this.components); this.restoreOriginalColorToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.copyColorToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.pasteColorToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.underwaterTreeView = new System.Windows.Forms.TreeView(); this.fogTreeView = new System.Windows.Forms.TreeView(); this.colorsTab = new System.Windows.Forms.TabPage(); @@ -405,7 +407,9 @@ namespace PckStudio.Forms.Editor // ColorContextMenu // this.ColorContextMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.restoreOriginalColorToolStripMenuItem}); + this.restoreOriginalColorToolStripMenuItem, + this.copyColorToolStripMenuItem, + this.pasteColorToolStripMenuItem}); this.ColorContextMenu.Name = "ColorContextMenu"; resources.ApplyResources(this.ColorContextMenu, "ColorContextMenu"); // @@ -415,6 +419,18 @@ namespace PckStudio.Forms.Editor resources.ApplyResources(this.restoreOriginalColorToolStripMenuItem, "restoreOriginalColorToolStripMenuItem"); this.restoreOriginalColorToolStripMenuItem.Click += new System.EventHandler(this.restoreOriginalColorToolStripMenuItem_Click); // + // copyColorToolStripMenuItem + // + this.copyColorToolStripMenuItem.Name = "copyColorToolStripMenuItem"; + resources.ApplyResources(this.copyColorToolStripMenuItem, "copyColorToolStripMenuItem"); + this.copyColorToolStripMenuItem.Click += new System.EventHandler(this.copyColorToolStripMenuItem_Click); + // + // pasteColorToolStripMenuItem + // + this.pasteColorToolStripMenuItem.Name = "pasteColorToolStripMenuItem"; + resources.ApplyResources(this.pasteColorToolStripMenuItem, "pasteColorToolStripMenuItem"); + this.pasteColorToolStripMenuItem.Click += new System.EventHandler(this.pasteColorToolStripMenuItem_Click); + // // underwaterTreeView // this.underwaterTreeView.ContextMenuStrip = this.ColorContextMenu; @@ -454,7 +470,7 @@ namespace PckStudio.Forms.Editor this.tabControl.Controls.Add(this.underwaterTab); this.tabControl.Controls.Add(this.fogTab); this.tabControl.Name = "tabControl"; - this.tabControl.SelectedIndex = 3; + this.tabControl.SelectedIndex = 0; this.tabControl.Style = MetroFramework.MetroColorStyle.White; this.tabControl.Theme = MetroFramework.MetroThemeStyle.Dark; this.tabControl.UseSelectable = true; @@ -548,5 +564,7 @@ namespace PckStudio.Forms.Editor private ToolStripMenuItem TU54ToolStripMenuItem; private ToolStripMenuItem TU69ToolStripMenuItem; private ToolStripMenuItem _1_9_1ToolStripMenuItem; + private ToolStripMenuItem copyColorToolStripMenuItem; + private ToolStripMenuItem pasteColorToolStripMenuItem; } } \ No newline at end of file diff --git a/PCK-Studio/Forms/Editor/COLEditor.cs b/PCK-Studio/Forms/Editor/COLEditor.cs index 652a92c8..acda7d83 100644 --- a/PCK-Studio/Forms/Editor/COLEditor.cs +++ b/PCK-Studio/Forms/Editor/COLEditor.cs @@ -14,6 +14,7 @@ namespace PckStudio.Forms.Editor { COLFile default_colourfile = COLFileReader.Read(new MemoryStream(Properties.Resources.tu69colours)); COLFile colourfile; + COLFile.ColorEntry clipboard_color; private readonly PCKFile.FileData _file; @@ -258,7 +259,7 @@ namespace PckStudio.Forms.Editor public void treeView1_KeyDown(object sender, KeyEventArgs e) { var node = colorTreeView.SelectedNode; - if (e.KeyCode == Keys.Delete && node.Tag is COLFile.ColorEntry colorInfo) + if (e.KeyCode == Keys.Delete && node.Tag is COLFile.ColorEntry) { restoreOriginalColorToolStripMenuItem_Click(sender, e); } @@ -267,7 +268,7 @@ namespace PckStudio.Forms.Editor private void treeView2_KeyDown(object sender, KeyEventArgs e) { var node = waterTreeView.SelectedNode; - if (e.KeyCode == Keys.Delete && node.Tag is COLFile.ExtendedColorEntry colorInfo) + if (e.KeyCode == Keys.Delete && node.Tag is COLFile.ExtendedColorEntry) { restoreOriginalColorToolStripMenuItem_Click(sender, e); } @@ -276,7 +277,7 @@ namespace PckStudio.Forms.Editor private void treeView3_KeyDown(object sender, KeyEventArgs e) { var node = underwaterTreeView.SelectedNode; - if (e.KeyCode == Keys.Delete && node.Tag is COLFile.ExtendedColorEntry colorInfo) + if (e.KeyCode == Keys.Delete && node.Tag is COLFile.ExtendedColorEntry) { restoreOriginalColorToolStripMenuItem_Click(sender, e); } @@ -285,7 +286,7 @@ namespace PckStudio.Forms.Editor private void treeView4_KeyDown(object sender, KeyEventArgs e) { var node = fogTreeView.SelectedNode; - if (e.KeyCode == Keys.Delete && node.Tag is COLFile.ExtendedColorEntry colorInfo) + if (e.KeyCode == Keys.Delete && node.Tag is COLFile.ExtendedColorEntry) { restoreOriginalColorToolStripMenuItem_Click(sender, e); } @@ -325,7 +326,7 @@ namespace PckStudio.Forms.Editor fixed_color = Color.FromArgb(255, (int)redUpDown.Value, (int)greenUpDown.Value, (int)blueUpDown.Value); colorEntry.color = (uint)(((255 << 24) | (fixed_color.R << 16) | (fixed_color.G << 8) | fixed_color.B) & 0xffffffffL); } - else if (tabControl.SelectedTab != null) // just in case + else if (tabControl.SelectedTab != null && waterTreeView.SelectedNode != null) // just in case { var colorEntry = (COLFile.ExtendedColorEntry)waterTreeView.SelectedNode.Tag; fixed_color = Color.FromArgb(tabControl.SelectedTab == waterTab ? (int)alphaUpDown.Value : 255, (int)redUpDown.Value, (int)greenUpDown.Value, (int)blueUpDown.Value); @@ -522,5 +523,65 @@ namespace PckStudio.Forms.Editor underwaterTreeView.EndUpdate(); fogTreeView.EndUpdate(); } + + private void copyColorToolStripMenuItem_Click(object sender, EventArgs e) + { + SetUpValueChanged(false); + COLFile.ColorEntry colorToCopy = new COLFile.ColorEntry("", 0); + if (tabControl.SelectedTab == colorsTab && colorTreeView.SelectedNode.Tag is COLFile.ColorEntry colorInfoD) + { + colorToCopy = colorInfoD; + } + else if (tabControl.SelectedTab == waterTab && waterTreeView.SelectedNode.Tag is COLFile.ExtendedColorEntry colorInfo) + { + colorToCopy = colorInfo; + } + else if (tabControl.SelectedTab == underwaterTab && underwaterTreeView.SelectedNode.Tag is COLFile.ExtendedColorEntry colorInfoB) + { + colorToCopy = colorInfoB; + } + else if (tabControl.SelectedTab == fogTab && fogTreeView.SelectedNode.Tag is COLFile.ExtendedColorEntry colorInfoC) + { + colorToCopy = colorInfoC; + } + clipboard_color = colorToCopy; + SetUpValueChanged(true); + } + + private void pasteColorToolStripMenuItem_Click(object sender, EventArgs e) + { + if (clipboard_color == null) return; + Color fixed_color = Color.FromArgb(255, Color.FromArgb(0xff << 24 | (int)clipboard_color.color)); + + if (tabControl.SelectedTab == waterTab && waterTreeView.SelectedNode != null && + waterTreeView.SelectedNode.Tag != null && waterTreeView.SelectedNode.Tag is COLFile.ExtendedColorEntry) + { + var colorEntry = ((COLFile.ExtendedColorEntry)waterTreeView.SelectedNode.Tag); + colorEntry.color = (uint)fixed_color.ToArgb(); + pictureBox1.BackColor = fixed_color; + } + else if (tabControl.SelectedTab == underwaterTab && underwaterTreeView.SelectedNode != null && + underwaterTreeView.SelectedNode.Tag != null && underwaterTreeView.SelectedNode.Tag is COLFile.ExtendedColorEntry) + { + var colorEntry = ((COLFile.ExtendedColorEntry)underwaterTreeView.SelectedNode.Tag); + colorEntry.color_b = (uint)fixed_color.ToArgb(); + } + else if (tabControl.SelectedTab == fogTab && fogTreeView.SelectedNode != null && + fogTreeView.SelectedNode.Tag != null && fogTreeView.SelectedNode.Tag is COLFile.ExtendedColorEntry) + { + var colorEntry = ((COLFile.ExtendedColorEntry)fogTreeView.SelectedNode.Tag); + colorEntry.color_c = (uint)fixed_color.ToArgb(); + } + else if (tabControl.SelectedTab == colorsTab && colorTreeView.SelectedNode != null && + colorTreeView.SelectedNode.Tag != null && colorTreeView.SelectedNode.Tag is COLFile.ColorEntry) + { + var colorEntry = ((COLFile.ColorEntry)colorTreeView.SelectedNode.Tag); + colorEntry.color = (uint)fixed_color.ToArgb() & 0xffffff; + } + + redUpDown.Value = clipboard_color.color >> 16 & 0xff; + greenUpDown.Value = clipboard_color.color >> 8 & 0xff; + blueUpDown.Value = clipboard_color.color & 0xff; + } } } diff --git a/PCK-Studio/Forms/Editor/COLEditor.resx b/PCK-Studio/Forms/Editor/COLEditor.resx index bb3fd405..9c9b77a0 100644 --- a/PCK-Studio/Forms/Editor/COLEditor.resx +++ b/PCK-Studio/Forms/Editor/COLEditor.resx @@ -117,210 +117,18 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - metroTextBox1 - - - MetroFramework.Controls.MetroTextBox, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a - - - metroPanel1 - - - 2 - - - metroLabel2 - - - MetroFramework.Controls.MetroLabel, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a - - - metroPanel1 - - - 3 - - - setColorBtn - - - MetroFramework.Controls.MetroButton, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a - - - metroPanel1 - - - 4 - - - blueUpDown - - - System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - metroPanel1 - - - 5 - - - greenUpDown - - - System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - metroPanel1 - - - 6 - - - redUpDown - - - System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - metroPanel1 - - - 7 - - - alphaUpDown - - - System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - metroPanel1 - - - 8 - - - alphaLabel - - - MetroFramework.Controls.MetroLabel, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a - - - metroPanel1 - - - 9 - - - blueLabel - - - MetroFramework.Controls.MetroLabel, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a - - - metroPanel1 - - - 10 - - - greenLabel - - - MetroFramework.Controls.MetroLabel, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a - - - metroPanel1 - - - 11 - - - redLabel - - - MetroFramework.Controls.MetroLabel, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a - - - metroPanel1 - - - 12 - - - colorTextbox - - - MetroFramework.Controls.MetroTextBox, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a - - - metroPanel1 - - - 13 - - - metroLabel1 - - - MetroFramework.Controls.MetroLabel, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a - - - metroPanel1 - - - 14 - - - pictureBox1 - - - System.Windows.Forms.PictureBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - metroPanel1 - - - 15 - - - Fill - - - - 20, 60 - - - 612, 523 - - - - 0 - - - metroPanel1 - - - MetroFramework.Controls.MetroPanel, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a - - - $this - - - 3 - + 113, 1 21, 21 + 0 @@ -684,42 +492,36 @@ 15 + + Fill + + + 20, 60 + + + 612, 523 + + + 0 + + + metroPanel1 + + + MetroFramework.Controls.MetroPanel, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a + + + $this + + + 3 + 17, 17 False - - 20, 60 - - - 612, 24 - - - 3 - - - menuStrip1 - - - menuStrip - - - System.Windows.Forms.MenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - $this - - - 1 - - - 37, 20 - - - File - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO @@ -731,16 +533,16 @@ - 98, 22 + 180, 22 Save - - 117, 20 + + 37, 20 - - Target Update Tool + + File 414, 22 @@ -820,6 +622,81 @@ 1.91 (PS4) + + 117, 20 + + + Target Update Tool + + + 20, 60 + + + 612, 24 + + + 3 + + + menuStrip1 + + + menuStrip + + + System.Windows.Forms.MenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 1 + + + 125, 17 + + + 186, 22 + + + Restore original color + + + 186, 22 + + + Copy Color + + + 186, 22 + + + Paste Color + + + 187, 92 + + + ColorContextMenu + + + MetroFramework.Controls.MetroContextMenu, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a + + + Fill + + + 0, 0 + + + No + + + 320, 424 + + + 0 + waterTreeView @@ -856,51 +733,6 @@ 1 - - 125, 17 - - - 187, 26 - - - ColorContextMenu - - - MetroFramework.Controls.MetroContextMenu, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a - - - Fill - - - 0, 0 - - - No - - - 320, 424 - - - 0 - - - waterTreeView - - - System.Windows.Forms.TreeView, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - waterTab - - - 0 - - - 186, 22 - - - Restore original color - 0, 0 @@ -943,6 +775,18 @@ 0 + + Fill + + + 0, 0 + + + 320, 424 + + + 0 + colorTreeView @@ -979,30 +823,6 @@ 0 - - Fill - - - 0, 0 - - - 320, 424 - - - 0 - - - colorTreeView - - - System.Windows.Forms.TreeView, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - colorsTab - - - 0 - Top, Bottom, Left @@ -3701,6 +3521,18 @@ System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + copyColorToolStripMenuItem + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + pasteColorToolStripMenuItem + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + COLEditor