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