From ba37536c39ac0b408b6c622ea85a76415f70d167 Mon Sep 17 00:00:00 2001 From: miku-666 <74728189+NessieHax@users.noreply.github.com> Date: Sun, 5 Jun 2022 20:27:04 +0200 Subject: [PATCH] Update COLEditor --- .../Classes/FileTypes/COLFile.cs | 22 +- .../Forms/Utilities/COLEditor.Designer.cs | 292 +++++++------ .../Forms/Utilities/COLEditor.cs | 276 +++++++------ .../Forms/Utilities/COLEditor.resx | 383 +++++++++++------- 4 files changed, 548 insertions(+), 425 deletions(-) diff --git a/MinecraftUSkinEditor/Classes/FileTypes/COLFile.cs b/MinecraftUSkinEditor/Classes/FileTypes/COLFile.cs index 87547fed..822cfbb7 100644 --- a/MinecraftUSkinEditor/Classes/FileTypes/COLFile.cs +++ b/MinecraftUSkinEditor/Classes/FileTypes/COLFile.cs @@ -9,16 +9,14 @@ namespace PckStudio.Classes.FileTypes { public class COLFile { - public struct ColorEntry + public class ColorEntry { public string name; - public uint rgb; + public uint color; } - public struct ExtendedColorEntry + public class ExtendedColorEntry : ColorEntry { - public string name; - public uint argb; - public uint rgb; + public uint rgbcolor; public uint unk; } @@ -32,7 +30,7 @@ namespace PckStudio.Classes.FileTypes { ColorEntry entry = new ColorEntry(); entry.name = ReadString(stream); - entry.rgb = ReadUint(stream); + entry.color = ReadUint(stream); entries.Add(entry); } if (has_water_colors == 1) @@ -42,8 +40,8 @@ namespace PckStudio.Classes.FileTypes { ExtendedColorEntry entry = new ExtendedColorEntry(); entry.name = ReadString(stream); - entry.argb = ReadUint(stream); - entry.rgb = ReadUint(stream); + entry.color = ReadUint(stream); + entry.rgbcolor = ReadUint(stream); entry.unk = ReadUint(stream); waterEntries.Add(entry); } @@ -106,7 +104,7 @@ namespace PckStudio.Classes.FileTypes foreach (var colorEntry in entries) { WriteString(stream, colorEntry.name); - WriteUint(stream, colorEntry.rgb); + WriteUint(stream, colorEntry.color); } if (waterEntries.Count > 0) { @@ -114,8 +112,8 @@ namespace PckStudio.Classes.FileTypes foreach (var colorEntry in waterEntries) { WriteString(stream, colorEntry.name); - WriteUint(stream, colorEntry.rgb); - WriteUint(stream, colorEntry.argb); + WriteUint(stream, colorEntry.color); + WriteUint(stream, colorEntry.rgbcolor); WriteUint(stream, colorEntry.unk); } } diff --git a/MinecraftUSkinEditor/Forms/Utilities/COLEditor.Designer.cs b/MinecraftUSkinEditor/Forms/Utilities/COLEditor.Designer.cs index b244a771..728479dc 100644 --- a/MinecraftUSkinEditor/Forms/Utilities/COLEditor.Designer.cs +++ b/MinecraftUSkinEditor/Forms/Utilities/COLEditor.Designer.cs @@ -33,45 +33,51 @@ namespace PckStudio.Forms.Utilities { System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(COLEditor)); this.metroPanel1 = new MetroFramework.Controls.MetroPanel(); - this.numericUpDown5 = new System.Windows.Forms.NumericUpDown(); - this.numericUpDown4 = new System.Windows.Forms.NumericUpDown(); - this.numericUpDown3 = new System.Windows.Forms.NumericUpDown(); - this.numericUpDown2 = new System.Windows.Forms.NumericUpDown(); - this.metroLabel6 = new MetroFramework.Controls.MetroLabel(); - this.metroLabel5 = new MetroFramework.Controls.MetroLabel(); - this.metroLabel4 = new MetroFramework.Controls.MetroLabel(); - this.metroLabel3 = new MetroFramework.Controls.MetroLabel(); - this.metroTextBox1 = new MetroFramework.Controls.MetroTextBox(); + this.setColorBtn = new MetroFramework.Controls.MetroButton(); + this.blueUpDown = new System.Windows.Forms.NumericUpDown(); + this.greenUpDown = new System.Windows.Forms.NumericUpDown(); + this.redUpDown = new System.Windows.Forms.NumericUpDown(); + this.alphaUpDown = new System.Windows.Forms.NumericUpDown(); + this.alphaLabel = new MetroFramework.Controls.MetroLabel(); + this.blueLabel = new MetroFramework.Controls.MetroLabel(); + this.greenLabel = new MetroFramework.Controls.MetroLabel(); + this.redLabel = new MetroFramework.Controls.MetroLabel(); + this.colorTextbox = new MetroFramework.Controls.MetroTextBox(); this.metroLabel1 = new MetroFramework.Controls.MetroLabel(); this.pictureBox1 = new System.Windows.Forms.PictureBox(); this.menuStrip = new System.Windows.Forms.MenuStrip(); this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.saveToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); - this.tabControl = new MetroFramework.Controls.MetroTabControl(); - this.colorsTab = new System.Windows.Forms.TabPage(); this.waterTab = new System.Windows.Forms.TabPage(); + this.treeView2 = new System.Windows.Forms.TreeView(); + this.colorsTab = new System.Windows.Forms.TabPage(); + this.treeView1 = new System.Windows.Forms.TreeView(); + this.tabControl = new MetroFramework.Controls.MetroTabControl(); this.metroPanel1.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.numericUpDown5)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.numericUpDown4)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.numericUpDown3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.numericUpDown2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.blueUpDown)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.greenUpDown)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.redUpDown)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.alphaUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); this.menuStrip.SuspendLayout(); + this.waterTab.SuspendLayout(); + this.colorsTab.SuspendLayout(); this.tabControl.SuspendLayout(); this.SuspendLayout(); // // metroPanel1 // this.metroPanel1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.metroPanel1.Controls.Add(this.numericUpDown5); - this.metroPanel1.Controls.Add(this.numericUpDown4); - this.metroPanel1.Controls.Add(this.numericUpDown3); - this.metroPanel1.Controls.Add(this.numericUpDown2); - this.metroPanel1.Controls.Add(this.metroLabel6); - this.metroPanel1.Controls.Add(this.metroLabel5); - this.metroPanel1.Controls.Add(this.metroLabel4); - this.metroPanel1.Controls.Add(this.metroLabel3); - this.metroPanel1.Controls.Add(this.metroTextBox1); + this.metroPanel1.Controls.Add(this.setColorBtn); + this.metroPanel1.Controls.Add(this.blueUpDown); + this.metroPanel1.Controls.Add(this.greenUpDown); + this.metroPanel1.Controls.Add(this.redUpDown); + this.metroPanel1.Controls.Add(this.alphaUpDown); + this.metroPanel1.Controls.Add(this.alphaLabel); + this.metroPanel1.Controls.Add(this.blueLabel); + this.metroPanel1.Controls.Add(this.greenLabel); + this.metroPanel1.Controls.Add(this.redLabel); + this.metroPanel1.Controls.Add(this.colorTextbox); this.metroPanel1.Controls.Add(this.metroLabel1); this.metroPanel1.Controls.Add(this.pictureBox1); resources.ApplyResources(this.metroPanel1, "metroPanel1"); @@ -85,112 +91,120 @@ namespace PckStudio.Forms.Utilities this.metroPanel1.VerticalScrollbarHighlightOnWheel = false; this.metroPanel1.VerticalScrollbarSize = 10; // - // numericUpDown5 + // setColorBtn // - this.numericUpDown5.BackColor = System.Drawing.SystemColors.Desktop; - this.numericUpDown5.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(204)))), ((int)(((byte)(204)))), ((int)(((byte)(204))))); - resources.ApplyResources(this.numericUpDown5, "numericUpDown5"); - this.numericUpDown5.Maximum = new decimal(new int[] { + resources.ApplyResources(this.setColorBtn, "setColorBtn"); + this.setColorBtn.Name = "setColorBtn"; + this.setColorBtn.Theme = MetroFramework.MetroThemeStyle.Dark; + this.setColorBtn.UseSelectable = true; + this.setColorBtn.Click += new System.EventHandler(this.setColorBtn_Click); + // + // blueUpDown + // + this.blueUpDown.BackColor = System.Drawing.SystemColors.Desktop; + this.blueUpDown.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(204)))), ((int)(((byte)(204)))), ((int)(((byte)(204))))); + resources.ApplyResources(this.blueUpDown, "blueUpDown"); + this.blueUpDown.Maximum = new decimal(new int[] { 255, 0, 0, 0}); - this.numericUpDown5.Name = "numericUpDown5"; - this.numericUpDown5.ValueChanged += new System.EventHandler(this.color_ValueChanged); + this.blueUpDown.Name = "blueUpDown"; + this.blueUpDown.ValueChanged += new System.EventHandler(this.color_ValueChanged); // - // numericUpDown4 + // greenUpDown // - this.numericUpDown4.BackColor = System.Drawing.SystemColors.Desktop; - this.numericUpDown4.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(204)))), ((int)(((byte)(204)))), ((int)(((byte)(204))))); - resources.ApplyResources(this.numericUpDown4, "numericUpDown4"); - this.numericUpDown4.Maximum = new decimal(new int[] { + this.greenUpDown.BackColor = System.Drawing.SystemColors.Desktop; + this.greenUpDown.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(204)))), ((int)(((byte)(204)))), ((int)(((byte)(204))))); + resources.ApplyResources(this.greenUpDown, "greenUpDown"); + this.greenUpDown.Maximum = new decimal(new int[] { 255, 0, 0, 0}); - this.numericUpDown4.Name = "numericUpDown4"; - this.numericUpDown4.ValueChanged += new System.EventHandler(this.color_ValueChanged); + this.greenUpDown.Name = "greenUpDown"; + this.greenUpDown.ValueChanged += new System.EventHandler(this.color_ValueChanged); // - // numericUpDown3 + // redUpDown // - this.numericUpDown3.BackColor = System.Drawing.SystemColors.Desktop; - this.numericUpDown3.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(204)))), ((int)(((byte)(204)))), ((int)(((byte)(204))))); - resources.ApplyResources(this.numericUpDown3, "numericUpDown3"); - this.numericUpDown3.Maximum = new decimal(new int[] { + this.redUpDown.BackColor = System.Drawing.SystemColors.Desktop; + this.redUpDown.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(204)))), ((int)(((byte)(204)))), ((int)(((byte)(204))))); + resources.ApplyResources(this.redUpDown, "redUpDown"); + this.redUpDown.Maximum = new decimal(new int[] { 255, 0, 0, 0}); - this.numericUpDown3.Name = "numericUpDown3"; - this.numericUpDown3.ValueChanged += new System.EventHandler(this.color_ValueChanged); + this.redUpDown.Name = "redUpDown"; + this.redUpDown.ValueChanged += new System.EventHandler(this.color_ValueChanged); // - // numericUpDown2 + // alphaUpDown // - this.numericUpDown2.BackColor = System.Drawing.SystemColors.Desktop; - this.numericUpDown2.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(204)))), ((int)(((byte)(204)))), ((int)(((byte)(204))))); - resources.ApplyResources(this.numericUpDown2, "numericUpDown2"); - this.numericUpDown2.Maximum = new decimal(new int[] { + this.alphaUpDown.BackColor = System.Drawing.SystemColors.Desktop; + this.alphaUpDown.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(204)))), ((int)(((byte)(204)))), ((int)(((byte)(204))))); + resources.ApplyResources(this.alphaUpDown, "alphaUpDown"); + this.alphaUpDown.Maximum = new decimal(new int[] { 255, 0, 0, 0}); - this.numericUpDown2.Name = "numericUpDown2"; - this.numericUpDown2.ValueChanged += new System.EventHandler(this.color_ValueChanged); + this.alphaUpDown.Name = "alphaUpDown"; + this.alphaUpDown.ValueChanged += new System.EventHandler(this.color_ValueChanged); // - // metroLabel6 + // alphaLabel // - resources.ApplyResources(this.metroLabel6, "metroLabel6"); - this.metroLabel6.Name = "metroLabel6"; - this.metroLabel6.Theme = MetroFramework.MetroThemeStyle.Dark; + resources.ApplyResources(this.alphaLabel, "alphaLabel"); + this.alphaLabel.Name = "alphaLabel"; + this.alphaLabel.Theme = MetroFramework.MetroThemeStyle.Dark; // - // metroLabel5 + // blueLabel // - resources.ApplyResources(this.metroLabel5, "metroLabel5"); - this.metroLabel5.Name = "metroLabel5"; - this.metroLabel5.Theme = MetroFramework.MetroThemeStyle.Dark; + resources.ApplyResources(this.blueLabel, "blueLabel"); + this.blueLabel.Name = "blueLabel"; + this.blueLabel.Theme = MetroFramework.MetroThemeStyle.Dark; // - // metroLabel4 + // greenLabel // - resources.ApplyResources(this.metroLabel4, "metroLabel4"); - this.metroLabel4.Name = "metroLabel4"; - this.metroLabel4.Theme = MetroFramework.MetroThemeStyle.Dark; + resources.ApplyResources(this.greenLabel, "greenLabel"); + this.greenLabel.Name = "greenLabel"; + this.greenLabel.Theme = MetroFramework.MetroThemeStyle.Dark; // - // metroLabel3 + // redLabel // - resources.ApplyResources(this.metroLabel3, "metroLabel3"); - this.metroLabel3.Name = "metroLabel3"; - this.metroLabel3.Theme = MetroFramework.MetroThemeStyle.Dark; + resources.ApplyResources(this.redLabel, "redLabel"); + this.redLabel.Name = "redLabel"; + this.redLabel.Theme = MetroFramework.MetroThemeStyle.Dark; // - // metroTextBox1 + // colorTextbox // // // // - this.metroTextBox1.CustomButton.Image = ((System.Drawing.Image)(resources.GetObject("resource.Image"))); - this.metroTextBox1.CustomButton.ImeMode = ((System.Windows.Forms.ImeMode)(resources.GetObject("resource.ImeMode"))); - this.metroTextBox1.CustomButton.Location = ((System.Drawing.Point)(resources.GetObject("resource.Location"))); - this.metroTextBox1.CustomButton.Name = ""; - this.metroTextBox1.CustomButton.Size = ((System.Drawing.Size)(resources.GetObject("resource.Size"))); - this.metroTextBox1.CustomButton.Style = MetroFramework.MetroColorStyle.Blue; - this.metroTextBox1.CustomButton.TabIndex = ((int)(resources.GetObject("resource.TabIndex"))); - this.metroTextBox1.CustomButton.Theme = MetroFramework.MetroThemeStyle.Light; - this.metroTextBox1.CustomButton.UseSelectable = true; - this.metroTextBox1.CustomButton.Visible = ((bool)(resources.GetObject("resource.Visible"))); - this.metroTextBox1.Lines = new string[0]; - resources.ApplyResources(this.metroTextBox1, "metroTextBox1"); - this.metroTextBox1.MaxLength = 32767; - this.metroTextBox1.Name = "metroTextBox1"; - this.metroTextBox1.PasswordChar = '\0'; - this.metroTextBox1.ScrollBars = System.Windows.Forms.ScrollBars.None; - this.metroTextBox1.SelectedText = ""; - this.metroTextBox1.SelectionLength = 0; - this.metroTextBox1.SelectionStart = 0; - this.metroTextBox1.ShortcutsEnabled = true; - this.metroTextBox1.Theme = MetroFramework.MetroThemeStyle.Dark; - this.metroTextBox1.UseSelectable = true; - this.metroTextBox1.WaterMarkColor = System.Drawing.Color.FromArgb(((int)(((byte)(109)))), ((int)(((byte)(109)))), ((int)(((byte)(109))))); - this.metroTextBox1.WaterMarkFont = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Pixel); - this.metroTextBox1.TextChanged += new System.EventHandler(this.metroTextBox1_TextChanged); + this.colorTextbox.CustomButton.Image = ((System.Drawing.Image)(resources.GetObject("resource.Image"))); + this.colorTextbox.CustomButton.ImeMode = ((System.Windows.Forms.ImeMode)(resources.GetObject("resource.ImeMode"))); + this.colorTextbox.CustomButton.Location = ((System.Drawing.Point)(resources.GetObject("resource.Location"))); + this.colorTextbox.CustomButton.Name = ""; + this.colorTextbox.CustomButton.Size = ((System.Drawing.Size)(resources.GetObject("resource.Size"))); + this.colorTextbox.CustomButton.Style = MetroFramework.MetroColorStyle.Blue; + this.colorTextbox.CustomButton.TabIndex = ((int)(resources.GetObject("resource.TabIndex"))); + this.colorTextbox.CustomButton.Theme = MetroFramework.MetroThemeStyle.Light; + this.colorTextbox.CustomButton.UseSelectable = true; + this.colorTextbox.CustomButton.Visible = ((bool)(resources.GetObject("resource.Visible"))); + this.colorTextbox.Lines = new string[0]; + resources.ApplyResources(this.colorTextbox, "colorTextbox"); + this.colorTextbox.MaxLength = 32767; + this.colorTextbox.Name = "colorTextbox"; + this.colorTextbox.PasswordChar = '\0'; + this.colorTextbox.ScrollBars = System.Windows.Forms.ScrollBars.None; + this.colorTextbox.SelectedText = ""; + this.colorTextbox.SelectionLength = 0; + this.colorTextbox.SelectionStart = 0; + this.colorTextbox.ShortcutsEnabled = true; + this.colorTextbox.Theme = MetroFramework.MetroThemeStyle.Dark; + this.colorTextbox.UseSelectable = true; + this.colorTextbox.WaterMarkColor = System.Drawing.Color.FromArgb(((int)(((byte)(109)))), ((int)(((byte)(109)))), ((int)(((byte)(109))))); + this.colorTextbox.WaterMarkFont = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Pixel); + this.colorTextbox.TextChanged += new System.EventHandler(this.colorBox_TextChanged); // // metroLabel1 // @@ -227,37 +241,45 @@ namespace PckStudio.Forms.Utilities this.saveToolStripMenuItem1.Name = "saveToolStripMenuItem1"; this.saveToolStripMenuItem1.Click += new System.EventHandler(this.saveToolStripMenuItem1_Click); // + // waterTab + // + this.waterTab.BackColor = System.Drawing.SystemColors.WindowFrame; + this.waterTab.Controls.Add(this.treeView2); + resources.ApplyResources(this.waterTab, "waterTab"); + this.waterTab.Name = "waterTab"; + // + // treeView2 + // + resources.ApplyResources(this.treeView2, "treeView2"); + this.treeView2.Name = "treeView2"; + this.treeView2.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.treeView2_AfterSelect); + this.treeView2.KeyDown += new System.Windows.Forms.KeyEventHandler(this.treeView2_KeyDown); + // + // colorsTab + // + this.colorsTab.BackColor = System.Drawing.SystemColors.WindowFrame; + this.colorsTab.Controls.Add(this.treeView1); + resources.ApplyResources(this.colorsTab, "colorsTab"); + this.colorsTab.Name = "colorsTab"; + // + // treeView1 + // + resources.ApplyResources(this.treeView1, "treeView1"); + this.treeView1.Name = "treeView1"; + this.treeView1.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.treeView1_AfterSelect); + this.treeView1.KeyDown += new System.Windows.Forms.KeyEventHandler(this.treeView1_KeyDown); + // // tabControl // + resources.ApplyResources(this.tabControl, "tabControl"); this.tabControl.Controls.Add(this.colorsTab); this.tabControl.Controls.Add(this.waterTab); - resources.ApplyResources(this.tabControl, "tabControl"); this.tabControl.Name = "tabControl"; this.tabControl.SelectedIndex = 0; this.tabControl.Style = MetroFramework.MetroColorStyle.White; this.tabControl.Theme = MetroFramework.MetroThemeStyle.Dark; this.tabControl.UseSelectable = true; // - // colorsTab - // - this.colorsTab.BackColor = System.Drawing.SystemColors.WindowFrame; - resources.ApplyResources(this.colorsTab, "colorsTab"); - this.colorsTab.Name = "colorsTab"; - // - // waterTab - // - this.waterTab.BackColor = System.Drawing.SystemColors.WindowFrame; - resources.ApplyResources(this.waterTab, "waterTab"); - this.waterTab.Name = "waterTab"; - //this.treeView1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - //this.treeView1.ForeColor = System.Drawing.Color.White; - //this.treeView1.LabelEdit = false; - //this.treeView1.LineColor = System.Drawing.Color.White; - //this.treeView1.Name = "treeView1"; - //this.treeView1.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.treeViews_AfterSelect); - //this.treeView1.KeyDown += new System.Windows.Forms.KeyEventHandler(this.treeViews_KeyDown); - //this.treeView1.Dock = DockStyle.Fill; - // // COLEditor // resources.ApplyResources(this, "$this"); @@ -269,15 +291,18 @@ namespace PckStudio.Forms.Utilities this.Name = "COLEditor"; this.Style = MetroFramework.MetroColorStyle.Silver; this.Theme = MetroFramework.MetroThemeStyle.Dark; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.COLEditor_FormClosing); this.metroPanel1.ResumeLayout(false); this.metroPanel1.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.numericUpDown5)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.numericUpDown4)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.numericUpDown3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.numericUpDown2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.blueUpDown)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.greenUpDown)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.redUpDown)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.alphaUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); this.menuStrip.ResumeLayout(false); this.menuStrip.PerformLayout(); + this.waterTab.ResumeLayout(false); + this.colorsTab.ResumeLayout(false); this.tabControl.ResumeLayout(false); this.ResumeLayout(false); @@ -286,22 +311,25 @@ namespace PckStudio.Forms.Utilities #endregion private MetroFramework.Controls.MetroPanel metroPanel1; - private MetroFramework.Controls.MetroTextBox metroTextBox1; + private MetroFramework.Controls.MetroTextBox colorTextbox; + private TreeView treeView1; + private TreeView treeView2; private MetroFramework.Controls.MetroLabel metroLabel1; private System.Windows.Forms.PictureBox pictureBox1; private System.Windows.Forms.MenuStrip menuStrip; private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem saveToolStripMenuItem1; - private MetroFramework.Controls.MetroLabel metroLabel5; - private MetroFramework.Controls.MetroLabel metroLabel4; - private MetroFramework.Controls.MetroLabel metroLabel3; - private MetroFramework.Controls.MetroLabel metroLabel6; - private System.Windows.Forms.NumericUpDown numericUpDown5; - private System.Windows.Forms.NumericUpDown numericUpDown4; - private System.Windows.Forms.NumericUpDown numericUpDown3; - private System.Windows.Forms.NumericUpDown numericUpDown2; - private MetroFramework.Controls.MetroTabControl tabControl; - private System.Windows.Forms.TabPage colorsTab; - private System.Windows.Forms.TabPage waterTab; - } + private MetroFramework.Controls.MetroLabel blueLabel; + private MetroFramework.Controls.MetroLabel greenLabel; + private MetroFramework.Controls.MetroLabel redLabel; + private MetroFramework.Controls.MetroLabel alphaLabel; + private System.Windows.Forms.NumericUpDown blueUpDown; + private System.Windows.Forms.NumericUpDown greenUpDown; + private System.Windows.Forms.NumericUpDown redUpDown; + private System.Windows.Forms.NumericUpDown alphaUpDown; + private TabPage waterTab; + private TabPage colorsTab; + private MetroFramework.Controls.MetroTabControl tabControl; + private MetroFramework.Controls.MetroButton setColorBtn; + } } \ No newline at end of file diff --git a/MinecraftUSkinEditor/Forms/Utilities/COLEditor.cs b/MinecraftUSkinEditor/Forms/Utilities/COLEditor.cs index 8a5a6ea7..2e04913a 100644 --- a/MinecraftUSkinEditor/Forms/Utilities/COLEditor.cs +++ b/MinecraftUSkinEditor/Forms/Utilities/COLEditor.cs @@ -16,81 +16,63 @@ namespace PckStudio.Forms.Utilities public partial class COLEditor : MetroForm { COLFile cf = new COLFile(); - PCKFile.FileData mf; - TreeView treeView1 = new TreeView(); // Normal Color Table - TreeView treeView2 = new TreeView(); // Water Color Table - public COLEditor(PCKFile.FileData MineFile) + public byte[] data { get; private set; } = new byte[0]; + + public COLEditor(COLFile colFile) { InitializeComponent(); - metroLabel6.Visible = false; - numericUpDown2.Visible = false; - mf = MineFile; - using (var stream = new MemoryStream(mf.data)) - { - cf.Open(stream); - } - - colorsTab.Controls.Add(treeView1); - waterTab.Controls.Add(treeView2); - tabControl.TabStop = true; - + cf = colFile; foreach (var obj in cf.entries) { TreeNode tn = new TreeNode(obj.name); - tn.Tag = obj.color; + tn.Tag = obj; treeView1.Nodes.Add(tn); } foreach (var obj in cf.waterEntries) { TreeNode tn = new TreeNode(obj.name); - tn.Tag = obj.color; + tn.Tag = obj; treeView2.Nodes.Add(tn); } } - private void treeViews_AfterSelect(object sender, TreeViewEventArgs e) + private void treeView1_AfterSelect(object sender, TreeViewEventArgs e) { - //metroTextBox2.Text = tv.SelectedNode.Text; - TreeView tv = (TreeView)sender; - if (tv.SelectedNode.Tag != null && metroTextBox1.Text.Length % 2 == 0) - { - bool hasAlpha = tabControl.SelectedTab == waterTab; - metroTextBox1.Text = tv.SelectedNode.Tag.ToString(); + if (treeView1.SelectedNode.Tag == null) + return; - if (hasAlpha) - { - numericUpDown2.Value = StringToByteArrayFastest(tv.SelectedNode.Tag.ToString())[0]; - numericUpDown3.Value = StringToByteArrayFastest(tv.SelectedNode.Tag.ToString())[1]; - numericUpDown4.Value = StringToByteArrayFastest(tv.SelectedNode.Tag.ToString())[2]; - numericUpDown5.Value = StringToByteArrayFastest(tv.SelectedNode.Tag.ToString())[3]; - pictureBox1.BackColor = Color.FromArgb(StringToByteArrayFastest(tv.SelectedNode.Tag.ToString())[0], StringToByteArrayFastest(tv.SelectedNode.Tag.ToString())[1], StringToByteArrayFastest(tv.SelectedNode.Tag.ToString())[2], StringToByteArrayFastest(tv.SelectedNode.Tag.ToString())[3]); - } - else - { - numericUpDown3.Value = StringToByteArrayFastest(tv.SelectedNode.Tag.ToString())[0]; - numericUpDown4.Value = StringToByteArrayFastest(tv.SelectedNode.Tag.ToString())[1]; - numericUpDown5.Value = StringToByteArrayFastest(tv.SelectedNode.Tag.ToString())[2]; - pictureBox1.BackColor = Color.FromArgb(255, StringToByteArrayFastest(tv.SelectedNode.Tag.ToString())[0], StringToByteArrayFastest(tv.SelectedNode.Tag.ToString())[1], StringToByteArrayFastest(tv.SelectedNode.Tag.ToString())[2]); - } - } + var colorEntry = (COLFile.ColorEntry)treeView1.SelectedNode.Tag; + alphaUpDown.Visible = false; + alphaLabel.Visible = false; + var color = colorEntry.color; + redUpDown.Value = color >> 16 & 0xff; + greenUpDown.Value = color >> 8 & 0xff; + blueUpDown.Value = color & 0xff; + pictureBox1.BackColor = Color.FromArgb(0xff << 24 | (int)color); + } + private void treeView2_AfterSelect(object sender, TreeViewEventArgs e) + { + if (treeView2.SelectedNode.Tag == null) + return; + var colorEntry = (COLFile.ExtendedColorEntry)treeView2.SelectedNode.Tag; + int color = (int)colorEntry.color; + alphaUpDown.Enabled = true; + alphaUpDown.Visible = true; + alphaLabel.Visible = true; + alphaUpDown.Value = color >> 24 & 0xff; + redUpDown.Value = color >> 16 & 0xff; + greenUpDown.Value = color >> 8 & 0xff; + blueUpDown.Value = color & 0xff; + pictureBox1.BackColor = Color.FromArgb(color); + } private void saveToolStripMenuItem1_Click(object sender, EventArgs e) { - cf.entries.Clear(); - cf.waterEntries.Clear(); - foreach (TreeNode tn in treeView1.Nodes) - { - cf.entries.Add(new COLFile.COLEntry(){ name = tn.Text, color = (uint)tn.Tag }); - } - foreach (TreeNode tn in treeView2.Nodes) - { - cf.waterEntries.Add(new COLFile.COLEntry() { name = tn.Text, color = (uint)tn.Tag }); - } using (var stream = new MemoryStream()) { cf.Save(stream); - mf.SetData(stream.ToArray()); + data = stream.ToArray(); } } @@ -115,96 +97,124 @@ namespace PckStudio.Forms.Utilities return val - (val < 58 ? 48 : (val < 97 ? 55 : 87)); } - public void treeViews_KeyDown(object sender, KeyEventArgs e) + public void treeView1_KeyDown(object sender, KeyEventArgs e) { - TreeView tv = (TreeView)sender; - if (e.KeyCode == Keys.Delete) + var node = treeView1.SelectedNode; + if (e.KeyCode == Keys.Delete && node.Tag is COLFile.ColorEntry) { - //removes minefile node - //cf.entries.Remove((object[])treeView1.SelectedNode.Tag); - //if(treeView1.Nodes.Count > 0) treeView1.Nodes.Remove(treeView1.SelectedNode); - } + cf.entries.Remove((COLFile.ColorEntry)node.Tag); + if (treeView1.Nodes.Count > 0) treeView1.Nodes.Remove(node); + } } - private void metroTextBox1_TextChanged(object sender, EventArgs e) - { - if (metroTextBox1.Text.Length % 2 != 0) return; - - TreeView tv = (TreeView)tabControl.SelectedTab.Controls[0]; - - tv.SelectedNode.Tag = metroTextBox1.Text; - - bool hasAlpha = tabControl.SelectedTab == waterTab; - - if (tv.SelectedNode.Tag != null && (metroTextBox1.Text.Length == (hasAlpha ? 8 : 6))) + private void treeView2_KeyDown(object sender, KeyEventArgs e) + { + var node = treeView2.SelectedNode; + if (e.KeyCode == Keys.Delete && node.Tag is COLFile.ExtendedColorEntry) { - numericUpDown3.Value = StringToByteArrayFastest(metroTextBox1.Text)[!hasAlpha ? 0 : 1]; - numericUpDown4.Value = StringToByteArrayFastest(metroTextBox1.Text)[!hasAlpha ? 1 : 2]; - numericUpDown5.Value = StringToByteArrayFastest(metroTextBox1.Text)[!hasAlpha ? 2 : 3]; - metroTextBox1.Text = tv.SelectedNode.Tag.ToString(); - if (hasAlpha) - { - metroTextBox1.MaxLength = 8; - metroLabel6.Visible = true; - numericUpDown2.Visible = true; - numericUpDown2.Value = StringToByteArrayFastest(metroTextBox1.Text)[0]; - pictureBox1.BackColor = Color.FromArgb(StringToByteArrayFastest(tv.SelectedNode.Tag.ToString())[0], StringToByteArrayFastest(tv.SelectedNode.Tag.ToString())[1], StringToByteArrayFastest(tv.SelectedNode.Tag.ToString())[2], StringToByteArrayFastest(tv.SelectedNode.Tag.ToString())[3]); - } - else - { - metroTextBox1.MaxLength = 6; - metroLabel6.Visible = false; - numericUpDown2.Visible = false; - pictureBox1.BackColor = Color.FromArgb(255, StringToByteArrayFastest(tv.SelectedNode.Tag.ToString())[0], StringToByteArrayFastest(tv.SelectedNode.Tag.ToString())[1], StringToByteArrayFastest(tv.SelectedNode.Tag.ToString())[2]); - } - } + cf.waterEntries.Remove((COLFile.ExtendedColorEntry)node.Tag); + if (treeView2.Nodes.Count > 0) treeView2.Nodes.Remove(node); + } + } + + private void colorBox_TextChanged(object sender, EventArgs e) + { + //TreeView tv = (TreeView)tabControl.SelectedTab.Controls[0]; + //if (tv.SelectedNode == null || tv.SelectedNode.Tag == null) + // return; + //bool hasAlpha = tabControl.SelectedTab == waterTab; + //alphaUpDown.Enabled = hasAlpha; + //redUpDown.Value = StringToByteArrayFastest(colorTextbox.Text)[!hasAlpha ? 0 : 1]; + //greenUpDown.Value = StringToByteArrayFastest(colorTextbox.Text)[!hasAlpha ? 1 : 2]; + //blueUpDown.Value = StringToByteArrayFastest(colorTextbox.Text)[!hasAlpha ? 2 : 3]; + //int color = 0; /*colorEntry.color*/; + // int argb = (int)((0xff000000u) | (color >> 24)); + //colorTextbox.MaxLength = hasAlpha ? 8 : 6; + //alphaLabel.Visible = false; + //alphaUpDown.Visible = false; + //if (hasAlpha) + //{ + // alphaLabel.Visible = true; + // alphaUpDown.Visible = true; + // alphaUpDown.Value = StringToByteArrayFastest(colorTextbox.Text)[0]; + // argb = color >> 24 | color << 8; + //} + //pictureBox1.BackColor = Color.FromArgb(argb); } private void color_ValueChanged(object sender, EventArgs e) { - TreeView tv = (TreeView)tabControl.SelectedTab.Controls[0]; - if (tv.SelectedNode == null) return; - byte[] origHex = StringToByteArrayFastest(tv.SelectedNode.Tag.ToString()); - bool hasAlpha = tabControl.SelectedTab == waterTab; - string hex = ""; - if (((NumericUpDown)sender).Name == "numericUpDown2") - { - hex += ((int)numericUpDown2.Value).ToString("X2"); - hex += origHex[1].ToString("X2"); - hex += origHex[2].ToString("X2"); - hex += origHex[3].ToString("X2"); - } - else if (((NumericUpDown)sender).Name == "numericUpDown3") - { - if (hasAlpha) hex += origHex[0].ToString("X2"); - hex += ((int)numericUpDown3.Value).ToString("X2"); - hex += origHex[hasAlpha ? 2 : 1].ToString("X2"); - hex += origHex[hasAlpha ? 3 : 2].ToString("X2"); - } - else if (((NumericUpDown)sender).Name == "numericUpDown4") - { - if (hasAlpha) hex += origHex[0].ToString("X2"); - hex += origHex[hasAlpha ? 1 : 0].ToString("X2"); - hex += ((int)numericUpDown4.Value).ToString("X2"); - hex += origHex[hasAlpha ? 3 : 2].ToString("X2"); - } - else if (((NumericUpDown)sender).Name == "numericUpDown5") - { - if (hasAlpha) hex += origHex[0].ToString("X2"); - hex += origHex[hasAlpha ? 1 : 0].ToString("X2"); - hex += origHex[hasAlpha ? 2 : 1].ToString("X2"); - hex += ((int)numericUpDown5.Value).ToString("X2"); - } - else // just in case some weird thing happens i dunno - matt - { - if (hasAlpha) hex += origHex[0].ToString("X2"); - hex += origHex[hasAlpha ? 1 : 0].ToString("X2"); - hex += origHex[hasAlpha ? 2 : 1].ToString("X2"); - hex += origHex[hasAlpha ? 3 : 2].ToString("X2"); - } + //TreeView tv = (TreeView)tabControl.SelectedTab.Controls[0]; + //if (tv.SelectedNode == null) return; + //byte[] origHex = StringToByteArrayFastest(tv.SelectedNode.Tag.ToString()); + //bool hasAlpha = tabControl.SelectedTab == waterTab; + //string hex = ""; + //if (((NumericUpDown)sender).Name == "numericUpDown2") + //{ + // hex += ((int)alphaUpDown.Value).ToString("X2"); + // hex += origHex[1].ToString("X2"); + // hex += origHex[2].ToString("X2"); + // hex += origHex[3].ToString("X2"); + //} + //else if (((NumericUpDown)sender).Name == "numericUpDown3") + //{ + // if (hasAlpha) hex += origHex[0].ToString("X2"); + // hex += ((int)redUpDown.Value).ToString("X2"); + // hex += origHex[hasAlpha ? 2 : 1].ToString("X2"); + // hex += origHex[hasAlpha ? 3 : 2].ToString("X2"); + //} + //else if (((NumericUpDown)sender).Name == "numericUpDown4") + //{ + // if (hasAlpha) hex += origHex[0].ToString("X2"); + // hex += origHex[hasAlpha ? 1 : 0].ToString("X2"); + // hex += ((int)greenUpDown.Value).ToString("X2"); + // hex += origHex[hasAlpha ? 3 : 2].ToString("X2"); + //} + //else if (((NumericUpDown)sender).Name == "numericUpDown5") + //{ + // if (hasAlpha) hex += origHex[0].ToString("X2"); + // hex += origHex[hasAlpha ? 1 : 0].ToString("X2"); + // hex += origHex[hasAlpha ? 2 : 1].ToString("X2"); + // hex += ((int)blueUpDown.Value).ToString("X2"); + //} + //else // just in case some weird thing happens i dunno - matt + //{ + // if (hasAlpha) hex += origHex[0].ToString("X2"); + // hex += origHex[hasAlpha ? 1 : 0].ToString("X2"); + // hex += origHex[hasAlpha ? 2 : 1].ToString("X2"); + // hex += origHex[hasAlpha ? 3 : 2].ToString("X2"); + //} - Console.WriteLine(hex); - metroTextBox1.Text = hex; + //Console.WriteLine(hex); + //colorTextbox.Text = hex; } - } + + private void setColorBtn_Click(object sender, EventArgs e) + { + ColorDialog colorPick = new ColorDialog(); + colorPick.AllowFullOpen = true; + colorPick.AnyColor = true; + colorPick.SolidColorOnly = tabControl.SelectedTab == colorsTab; + if (colorPick.ShowDialog() != DialogResult.OK) return; + pictureBox1.BackColor = colorPick.Color; + if (tabControl.SelectedTab == waterTab && treeView2.SelectedNode != null && + treeView2.SelectedNode.Tag != null && treeView2.SelectedNode.Tag is COLFile.ExtendedColorEntry) + { + var colorEntry = ((COLFile.ExtendedColorEntry)treeView2.SelectedNode.Tag); + colorEntry.color = (uint)colorPick.Color.ToArgb(); + } + else if (tabControl.SelectedTab == colorsTab && treeView1.SelectedNode != null && + treeView1.SelectedNode.Tag != null && treeView1.SelectedNode.Tag is COLFile.ColorEntry) + { + var colorEntry = ((COLFile.ColorEntry)treeView1.SelectedNode.Tag); + colorEntry.color = (uint)colorPick.Color.ToArgb() & 0xffffff; + } + colorPick.Dispose(); + } + + private void COLEditor_FormClosing(object sender, FormClosingEventArgs e) + { + DialogResult = DialogResult.OK; + } + } } diff --git a/MinecraftUSkinEditor/Forms/Utilities/COLEditor.resx b/MinecraftUSkinEditor/Forms/Utilities/COLEditor.resx index 4ff3803a..fdd1c8b7 100644 --- a/MinecraftUSkinEditor/Forms/Utilities/COLEditor.resx +++ b/MinecraftUSkinEditor/Forms/Utilities/COLEditor.resx @@ -118,199 +118,229 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 341, 406 + + 343, 290 - - 127, 20 + + 125, 23 - - 21 + + 22 - - numericUpDown5 + + Set Color - - System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + setColorBtn - + + MetroFramework.Controls.MetroButton, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a + + metroPanel1 - + 2 - - 341, 380 + + 343, 397 - - 127, 20 + + 125, 20 - - 20 + + 21 - - numericUpDown4 + + blueUpDown - + System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + metroPanel1 - + 3 - - 341, 354 + + 343, 371 - - 127, 20 + + 125, 20 - - 19 + + 20 - - numericUpDown3 + + greenUpDown - + System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + metroPanel1 - + 4 - - 341, 328 + + 343, 345 - - 127, 20 + + 125, 20 - - 18 + + 19 - - numericUpDown2 + + redUpDown - + System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + metroPanel1 - + 5 - - True + + 343, 319 - - 318, 328 + + 125, 20 - - 21, 19 + + 18 - - 16 + + False - - A: + + alphaUpDown - - metroLabel6 + + System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - MetroFramework.Controls.MetroLabel, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a - - + metroPanel1 - + 6 - + True - - 318, 403 + + 310, 320 - - 20, 19 - - - 12 - - - B: - - - metroLabel5 - - - MetroFramework.Controls.MetroLabel, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a - - - metroPanel1 - - - 7 - - - True - - - 318, 378 - - + 21, 19 - - 10 + + 16 - - G: + + A: - - metroLabel4 + + False - + + alphaLabel + + MetroFramework.Controls.MetroLabel, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a - + metroPanel1 - - 8 + + 7 - + True - - 318, 353 + + 311, 395 - + 20, 19 - - 8 + + 12 - - R: + + B: - - metroLabel3 + + blueLabel - + MetroFramework.Controls.MetroLabel, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a - + metroPanel1 - + + 8 + + + True + + + 310, 371 + + + 21, 19 + + + 10 + + + G: + + + greenLabel + + + MetroFramework.Controls.MetroLabel, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a + + + metroPanel1 + + 9 + + True + + + 311, 345 + + + 20, 19 + + + 8 + + + R: + + + redLabel + + + MetroFramework.Controls.MetroLabel, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a + + + metroPanel1 + + + 10 + @@ -319,7 +349,7 @@ NoControl - 105, 1 + 103, 1 21, 21 @@ -330,32 +360,32 @@ False - - 341, 299 + + 343, 423 - - 127, 23 + + 125, 23 - + 4 - - metroTextBox1 + + colorTextbox - + MetroFramework.Controls.MetroTextBox, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a - + metroPanel1 - - 10 + + 11 True - 295, 299 + 285, 423 46, 19 @@ -376,13 +406,13 @@ metroPanel1 - 11 + 12 - 295, 106 + 295, 92 - 173, 163 + 173, 173 2 @@ -397,7 +427,7 @@ metroPanel1 - 12 + 13 Fill @@ -432,7 +462,7 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - wgAADsIBFShKgAAAABl0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC4yMfEgaZUAAADfSURBVDhPYxg8 + vAAADrwBlbxySQAAABl0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC4yMfEgaZUAAADfSURBVDhPYxg8 QLt++3yTGbf/Fm599P/Nh49wfPXxq/+rTt37f+Dak/8gOSBgAGEMANIMxGBFyAasPf/0v8GE8//z1t8C y4HU4DIALIluwLpLL+HiMANAGKoNAWASCavv/n/57gPcgOvP3oENOXj7NViOoAFGU6791+k4ghWD5Aga QCyGakMAkODcU89R/I8Ng9TgNADk14dPn/8/c+kqVgySgwUqVBsCwAx49urN/zsPHmPFIDmaGvAXJInN @@ -475,28 +505,31 @@ 0 - - 4, 38 + + Fill - + + 0, 0 + + + No + + 186, 458 - + 0 - - Normal Colors + + treeView2 - - colorsTab + + System.Windows.Forms.TreeView, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + waterTab - - tabControl - - + 0 @@ -523,6 +556,57 @@ 1 + + Fill + + + 0, 0 + + + 186, 458 + + + 0 + + + treeView1 + + + System.Windows.Forms.TreeView, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + colorsTab + + + 0 + + + 4, 38 + + + 186, 458 + + + 0 + + + Normal Colors + + + colorsTab + + + System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabControl + + + 0 + + + Top, Bottom, Left + 20, 83 @@ -553,6 +637,9 @@ 652, 603 + + 652, 603 + CenterParent