From adb4f928d2c4e06b4ebe75a710cece322f807825 Mon Sep 17 00:00:00 2001 From: MayNL Date: Wed, 6 May 2026 00:05:05 -0400 Subject: [PATCH] Added "Add OFFSET Parameter" context tool --- .../Controls/Editor/PckEditor.Designer.cs | 11 +- PCK-Studio/Controls/Editor/PckEditor.cs | 40 + PCK-Studio/Controls/Editor/PckEditor.resx | 692 ++++++++---------- 3 files changed, 360 insertions(+), 383 deletions(-) diff --git a/PCK-Studio/Controls/Editor/PckEditor.Designer.cs b/PCK-Studio/Controls/Editor/PckEditor.Designer.cs index 636bf9b2..dfe17388 100644 --- a/PCK-Studio/Controls/Editor/PckEditor.Designer.cs +++ b/PCK-Studio/Controls/Editor/PckEditor.Designer.cs @@ -114,6 +114,7 @@ namespace PckStudio.Controls this.addMultipleEntriesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.LittleEndianCheckBox = new MetroFramework.Controls.MetroCheckBox(); this.previewPictureBox = new PckStudio.ToolboxItems.InterpolationPictureBox(); + this.addOFFSETParameterToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); logoPictureBox = new System.Windows.Forms.PictureBox(); ((System.ComponentModel.ISupportInitialize)(logoPictureBox)).BeginInit(); this.ParametersTabControl.SuspendLayout(); @@ -284,8 +285,9 @@ namespace PckStudio.Controls // this.addParameterToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.addParameterToolStripMenuItem1, + this.addANIMEntryToolStripMenuItem1, this.addBOXEntryToolStripMenuItem1, - this.addANIMEntryToolStripMenuItem1}); + this.addOFFSETParameterToolStripMenuItem}); resources.ApplyResources(this.addParameterToolStripMenuItem, "addParameterToolStripMenuItem"); this.addParameterToolStripMenuItem.Name = "addParameterToolStripMenuItem"; // @@ -782,6 +784,12 @@ namespace PckStudio.Controls this.previewPictureBox.Name = "previewPictureBox"; this.previewPictureBox.TabStop = false; // + // addOFFSETParameterToolStripMenuItem + // + this.addOFFSETParameterToolStripMenuItem.Name = "addOFFSETParameterToolStripMenuItem"; + resources.ApplyResources(this.addOFFSETParameterToolStripMenuItem, "addOFFSETParameterToolStripMenuItem"); + this.addOFFSETParameterToolStripMenuItem.Click += new System.EventHandler(this.addOFFSETParameterToolStripMenuItem_Click); + // // PckEditor // this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(18)))), ((int)(((byte)(18)))), ((int)(((byte)(18))))); @@ -893,5 +901,6 @@ namespace PckStudio.Controls private ToolStripMenuItem exportIconToolStripMenuItem; private ToolStripMenuItem fullBodyToolStripMenuItem; private ToolStripMenuItem croppedToolStripMenuItem; + private ToolStripMenuItem addOFFSETParameterToolStripMenuItem; } } \ No newline at end of file diff --git a/PCK-Studio/Controls/Editor/PckEditor.cs b/PCK-Studio/Controls/Editor/PckEditor.cs index 4cb08074..51a90ea9 100644 --- a/PCK-Studio/Controls/Editor/PckEditor.cs +++ b/PCK-Studio/Controls/Editor/PckEditor.cs @@ -2564,6 +2564,46 @@ namespace PckStudio.Controls private void fullBodyToolStripMenuItem_Click(object sender, EventArgs e) => exportSkinIcon(); private void croppedToolStripMenuItem_Click(object sender, EventArgs e) => exportSkinIcon(cropped: true); + private void addOFFSETParameterToolStripMenuItem_Click(object sender, EventArgs e) + { + if (treeViewMain?.SelectedNode.TryGetTagData(out PckAsset asset) ?? false) + { + Skin skin = null; + + try + { + skin = asset.GetSkin(); + } + catch { + MessageBox.Show(this, "Failed to get skin", "Parameter not added"); + return; + } + + // code borrowed from CustomSkinEditor + var offsets = skin.Model.PartOffsets.Select(offset => offset.Type).ToList(); + string[] available = SkinPartOffset.ValidModelOffsetTypes.Where(s => !offsets.Contains(s)).ToArray(); + + if(available.Length == 0) + { + MessageBox.Show(this, "All possible offset types are already present on this skin.", "Parameter not added"); + return; + } + + using ItemSelectionPopUp typeSelection = new ItemSelectionPopUp(available); + const float cOffsetMaximum = 100_000f; + using NumericPrompt valuePrompt = new NumericPrompt(0f, -cOffsetMaximum, cOffsetMaximum); + valuePrompt.DecimalPlaces = 1; + valuePrompt.ValueStep = (decimal)0.1f; + valuePrompt.OKButton.Text = "Add"; + if (typeSelection.ShowDialog() == DialogResult.OK && valuePrompt.ShowDialog() == DialogResult.OK) + { + asset.AddParameter(SkinPartOffset.FromString($"{typeSelection.SelectedItem} Y {(float)valuePrompt.SelectedValue}").ToParameter()); + ReloadParameterTreeView(); + _wasModified = true; + } + } + } + private void contextMenuPCKEntries_Opening(object sender, System.ComponentModel.CancelEventArgs e) { fixSkinDecimalsToolStripMenuItem.Visible = false; diff --git a/PCK-Studio/Controls/Editor/PckEditor.resx b/PCK-Studio/Controls/Editor/PckEditor.resx index 2647141f..5d345c0c 100644 --- a/PCK-Studio/Controls/Editor/PckEditor.resx +++ b/PCK-Studio/Controls/Editor/PckEditor.resx @@ -905,141 +905,6 @@ 6 - - MetaTab - - - MetroFramework.Controls.MetroTabPage, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a - - - ParametersTabControl - - - 0 - - - Bottom - - - 407, 270 - - - 604, 281 - - - 11 - - - ParametersTabControl - - - MetroFramework.Controls.MetroTabControl, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a - - - $this - - - 7 - - - metroLabel2 - - - MetroFramework.Controls.MetroLabel, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a - - - MetaTab - - - 2 - - - ParameterTypeTextBox - - - MetroFramework.Controls.MetroTextBox, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a - - - MetaTab - - - 3 - - - parameterValueTextBox - - - MetroFramework.Controls.MetroTextBox, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a - - - MetaTab - - - 4 - - - buttonEdit - - - MetroFramework.Controls.MetroButton, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a - - - MetaTab - - - 5 - - - metroLabel1 - - - MetroFramework.Controls.MetroLabel, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a - - - MetaTab - - - 6 - - - treeParameters - - - System.Windows.Forms.TreeView, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - MetaTab - - - 7 - - - 4, 38 - - - 5, 5, 5, 5 - - - 596, 239 - - - 0 - - - Parameters - - - MetaTab - - - MetroFramework.Controls.MetroTabPage, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a - - - ParametersTabControl - - - 0 - Bottom, Right @@ -1047,7 +912,7 @@ True - 76, 75 + 76, 72 0, 0 @@ -1092,7 +957,7 @@ False - 215, 45 + 215, 42 146, 20 @@ -1137,7 +1002,7 @@ False - 215, 77 + 215, 74 146, 20 @@ -1161,7 +1026,7 @@ Bottom, Right - 215, 103 + 215, 100 146, 33 @@ -1194,7 +1059,7 @@ True - 138, -32 + 138, -35 0, 0 @@ -1217,8 +1082,64 @@ 301, 19 + + 248, 22 + + + Add Parameter + + + 248, 22 + + + Add Skin Adjustment Parameters + + + 248, 22 + + + Add BOX Parameter + + + 248, 22 + + + Add OFFSET Parameter + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + vAAADrwBlbxySQAAABl0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC4xMkMEa+wAAABPSURBVDhP5ZAx + DgAgCAMZ/f+HMcbYYOmg0UmHY2ibGzB3txNSgMKsHcD9ksBL5wcBPwyPCwLFJBjjVe4LFHGsgEDBAu6x + 4+AxAT9MkYJdKi90axNkwjxWAAAAAElFTkSuQmCC + + + + 205, 22 + + + Add Parameter + + + 205, 22 + + + Add Multiple Parameters + + + 205, 22 + + + Delete Parameter + + + 205, 22 + + + Edit All Parameters + - 206, 92 + 206, 114 contextMenuParameterTree @@ -1250,55 +1171,56 @@ 7 - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - vAAADrwBlbxySQAAABl0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC4xMkMEa+wAAABPSURBVDhP5ZAx - DgAgCAMZ/f+HMcbYYOmg0UmHY2ibGzB3txNSgMKsHcD9ksBL5wcBPwyPCwLFJBjjVe4LFHGsgEDBAu6x - 4+AxAT9MkYJdKi90axNkwjxWAAAAAElFTkSuQmCC - + + 4, 38 - - 205, 22 + + 5, 5, 5, 5 - - Add Parameter + + 596, 239 - - 248, 22 + + 0 - - Add Parameter + + Parameters - - 248, 22 + + MetaTab - - Add BOX Parameter + + MetroFramework.Controls.MetroTabPage, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a - - 248, 22 + + ParametersTabControl - - Add Skin Adjustment Parameters + + 0 - - 205, 22 + + Bottom - - Add Multiple Parameters + + 407, 270 - - 205, 22 + + 604, 281 - - Delete Parameter + + 11 - - 205, 22 + + ParametersTabControl - - Edit All Parameters + + MetroFramework.Controls.MetroTabControl, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a + + + $this + + + 7 True @@ -1330,212 +1252,6 @@ 22, 20 - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - vAAADrwBlbxySQAAABl0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC4xOdTWsmQAAAAwSURBVDhPY/j/ - /z8DJRhDAI5FGf6jYHT5UQPQDEBXTCweTgZgw1gUY8MYAqMGkI4B8bClX7FZFPQAAAAASUVORK5CYII= - - - - 180, 22 - - - Create - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - vAAADrwBlbxySQAAABl0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC4xOdTWsmQAAABoSURBVDhPvcxB - CsAgDAVRL9GLZ+81cj2L0kA61UQoGPjgwnmlPFdrbavZn/AY+alqjjAikCKMZkCIMFoBS4SRn4h8xj4E - Zgj7FCDCfgvwCPstoF1l7DfQ3+xDwELuHECov1/xMcDPuhsgou11NRjL2QAAAABJRU5ErkJggg== - - - - 180, 22 - - - Import - - - 180, 22 - - - Export - - - 177, 6 - - - 223, 22 - - - Set File Type - - - 223, 22 - - - View File Info - - - 223, 22 - - - Generate MipMap Texture - - - 223, 22 - - - Fix Skin Decimals - - - 223, 22 - - - Set Endianness - - - 223, 22 - - - Set Model Container version - - - 223, 22 - - - Set BOX Version - - - 180, 22 - - - Full Body - - - 180, 22 - - - Cropped - - - 223, 22 - - - Export Icon - - - 180, 22 - - - File Functions - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - vAAADrwBlbxySQAAABl0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC4xMkMEa+wAAACOSURBVDhPpZJd - DoAwCIPZzwV2/8NiMGnEwlDjQ+MC9aNDRVXF1HtXEdnK+vB6XYfzGA3ozTlTyGuAPVtrARJMmXxvjHGD - pCYW99Zaamk+AfySLQX8KQBGBnmFBLwcM1SQkCATYnM9ADCN5eslYKfqGo8Av+lMAeCXaJMNwC+VgGpa - pt8AJL4V+CtUwo90ADqxXn/OjxN+AAAAAElFTkSuQmCC - - - - 180, 22 - - - Extract - - - 177, 6 - - - 180, 22 - - - Clone - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - vAAADrwBlbxySQAAACRJREFUOE9jYMAE/wlgkgBZmpDBqAGjBoDAqAFkGgDThAujAADOGivVQUoauAAA - AABJRU5ErkJggg== - - - - 180, 22 - - - Rename - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - vAAADrwBlbxySQAAABl0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC4xMkMEa+wAAAC4SURBVDhPlVJR - DoUgDFsI/x7A63AvDso/XIBvfNliycCBviXLsLG11BERUYxRmiuEcPyDAbi4vfcyde/I8gyBWuvF1VqT - ZiylJHNFBkb8ZU3mMtzY5BscyJYbi9xzgIBFfnPTM1iRGdMO+XwL7kPUgtqhdrMNUQtaDnGVzyFa2BAi - 2gisYyDmnHsO5m9ZBasxPusQ4UKmc+6cbYOs52OZZtv6zmwbgqUUvGeuJ8J5CM7YsExWDl+wH0Tk2pdR - m6i0AAAAAElFTkSuQmCC - - - - 180, 22 - - - Replace - - - 180, 22 - - - Delete - - - 181, 236 - - - contextMenuPCKEntries - - - System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Left - - - 0 - - - 204, 20 - - - 64, 64 - - - 5, 50 - - - 0 - - - 402, 501 - - - 20 - - - treeViewMain - - - System.Windows.Forms.TreeView, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - $this - - - 9 - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO @@ -1624,6 +1340,19 @@ EntityMaterials.bin + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + vAAADrwBlbxySQAAABl0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC4xOdTWsmQAAAAwSURBVDhPY/j/ + /z8DJRhDAI5FGf6jYHT5UQPQDEBXTCweTgZgw1gUY8MYAqMGkI4B8bClX7FZFPQAAAAASUVORK5CYII= + + + + 147, 22 + + + Create + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO @@ -1675,12 +1404,35 @@ Add File + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + vAAADrwBlbxySQAAABl0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC4xOdTWsmQAAABoSURBVDhPvcxB + CsAgDAVRL9GLZ+81cj2L0kA61UQoGPjgwnmlPFdrbavZn/AY+alqjjAikCKMZkCIMFoBS4SRn4h8xj4E + Zgj7FCDCfgvwCPstoF1l7DfQ3+xDwELuHECov1/xMcDPuhsgou11NRjL2QAAAABJRU5ErkJggg== + + + + 147, 22 + + + Import + 185, 22 Export as 3DS Texture + + 147, 22 + + + Export + + + 144, 6 + 222, 22 @@ -1753,6 +1505,30 @@ Entity Materials File (.BIN) + + 223, 22 + + + Set File Type + + + 223, 22 + + + View File Info + + + 223, 22 + + + Generate MipMap Texture + + + 223, 22 + + + Fix Skin Decimals + 100, 22 @@ -1765,6 +1541,12 @@ Little + + 223, 22 + + + Set Endianness + 163, 22 @@ -1783,6 +1565,12 @@ Models Version 3 + + 223, 22 + + + Set Model Container version + 147, 22 @@ -1807,6 +1595,140 @@ BOX Version 3 + + 223, 22 + + + Set BOX Version + + + 123, 22 + + + Full Body + + + 123, 22 + + + Cropped + + + 223, 22 + + + Export Icon + + + 147, 22 + + + File Functions + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + vAAADrwBlbxySQAAABl0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC4xMkMEa+wAAACOSURBVDhPpZJd + DoAwCIPZzwV2/8NiMGnEwlDjQ+MC9aNDRVXF1HtXEdnK+vB6XYfzGA3ozTlTyGuAPVtrARJMmXxvjHGD + pCYW99Zaamk+AfySLQX8KQBGBnmFBLwcM1SQkCATYnM9ADCN5eslYKfqGo8Av+lMAeCXaJMNwC+VgGpa + pt8AJL4V+CtUwo90ADqxXn/OjxN+AAAAAElFTkSuQmCC + + + + 147, 22 + + + Extract + + + 144, 6 + + + 147, 22 + + + Clone + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + vAAADrwBlbxySQAAACRJREFUOE9jYMAE/wlgkgBZmpDBqAGjBoDAqAFkGgDThAujAADOGivVQUoauAAA + AABJRU5ErkJggg== + + + + 147, 22 + + + Rename + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + vAAADrwBlbxySQAAABl0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC4xMkMEa+wAAAC4SURBVDhPlVJR + DoUgDFsI/x7A63AvDso/XIBvfNliycCBviXLsLG11BERUYxRmiuEcPyDAbi4vfcyde/I8gyBWuvF1VqT + ZiylJHNFBkb8ZU3mMtzY5BscyJYbi9xzgIBFfnPTM1iRGdMO+XwL7kPUgtqhdrMNUQtaDnGVzyFa2BAi + 2gisYyDmnHsO5m9ZBasxPusQ4UKmc+6cbYOs52OZZtv6zmwbgqUUvGeuJ8J5CM7YsExWDl+wH0Tk2pdR + m6i0AAAAAElFTkSuQmCC + + + + 147, 22 + + + Replace + + + 147, 22 + + + Delete + + + 148, 214 + + + contextMenuPCKEntries + + + System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Left + + + 0 + + + 204, 20 + + + 64, 64 + + + 5, 50 + + + 0 + + + 402, 501 + + + 20 + + + treeViewMain + + + System.Windows.Forms.TreeView, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 9 + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO @@ -2283,6 +2205,12 @@ System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + addOFFSETParameterToolStripMenuItem + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + PckEditor