From afd6c604be744051b2978f425174a9c66384a397 Mon Sep 17 00:00:00 2001 From: MayNL Date: Sat, 20 Jun 2026 21:42:06 -0400 Subject: [PATCH] Added dedicated display armor buttons to Skin Editor --- .../Forms/Editor/CustomSkinEditor.Designer.cs | 105 +++++++- PCK-Studio/Forms/Editor/CustomSkinEditor.cs | 23 +- PCK-Studio/Forms/Editor/CustomSkinEditor.resx | 171 ++++++++---- PCK-Studio/PckStudio.csproj | 4 + PCK-Studio/Properties/Resources.Designer.cs | 40 +++ PCK-Studio/Properties/Resources.resx | 244 +++++++++--------- PCK-Studio/Rendering/SkinRenderer.cs | 66 +++-- PCK-Studio/Resources/armor.png | Bin 2355 -> 3047 bytes PCK-Studio/Resources/skin_editor/boots.png | Bin 0 -> 891 bytes .../Resources/skin_editor/chestplate.png | Bin 0 -> 879 bytes PCK-Studio/Resources/skin_editor/helmet.png | Bin 0 -> 887 bytes PCK-Studio/Resources/skin_editor/leggings.png | Bin 0 -> 785 bytes PckStudio.Rendering/CubeMeshCollection.cs | 6 +- 13 files changed, 449 insertions(+), 210 deletions(-) create mode 100644 PCK-Studio/Resources/skin_editor/boots.png create mode 100644 PCK-Studio/Resources/skin_editor/chestplate.png create mode 100644 PCK-Studio/Resources/skin_editor/helmet.png create mode 100644 PCK-Studio/Resources/skin_editor/leggings.png diff --git a/PCK-Studio/Forms/Editor/CustomSkinEditor.Designer.cs b/PCK-Studio/Forms/Editor/CustomSkinEditor.Designer.cs index c5d46ed1..eb5886c7 100644 --- a/PCK-Studio/Forms/Editor/CustomSkinEditor.Designer.cs +++ b/PCK-Studio/Forms/Editor/CustomSkinEditor.Designer.cs @@ -41,7 +41,6 @@ this.importSkinButton = new MetroFramework.Controls.MetroButton(); this.exportSkinButton = new MetroFramework.Controls.MetroButton(); this.generateTextureCheckBox = new MetroFramework.Controls.MetroCheckBox(); - this.showArmorCheckbox = new MetroFramework.Controls.MetroCheckBox(); this.skinPartListBox = new System.Windows.Forms.ListBox(); this.captureScreenshotButton = new MetroFramework.Controls.MetroButton(); this.showToolsCheckBox = new MetroFramework.Controls.MetroCheckBox(); @@ -61,12 +60,20 @@ this.exportTemplateButton = new MetroFramework.Controls.MetroButton(); this.boxEditorControl1 = new PckStudio.Controls.BoxEditorControl(); this.skinAdjustmentsEditorControl1 = new PckStudio.Controls.SkinAdjustmentsEditorControl(); + this.helmetButtonControl = new PckStudio.Controls.PictureButtonControl(); + this.chestplateButtonControl = new PckStudio.Controls.PictureButtonControl(); + this.leggingsButtonControl = new PckStudio.Controls.PictureButtonControl(); + this.bootsButtonControl = new PckStudio.Controls.PictureButtonControl(); this.skinPartTabContextMenu.SuspendLayout(); this.parameterTabControl.SuspendLayout(); this.skinPartsTabPage.SuspendLayout(); this.skinOffsetsTabPage.SuspendLayout(); this.offsetTabContextMenu.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.uvPictureBox)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.helmetButtonControl)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.chestplateButtonControl)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.leggingsButtonControl)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.bootsButtonControl)).BeginInit(); this.SuspendLayout(); // // importTextureButton @@ -157,14 +164,6 @@ this.generateTextureCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark; this.generateTextureCheckBox.UseSelectable = true; // - // showArmorCheckbox - // - resources.ApplyResources(this.showArmorCheckbox, "showArmorCheckbox"); - this.showArmorCheckbox.Name = "showArmorCheckbox"; - this.showArmorCheckbox.Theme = MetroFramework.MetroThemeStyle.Dark; - this.showArmorCheckbox.UseSelectable = true; - this.showArmorCheckbox.CheckedChanged += new System.EventHandler(this.showArmorCheckbox_CheckedChanged); - // // skinPartListBox // this.skinPartListBox.BorderStyle = System.Windows.Forms.BorderStyle.None; @@ -270,7 +269,7 @@ this.renderer3D1.SelectedIndex = -1; this.renderer3D1.SelectedIndices = new int[] { -1}; - this.renderer3D1.ShowArmor = false; + this.renderer3D1.ShowArmorMask = null; this.renderer3D1.ShowBoundingBox = false; this.renderer3D1.ShowGuideLines = false; this.renderer3D1.ShowTools = false; @@ -332,10 +331,86 @@ this.skinAdjustmentsEditorControl1.Name = "skinAdjustmentsEditorControl1"; this.skinAdjustmentsEditorControl1.AdjustmentsChanged += new System.EventHandler(this.skinAdjustmentsEditorControl1_AdjustmentsChanged); // + // helmetButtonControl + // + this.helmetButtonControl.BackColor = System.Drawing.Color.Transparent; + this.helmetButtonControl.DashStyle = System.Drawing.Drawing2D.DashStyle.Solid; + this.helmetButtonControl.ForceHidden = false; + this.helmetButtonControl.ForceShown = false; + this.helmetButtonControl.HiddenBorderColor = System.Drawing.Color.White; + this.helmetButtonControl.Image = global::PckStudio.Properties.Resources.helmet; + resources.ApplyResources(this.helmetButtonControl, "helmetButtonControl"); + this.helmetButtonControl.Inverted = true; + this.helmetButtonControl.Name = "helmetButtonControl"; + this.helmetButtonControl.SetDashStyle = System.Drawing.Drawing2D.DashStyle.Solid; + this.helmetButtonControl.ShownBorderColor = System.Drawing.Color.White; + this.helmetButtonControl.state = PckStudio.Controls.PictureButtonControl.DisplayState.Set; + this.helmetButtonControl.TabStop = false; + this.helmetButtonControl.Tag = PckStudio.Core.Skin.SkinArmorFlagsFlag.HELMET; + this.helmetButtonControl.Click += new System.EventHandler(this.armorButtonControl_Click); + // + // chestplateButtonControl + // + this.chestplateButtonControl.BackColor = System.Drawing.Color.Transparent; + this.chestplateButtonControl.DashStyle = System.Drawing.Drawing2D.DashStyle.Solid; + this.chestplateButtonControl.ForceHidden = false; + this.chestplateButtonControl.ForceShown = false; + this.chestplateButtonControl.HiddenBorderColor = System.Drawing.Color.White; + this.chestplateButtonControl.Image = global::PckStudio.Properties.Resources.chestplate; + resources.ApplyResources(this.chestplateButtonControl, "chestplateButtonControl"); + this.chestplateButtonControl.Inverted = true; + this.chestplateButtonControl.Name = "chestplateButtonControl"; + this.chestplateButtonControl.SetDashStyle = System.Drawing.Drawing2D.DashStyle.Solid; + this.chestplateButtonControl.ShownBorderColor = System.Drawing.Color.White; + this.chestplateButtonControl.state = PckStudio.Controls.PictureButtonControl.DisplayState.Set; + this.chestplateButtonControl.TabStop = false; + this.chestplateButtonControl.Tag = PckStudio.Core.Skin.SkinArmorFlagsFlag.CHESTPLATE; + this.chestplateButtonControl.Click += new System.EventHandler(this.armorButtonControl_Click); + // + // leggingsButtonControl + // + this.leggingsButtonControl.BackColor = System.Drawing.Color.Transparent; + this.leggingsButtonControl.DashStyle = System.Drawing.Drawing2D.DashStyle.Solid; + this.leggingsButtonControl.ForceHidden = false; + this.leggingsButtonControl.ForceShown = false; + this.leggingsButtonControl.HiddenBorderColor = System.Drawing.Color.White; + this.leggingsButtonControl.Image = global::PckStudio.Properties.Resources.leggings; + resources.ApplyResources(this.leggingsButtonControl, "leggingsButtonControl"); + this.leggingsButtonControl.Inverted = true; + this.leggingsButtonControl.Name = "leggingsButtonControl"; + this.leggingsButtonControl.SetDashStyle = System.Drawing.Drawing2D.DashStyle.Solid; + this.leggingsButtonControl.ShownBorderColor = System.Drawing.Color.White; + this.leggingsButtonControl.state = PckStudio.Controls.PictureButtonControl.DisplayState.Set; + this.leggingsButtonControl.TabStop = false; + this.leggingsButtonControl.Tag = PckStudio.Core.Skin.SkinArmorFlagsFlag.LEGGINGS; + this.leggingsButtonControl.Click += new System.EventHandler(this.armorButtonControl_Click); + // + // bootsButtonControl + // + this.bootsButtonControl.BackColor = System.Drawing.Color.Transparent; + this.bootsButtonControl.DashStyle = System.Drawing.Drawing2D.DashStyle.Solid; + this.bootsButtonControl.ForceHidden = false; + this.bootsButtonControl.ForceShown = false; + this.bootsButtonControl.HiddenBorderColor = System.Drawing.Color.White; + this.bootsButtonControl.Image = global::PckStudio.Properties.Resources.boots; + resources.ApplyResources(this.bootsButtonControl, "bootsButtonControl"); + this.bootsButtonControl.Inverted = true; + this.bootsButtonControl.Name = "bootsButtonControl"; + this.bootsButtonControl.SetDashStyle = System.Drawing.Drawing2D.DashStyle.Solid; + this.bootsButtonControl.ShownBorderColor = System.Drawing.Color.White; + this.bootsButtonControl.state = PckStudio.Controls.PictureButtonControl.DisplayState.Set; + this.bootsButtonControl.TabStop = false; + this.bootsButtonControl.Tag = PckStudio.Core.Skin.SkinArmorFlagsFlag.BOOTS; + this.bootsButtonControl.Click += new System.EventHandler(this.armorButtonControl_Click); + // // CustomSkinEditor // resources.ApplyResources(this, "$this"); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.bootsButtonControl); + this.Controls.Add(this.leggingsButtonControl); + this.Controls.Add(this.chestplateButtonControl); + this.Controls.Add(this.helmetButtonControl); this.Controls.Add(this.skinAdjustmentsEditorControl1); this.Controls.Add(this.parameterTabControl); this.Controls.Add(this.boxEditorControl1); @@ -344,7 +419,6 @@ this.Controls.Add(this.textureSizeLabel); this.Controls.Add(this.showToolsCheckBox); this.Controls.Add(this.centerSelectionCheckbox); - this.Controls.Add(this.showArmorCheckbox); this.Controls.Add(this.generateTextureCheckBox); this.Controls.Add(this.uvPictureBox); this.Controls.Add(this.exportTemplateButton); @@ -365,6 +439,10 @@ this.skinOffsetsTabPage.ResumeLayout(false); this.offsetTabContextMenu.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.uvPictureBox)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.helmetButtonControl)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.chestplateButtonControl)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.leggingsButtonControl)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.bootsButtonControl)).EndInit(); this.ResumeLayout(false); this.PerformLayout(); @@ -383,7 +461,6 @@ private MetroFramework.Controls.MetroButton importTextureButton; private MetroFramework.Controls.MetroButton exportTextureButton; private MetroFramework.Controls.MetroCheckBox generateTextureCheckBox; - private MetroFramework.Controls.MetroCheckBox showArmorCheckbox; private Rendering.SkinRenderer renderer3D1; private System.Windows.Forms.ListBox skinPartListBox; private MetroFramework.Controls.MetroButton captureScreenshotButton; @@ -402,5 +479,9 @@ private MetroFramework.Controls.MetroButton exportTemplateButton; private Controls.BoxEditorControl boxEditorControl1; private Controls.SkinAdjustmentsEditorControl skinAdjustmentsEditorControl1; + private Controls.PictureButtonControl helmetButtonControl; + private Controls.PictureButtonControl chestplateButtonControl; + private Controls.PictureButtonControl leggingsButtonControl; + private Controls.PictureButtonControl bootsButtonControl; } } \ No newline at end of file diff --git a/PCK-Studio/Forms/Editor/CustomSkinEditor.cs b/PCK-Studio/Forms/Editor/CustomSkinEditor.cs index 1c667693..900711b4 100644 --- a/PCK-Studio/Forms/Editor/CustomSkinEditor.cs +++ b/PCK-Studio/Forms/Editor/CustomSkinEditor.cs @@ -27,6 +27,7 @@ namespace PckStudio.Forms.Editor private bool _inflateOverlayParts; private int _xmlVersion; private SkinGameFlags _gameFlags; + private SkinArmorFlags displayArmorFlags = SkinArmorFlags.Empty; private BindingSource _skinPartListBindingSource; private BindingSource _skinOffsetListBindingSource; @@ -55,6 +56,7 @@ namespace PckStudio.Forms.Editor boxEditorControl1.SetBOXVersion(xmlVersion); _inflateOverlayParts = _xmlVersion > 0 && _xmlVersion < 3; skinAdjustmentsEditorControl1.SetSkin(skin); + renderer3D1.ShowArmorMask = displayArmorFlags; } private void InitializeRenderSettings() @@ -316,11 +318,6 @@ namespace PckStudio.Forms.Editor } } - private void showArmorCheckbox_CheckedChanged(object sender, EventArgs e) - { - renderer3D1.ShowArmor = showArmorCheckbox.Checked; - } - private void showToolsCheckBox_CheckedChanged(object sender, EventArgs e) { renderer3D1.ShowTools = showToolsCheckBox.Checked; @@ -455,7 +452,7 @@ namespace PckStudio.Forms.Editor if (index > -1) { renderer3D1.ModelData[index] = boxEditorControl1.GetBOX(); - renderer3D1.ShowArmor = showArmorCheckbox.Checked; + renderer3D1.ShowArmorMask = displayArmorFlags; _skinPartListBindingSource.ResetItem(index); } } @@ -465,5 +462,19 @@ namespace PckStudio.Forms.Editor renderer3D1.ANIM = skinAdjustmentsEditorControl1.GetAnim(); _gameFlags = skinAdjustmentsEditorControl1.GetGameFlags(); } + + private void armorButtonControl_Click(object sender, EventArgs e) + { + PictureButtonControl btn = (PictureButtonControl)sender; + + bool state = btn.state == PictureButtonControl.DisplayState.Set; + SkinArmorFlagsFlag flag = (SkinArmorFlagsFlag)btn.Tag; + + btn.state = !state ? PictureButtonControl.DisplayState.Set : PictureButtonControl.DisplayState.Default; + displayArmorFlags = displayArmorFlags.SetFlag(flag, state); + renderer3D1.ShowArmorMask = displayArmorFlags; + + btn.Refresh(); + } } } \ No newline at end of file diff --git a/PCK-Studio/Forms/Editor/CustomSkinEditor.resx b/PCK-Studio/Forms/Editor/CustomSkinEditor.resx index 5b0e62ff..9623dc43 100644 --- a/PCK-Studio/Forms/Editor/CustomSkinEditor.resx +++ b/PCK-Studio/Forms/Editor/CustomSkinEditor.resx @@ -141,7 +141,7 @@ $this - 6 + 10 97, 249 @@ -165,7 +165,7 @@ $this - 5 + 9 17, 17 @@ -272,7 +272,7 @@ $this - 20 + 23 3, 396 @@ -296,7 +296,7 @@ $this - 19 + 22 97, 396 @@ -320,7 +320,7 @@ $this - 18 + 21 True @@ -347,34 +347,7 @@ $this - 11 - - - True - - - 49, 375 - - - 89, 15 - - - 149 - - - Show Armor - - - showArmorCheckbox - - - MetroFramework.Controls.MetroCheckBox, MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a - - - $this - - - 10 + 14 Fill @@ -422,13 +395,13 @@ $this - 16 + 19 True - 49, 354 + 56, 375 83, 15 @@ -449,7 +422,7 @@ $this - 8 + 12 Top, Left, Right @@ -479,7 +452,7 @@ $this - 15 + 18 Bottom, Right @@ -599,7 +572,7 @@ $this - 3 + 7 Top, Bottom, Left, Right @@ -623,7 +596,7 @@ $this - 17 + 20 Zoom @@ -653,7 +626,7 @@ $this - 12 + 15 True @@ -680,7 +653,7 @@ $this - 9 + 13 True @@ -710,7 +683,7 @@ $this - 7 + 11 97, 423 @@ -734,7 +707,7 @@ $this - 14 + 17 3, 423 @@ -758,7 +731,7 @@ $this - 13 + 16 Bottom, Right @@ -785,7 +758,7 @@ $this - 4 + 8 Bottom, Right @@ -809,6 +782,114 @@ $this + 6 + + + NoControl + + + 27, 339 + + + 30, 30 + + + StretchImage + + + 180 + + + helmetButtonControl + + + PckStudio.Controls.PictureButtonControl, PCK-Studio, Version=7.0.1.2, Culture=neutral, PublicKeyToken=null + + + $this + + + 5 + + + NoControl + + + 62, 339 + + + 30, 30 + + + StretchImage + + + 181 + + + chestplateButtonControl + + + PckStudio.Controls.PictureButtonControl, PCK-Studio, Version=7.0.1.2, Culture=neutral, PublicKeyToken=null + + + $this + + + 4 + + + NoControl + + + 97, 339 + + + 30, 30 + + + StretchImage + + + 182 + + + leggingsButtonControl + + + PckStudio.Controls.PictureButtonControl, PCK-Studio, Version=7.0.1.2, Culture=neutral, PublicKeyToken=null + + + $this + + + 3 + + + NoControl + + + 132, 339 + + + 30, 30 + + + StretchImage + + + 183 + + + bootsButtonControl + + + PckStudio.Controls.PictureButtonControl, PCK-Studio, Version=7.0.1.2, Culture=neutral, PublicKeyToken=null + + + $this + + 2 diff --git a/PCK-Studio/PckStudio.csproj b/PCK-Studio/PckStudio.csproj index c31f9212..c582a4a0 100644 --- a/PCK-Studio/PckStudio.csproj +++ b/PCK-Studio/PckStudio.csproj @@ -585,6 +585,10 @@ + + + + diff --git a/PCK-Studio/Properties/Resources.Designer.cs b/PCK-Studio/Properties/Resources.Designer.cs index d35cd56f..f92fd862 100644 --- a/PCK-Studio/Properties/Resources.Designer.cs +++ b/PCK-Studio/Properties/Resources.Designer.cs @@ -150,6 +150,16 @@ namespace PckStudio.Properties { } } + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap boots { + get { + object obj = ResourceManager.GetObject("boots", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// @@ -192,6 +202,16 @@ namespace PckStudio.Properties { } } + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap chestplate { + get { + object obj = ResourceManager.GetObject("chestplate", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// @@ -553,6 +573,16 @@ namespace PckStudio.Properties { } } + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap helmet { + get { + object obj = ResourceManager.GetObject("helmet", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// @@ -573,6 +603,16 @@ namespace PckStudio.Properties { } } + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap leggings { + get { + object obj = ResourceManager.GetObject("leggings", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// diff --git a/PCK-Studio/Properties/Resources.resx b/PCK-Studio/Properties/Resources.resx index ac42842f..b3874e33 100644 --- a/PCK-Studio/Properties/Resources.resx +++ b/PCK-Studio/Properties/Resources.resx @@ -130,11 +130,8 @@ ..\Resources\NoImageFound.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\shader\skyboxVertexShader.glsl;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;iso-8859-1 - - - ..\..\ProjectLogo.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\anim_editor\wide_head.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\HamburgerMenuIcon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -145,6 +142,12 @@ ..\Resources\fileTemplates\tu51colours.col;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + ..\Resources\icons\Save.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\skybox_texture.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Resources\iconImageList\ZZFolder.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -157,24 +160,33 @@ ..\Resources\icons\file_copy.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\anim_editor\armor_right_arm.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\anim_editor\wide_right_arm.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Resources\iconImageList\PCK ICON.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\changeTile.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\shader\framebufferVertexShader.glsl;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;iso-8859-1 + + ..\Resources\shader\texturedCubeGeometryShader.glsl;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;iso-8859-1 ..\Resources\fileTemplates\tu32colours.col;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + ..\Resources\anim_editor\slim_left_leg.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Resources\iconImageList\BEHAVIOURS ICON.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\iconImageList\ZUnknown.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\external\WiiU.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Resources\iconImageList\ARROW.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -184,23 +196,41 @@ ..\Resources\iconImageList\SKINS ICON.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\external\Discord.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\anim_editor\armor_left_arm.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\iconImageList\empty.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\anim_editor\armor_head.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\shader\framebufferVertexShader.glsl;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;iso-8859-1 ..\Resources\fileTemplates\tu13colours.col;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + ..\Resources\entityBehavioursData.json;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;iso-8859-1 + + + ..\Resources\icons\Replace.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\anim_editor\wide_legs.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\fileTemplates\tu19colours.col;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + ..\Resources\pckClosed.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\shader\texturedCubeVertexShader.glsl;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;iso-8859-1 - - ..\Resources\icons\file_export.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\fileTemplates\tu53colours.col;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + ..\Resources\external\Discord.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\shader\skyboxFragmentShader.glsl;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;iso-8859-1 @@ -208,11 +238,8 @@ ..\Resources\shader\plainColorVertexShader.glsl;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;iso-8859-1 - - ..\Resources\anim_editor\slim_template.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\iconImageList\COL ICON.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\icons\file_export.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\atlases\entities.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -220,9 +247,15 @@ ..\Resources\AddTexture.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\anim_editor\slim_body.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Resources\icons\music.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\anim_editor\slim_head.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Resources\iconImageList\blank.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -232,12 +265,15 @@ ..\Resources\iconImageList\ENTITY MATERIALS ICON.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\icons\Replace.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\entityMaterialsData.json;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;iso-8859-1 ..\Resources\iconImageList\IMAGE ICON.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\shader\skyboxVertexShader.glsl;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;iso-8859-1 + ..\Resources\iconImageList\BINKA ICON.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -253,6 +289,15 @@ ..\Resources\iconImageList\GRF ICON.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\anim_editor\slim_right_arm.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\iconImageList\SLIM SKIN ICON.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\shader\framebufferFragmentShader.glsl;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;iso-8859-1 + ..\Resources\binka\mss32.dll;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 @@ -262,8 +307,17 @@ ..\Resources\icons\ranch.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\external\WiiU.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\tools.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\anim_editor\armor_right_leg.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\anim_editor\wide_body.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\changeTile.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\iconImageList\CAPE ICON.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -274,26 +328,32 @@ ..\Resources\icons\file_empty.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\fileTemplates\tu19colours.col;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + ..\Resources\anim_editor\slim_left_arm.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\fileTemplates\tu53colours.col;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 ..\Resources\fileTemplates\1.91_colours.col;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + ..\Resources\iconImageList\MODERN SKIN ICON.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Resources\iconImageList\MODELS ICON.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\iconImageList\INFO ICON.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\anim_editor\wide_left_arm.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Resources\icons\file_paste.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\armor.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\shader\texturedCubeGeometryShader.glsl;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;iso-8859-1 + + ..\Resources\iconImageList\COL ICON.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\icons\file_delete.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -304,18 +364,27 @@ ..\Resources\shader\texturedCubeFragmentShader.glsl;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;iso-8859-1 + + ..\..\CHANGELOG.md;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8 + ..\Resources\binka\binkawin.asi;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + ..\..\ProjectLogo.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Resources\pack.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\anim_editor\slim_right_leg.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\iconImageList\CLASSIC SKIN ICON.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Resources\fileTemplates\tu43colours.col;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - ..\..\CHANGELOG.md;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8 - ..\Resources\fileTemplates\tu46colours.col;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 @@ -328,106 +397,49 @@ ..\Resources\fileTemplates\tu14colours.col;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + ..\Resources\entityModelsData.json;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;iso-8859-1 + ..\Resources\fileTemplates\tu69colours.col;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 ..\Resources\external\Youtube.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\icons\file_restore.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\skybox_texture.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\shader\framebufferFragmentShader.glsl;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;iso-8859-1 - - - ..\Resources\pckOpen.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\icons\Save.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\entityBehavioursData.json;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;iso-8859-1 - - - ..\Resources\entityMaterialsData.json;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;iso-8859-1 - - - ..\Resources\entityModelsData.json;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;iso-8859-1 + + ..\Resources\armor.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\anim_editor\armor_body.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\anim_editor\armor_head.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\iconImageList\CUSTOM SKIN ICON.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\anim_editor\armor_left_arm.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\icons\file_restore.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\anim_editor\armor_left_leg.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\anim_editor\armor_right_arm.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\anim_editor\armor_right_leg.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\anim_editor\slim_template.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\anim_editor\classic_head.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\anim_editor\wide_body.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\pckOpen.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\anim_editor\wide_head.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\anim_editor\armor_left_leg.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\anim_editor\slim_body.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\skin_editor\boots.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\anim_editor\slim_head.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\skin_editor\chestplate.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\anim_editor\slim_left_arm.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\skin_editor\helmet.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\anim_editor\slim_left_leg.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\anim_editor\slim_right_arm.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\anim_editor\slim_right_leg.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\anim_editor\wide_left_arm.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\anim_editor\wide_legs.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\anim_editor\wide_right_arm.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\iconImageList\CLASSIC SKIN ICON.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\iconImageList\MODERN SKIN ICON.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\iconImageList\SLIM SKIN ICON.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\iconImageList\CUSTOM SKIN ICON.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\iconImageList\empty.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\tools.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\skin_editor\leggings.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a \ No newline at end of file diff --git a/PCK-Studio/Rendering/SkinRenderer.cs b/PCK-Studio/Rendering/SkinRenderer.cs index e9988da4..52fe4e79 100644 --- a/PCK-Studio/Rendering/SkinRenderer.cs +++ b/PCK-Studio/Rendering/SkinRenderer.cs @@ -113,7 +113,7 @@ namespace PckStudio.Rendering public bool CenterOnSelect { get; set; } = false; public bool ShowBoundingBox { get; set; } - public bool ShowArmor + public SkinArmorFlags ShowArmorMask { get; set @@ -121,23 +121,23 @@ namespace PckStudio.Rendering field = value; // set box armor visibility appropriately - head.HandleArmorFlags(ShowArmor); - waist.HandleArmorFlags(ShowArmor); - bodyArmor.HandleArmorFlags(ShowArmor); - belt.HandleArmorFlags(ShowArmor); - body.HandleArmorFlags(ShowArmor); - rightArm.HandleArmorFlags(ShowArmor); - rightArmArmor.HandleArmorFlags(ShowArmor); - leftArm.HandleArmorFlags(ShowArmor); - leftArmArmor.HandleArmorFlags(ShowArmor); - rightLeg.HandleArmorFlags(ShowArmor); - rightLegging.HandleArmorFlags(ShowArmor); - rightSock.HandleArmorFlags(ShowArmor); - rightBoot.HandleArmorFlags(ShowArmor); - leftLeg.HandleArmorFlags(ShowArmor); - leftLegging.HandleArmorFlags(ShowArmor); - leftSock.HandleArmorFlags(ShowArmor); - leftBoot.HandleArmorFlags(ShowArmor); + head.HandleArmorFlags(ShowArmorMask); + waist.HandleArmorFlags(ShowArmorMask); + bodyArmor.HandleArmorFlags(ShowArmorMask); + belt.HandleArmorFlags(ShowArmorMask); + body.HandleArmorFlags(ShowArmorMask); + rightArm.HandleArmorFlags(ShowArmorMask); + rightArmArmor.HandleArmorFlags(ShowArmorMask); + leftArm.HandleArmorFlags(ShowArmorMask); + leftArmArmor.HandleArmorFlags(ShowArmorMask); + rightLeg.HandleArmorFlags(ShowArmorMask); + rightLegging.HandleArmorFlags(ShowArmorMask); + rightSock.HandleArmorFlags(ShowArmorMask); + rightBoot.HandleArmorFlags(ShowArmorMask); + leftLeg.HandleArmorFlags(ShowArmorMask); + leftLegging.HandleArmorFlags(ShowArmorMask); + leftSock.HandleArmorFlags(ShowArmorMask); + leftBoot.HandleArmorFlags(ShowArmorMask); } } public bool ShowTools { get; set; } = false; @@ -1007,36 +1007,48 @@ namespace PckStudio.Rendering } // Armor rendering - if (ShowArmor && !ANIM.GetFlag(SkinAnimFlag.ALL_ARMOR_DISABLED)) + if (!ANIM.GetFlag(SkinAnimFlag.ALL_ARMOR_DISABLED)) { armorTexture.Bind(); cubeShader.SetUniform2("TexSize", new Vector2(64, 64)); - if (!ANIM.GetFlag(SkinAnimFlag.HEAD_DISABLED) || ANIM.GetFlag(SkinAnimFlag.SHOW_HEAD_ARMOR)) + if (ShowArmorMask.GetFlag(SkinArmorFlagsFlag.HELMET) && (!ANIM.GetFlag(SkinAnimFlag.HEAD_DISABLED) || ANIM.GetFlag(SkinAnimFlag.SHOW_HEAD_ARMOR))) RenderArmorPart(cubeShader, offsetSpecificMeshStorage["HELMET"], Matrix4.Identity, renderTransform, "HEAD"); - - if (!ANIM.GetFlag(SkinAnimFlag.TORSO_DISABLED) || ANIM.GetFlag(SkinAnimFlag.SHOW_CHESTPLATE_CENTER)) + + bool chestplateEnabled = ShowArmorMask.GetFlag(SkinArmorFlagsFlag.CHESTPLATE); + + if (chestplateEnabled && (!ANIM.GetFlag(SkinAnimFlag.TORSO_DISABLED) || ANIM.GetFlag(SkinAnimFlag.SHOW_CHESTPLATE_CENTER))) RenderArmorPart(cubeShader, offsetSpecificMeshStorage["CHEST"], Matrix4.Identity, renderTransform, "BODY"); - if (!ANIM.GetFlag(SkinAnimFlag.RIGHT_ARM_DISABLED) || ANIM.GetFlag(SkinAnimFlag.SHOW_CHESTPLATE_LEFT)) + if (chestplateEnabled && (!ANIM.GetFlag(SkinAnimFlag.RIGHT_ARM_DISABLED) || ANIM.GetFlag(SkinAnimFlag.SHOW_CHESTPLATE_RIGHT))) RenderArmorPart(cubeShader, offsetSpecificMeshStorage["SHOULDER0"], armRightMatrix, renderTransform, "ARM0"); - if (!ANIM.GetFlag(SkinAnimFlag.LEFT_ARM_DISABLED) || ANIM.GetFlag(SkinAnimFlag.SHOW_CHESTPLATE_LEFT)) + if (chestplateEnabled && (!ANIM.GetFlag(SkinAnimFlag.LEFT_ARM_DISABLED) || ANIM.GetFlag(SkinAnimFlag.SHOW_CHESTPLATE_LEFT))) RenderArmorPart(cubeShader, offsetSpecificMeshStorage["SHOULDER1"], armLeftMatrix, renderTransform, "ARM1"); - bool showRightLegArmor = !ANIM.GetFlag(SkinAnimFlag.RIGHT_LEG_DISABLED) || ANIM.GetFlag(SkinAnimFlag.SHOW_RIGHT_LEG_ARMOR); + bool showRightLegArmor = ShowArmorMask.GetFlag(SkinArmorFlagsFlag.LEGGINGS) && (!ANIM.GetFlag(SkinAnimFlag.RIGHT_LEG_DISABLED) || ANIM.GetFlag(SkinAnimFlag.SHOW_RIGHT_LEG_ARMOR)); + if (showRightLegArmor) { RenderArmorPart(cubeShader, offsetSpecificMeshStorage["PANTS0"], legRightMatrix, renderTransform, "LEG0"); + } + + if (ShowArmorMask.GetFlag(SkinArmorFlagsFlag.BOOTS) && (!ANIM.GetFlag(SkinAnimFlag.RIGHT_LEG_DISABLED) || ANIM.GetFlag(SkinAnimFlag.SHOW_RIGHT_LEG_ARMOR))) + { RenderArmorPart(cubeShader, offsetSpecificMeshStorage["BOOT0"], legRightMatrix, renderTransform, "LEG0"); } - bool showLeftLegArmor = !ANIM.GetFlag(SkinAnimFlag.LEFT_LEG_DISABLED) || ANIM.GetFlag(SkinAnimFlag.SHOW_LEFT_LEG_ARMOR); + bool showLeftLegArmor = ShowArmorMask.GetFlag(SkinArmorFlagsFlag.LEGGINGS) && (!ANIM.GetFlag(SkinAnimFlag.LEFT_LEG_DISABLED) || ANIM.GetFlag(SkinAnimFlag.SHOW_LEFT_LEG_ARMOR)); + if (showLeftLegArmor) { RenderArmorPart(cubeShader, offsetSpecificMeshStorage["PANTS1"], legLeftMatrix, renderTransform, "LEG1"); + } + + if (ShowArmorMask.GetFlag(SkinArmorFlagsFlag.BOOTS) && (!ANIM.GetFlag(SkinAnimFlag.LEFT_LEG_DISABLED) || ANIM.GetFlag(SkinAnimFlag.SHOW_LEFT_LEG_ARMOR))) + { RenderArmorPart(cubeShader, offsetSpecificMeshStorage["BOOT1"], legLeftMatrix, renderTransform, "LEG1"); } - + if (showRightLegArmor && showLeftLegArmor) RenderArmorPart(cubeShader, offsetSpecificMeshStorage["WAIST"], Matrix4.Identity, renderTransform, "BODY"); } diff --git a/PCK-Studio/Resources/armor.png b/PCK-Studio/Resources/armor.png index f6b1cfdb387a8561cceb4d9528233090196edc44..62550555e504e118a13cf912fe8cd3585d14c0e9 100644 GIT binary patch delta 2992 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 delta 2294 zcmV55!c5XaBGy>HXA^kl~D22lh-5{c0~f*ZIY z!8gbUK}1m_#t24HM8roB6mbJ1_yVFvQT!%?XksRrnatkP`*y8g-99m99B;7g^mM%c z;d1-#r>g!{r_QM}jtRgk4<7U?^_CgU#0~p+EMk)Jh^fkN&wn%K*r(qGzGExH?d~^4 zIvF*$?HM;a3t4mXj#1fXL>UP^cHNmb@X>c=szNHVb~FRR72fGz)jU_h2Gq+kXKhLb1Gjr>D zZegw3y=!>kym0S+FCl$9=!jLbshDYqm5K0;W=GFMc@z~@km7P#bw&^&WQYmRiGsS^~9+k27lU@IwU&#rboJmVsQ};LBY&o zNvY0t&Z8hp|EL7P^TG-Q+clZh`#BFh`HQ-)G6qbKrgcvu#XE>4p6r*_Yv$<>PY+Z9 zu1#j>(%FdabaP~Sba^NPMJ%jVH3MK4^&Ws#5uE2y1i}`}4O6ML^g8e3 zTUUKnHzs#;_ zT$oubn_{J5>f$aI2u)XtzzFWhG3UrIw?a?iy#B}`&swouYnqc^{J1G4-+1(p2YsJ> z|LaZfdG+BtJ=_B!i50MFESu142+c8FD!3@DdVlJJZ#I3`wLsrLPK;r{EuRtx@dIC5 zGRjqP4}#;M2UFMV<1iyG?135d9Jo~XQiwq!&(z+ z>7(y{*;9K0Gr?-Tt-*}$5c&=pOU0Vmvn{82$l3Yz?%98jKm`!N$rRb=BugALViHHl zAAgdus7WUL47L{pDqx{lHER;F&q;p3cwo@TBx0I~t(NO1E-uh3dge4fN!rU~3F83v zbZ^go{Ow=fee$7$9_Psf$puD*Q6yQ!7RCox_6n~_uYt8mp0Ic}8M~C3#v}vPY*JzY z=XfXYPQ{~!WNo!n*YOD73F>WnR=|k|?tk!@D zoQ1U$P8#3&q9B|V^A9xLPjejIgpeTR>I0qwY4HooA-Ij_l6pUsZF_%Cu$&jct_-ICHJrDO-0jggHcMxIuV^H7)PKS>8aiS< z?SABVty0%}Cr45mq!5y>5Il_L4s9L+~jCVXPiNcdu5Mx zNpxO1^?hFzAk7hri2%0JgOL1YW7x|0p5R0PV$J~JIo>ywH@Re76$H)kOCmDVx56VV zj6islO2o&9DXx%V@(f89_kZ!;q;_MnmyK^zg6lV2I}rjUvEFjIrVS&A(4diYT-ksE zpev2Ssx*{yj1!nGT9o93`9zq4&;zQRr=$W6*pbS7LNJ_s6y=`A@r@#I1L>K2L8(0f^axI+L2oWMgh!7z{ga{EL zM2HX}LJS)=OlH`coPSnfWb3v5zSXgzFv6T5Q(|Megw6&2ZS?vZh@h>#C-UmB|9q#OMMXjy%xUM^3U08vT6iBJ;vNDT8 zD(iG$h-J&L!+)jUM_`1-!dMjxqm**3rR6Yuo*+1$OhDG3#~gDlDuIBMRaMcsc(wgu=L&GCGCTk|-@J36$?XevF{7$}#^y!Ezdu zu8b2`Qv--n|E@aBT7u{Ly+Y*p{Rcd906q!}Rx5Qgl7EV8krd0r00JQWzK#!Ii1Yz= zT_De~s*7XR>d;zNg;{VNMzP0@NVHgB!FmKr=D3$#6=uP`fa-I1j0qgUhXRHajeQ!aThQjG#P(I6Q=0!pMW04qpv9TrTC z%LtMsG6;+SELF3;27in#NVV~Ak}i~i8|iWw5t>C*(4K$OW1SG)bAMsXAFov%CLN~+ Q<^TWy07*qoM6N<$g1qoQ_W%F@ diff --git a/PCK-Studio/Resources/skin_editor/boots.png b/PCK-Studio/Resources/skin_editor/boots.png new file mode 100644 index 0000000000000000000000000000000000000000..8d19e0bfd7d8217449f2fe3aba8a7910acf67ae8 GIT binary patch literal 891 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1qucLCF%=h?3y^w370~qEv=}#LT=BJwMkF1yemk zJwqd5M)wk+q8+Ibo@t(*S_~XO4l9EcBP#Q*noV6xE`)pJ&OW66iB}{j`X@tWlgYh9PAr0gQ|72;6}`9JZJk^=Nm@Ae#KIc*rCk#sBg#Pv?(zfs=;R&+(SAXGny7@HMKRcxt_hCxOk_4j0u~G zYm=6s;xUgGQBIc^C^l(4e0NQ3QCF5i+efYkc?-IZd3bf+*m^<5rmZ->bJ6qO=S~dQ z-rretPW;`@9U-6R7@X zNM_2PLM??=0?hYJlQW8$_iywIT{^{y*K4j{M44_qgKxsG*)l7e=7Exrr>mdKI;Vst E0GEnCyZ`_I literal 0 HcmV?d00001 diff --git a/PCK-Studio/Resources/skin_editor/chestplate.png b/PCK-Studio/Resources/skin_editor/chestplate.png new file mode 100644 index 0000000000000000000000000000000000000000..3108c7a95474a8f3029b6c2d4294dfaa8e2ceb9b GIT binary patch literal 879 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1qucLCF%=h?3y^w370~qEv=}#LT=BJwMkF1yemk zJwqd5M)wk+q8+Ibo@t(*S_~XO4l9EcBP#e4CnIET@f51ZfoMcpAL#Xl8uI{LCgS?1H>Ps;khQ&M1w^tqZi6?keXj?=7tk zuzc}lLYa7HTijfwop#Pavz;chtYlK~n7DYdrIua7ROL1YouWt2+&Amr7UTb25Tmpx zBUkF@x64l+T*&#wwNRtLv#YzQZL!^zWeLl3_x#TJ>DGMi^YIr47q;f{|Gs?e-kz;B ziyik}Y}mW*ZOyGsd8u#S^9I!4QLnrEPn{=oYg9%qm!RZVhEKh0H(znh{eFM#=I}+& z{#r67ygO=~S6k8g??-OV-%XpF&p+C`(Cp5J-P`yMJbPm_d-G|7J7#irUm1c-O*$^b z?@+v~AKx!GEqeCiUpmVZ!}AwyHl4Y^sadjczw_#=N#(hJ4}Gw>^m=lqdvfT*+p?c- ze}2Ah2S<3m(E6(_ol|CLNS$JQxT0M?u23-jzn&+PYvXm6-h0Be3e%eZ9|=BIt>$F% z;oyYUrMp{-8d5cx+jw<2Zmg=u$cdifc41V%Sb;*guw5XW9mh&VZzVe-P zw9@me$0EfBoqPM;&jc-!__*W9oWoVM()`Rz%AdJvw}g3*} zD*_vWdAPzf*XRUARkDihWL|&7>y3!c5vA)Bv^(a`oyxK(O?*oaXp@=B`t_5{&1cm9 zdGhy1`|tHDi+|ltwJM%#dT)pE|Bv0zO1$o;dKEgoG`>|fW!rL=+6ZSiV_=*iiAw&pUv#^f6=$ksP^x{%Lk?T%*!n9+}L?aVPA#c%yWBIOxhe= z<^K7mYsU> z4O;UQzq9Hd6%^FVciz4G_{-_%yE`t=_ZARzWH{fqh)F5nlA>#}#KIJDVmc zZQ8|jSn5`vk%!T(U8>vcoUXeETwl;OqiY?{ky~vOs+$^SCTxFyzgeqEvag}3y@8!s zkj2p@Akb&(0xu&~S4GvMdHMHSB_>KFO!(l)8tU-nPlpRj=;1RQX-5){6fkyl<=XA& z4|`cNp}8f5Gsq#y;Y>hi2(PJgv!EV>A(y6PJ%iwZyNcIawt-R(gQu&X%Q~loCID)Q BJG}q^ literal 0 HcmV?d00001 diff --git a/PCK-Studio/Resources/skin_editor/leggings.png b/PCK-Studio/Resources/skin_editor/leggings.png new file mode 100644 index 0000000000000000000000000000000000000000..6d148e354a2c98619d3fa95b76d613b1bbf600c4 GIT binary patch literal 785 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1qucLCF%=h?3y^w370~qEv=}#LT=BJwMkF1yemk zJwqd5M)wk+q8+Ibo@t(*S_~XO4l9EcBP#_;oA4?{#HGUp*|MkYF zkFppm4{Tz%mwYeL&ykgf;WFVnD;)M7 zw{+*2w?>1*wNKdb6~{#f*+(*;KAui530bgS{lrb_SM&Gx{NIq7CCFoc>cn1!&;H>O z5B!&#?EfF}?eXivWzQde>#N$SWNkfl%?ZiM08h@_IUC=uGrxCU?9O?y<`0S&Ehky| zh=?)=9ZHg!aV~#d<&M3tuPdrGtz>FaQdp#NQyM77xMI5YtEXA}Kem*l30^sqaX#B) zZ_LAc=bk({Y(2B?cik54yGCE0R(Nl#RJlL(c+u>m2OKtjTNd2DZ_0!zeNXRYro}S; zyV!oB?w&KxEq3Xw*mp0j9G))S)Ub8#R@ODSTD<)mKRedgF&R4bMD(mkeA^#vdZ9Mg zR?{)m{`zUISyDkR_u|jpwhXyABWG{i_kAZTbRMSk7_;q?e>zFjvQps5qoTeNeeG2O yhHF+$v=RylTz(}jWTWCVRTIIlUMH9;1O74DoY?=Sr_9>{6sexBelF{r5}E+va~Kf- literal 0 HcmV?d00001 diff --git a/PckStudio.Rendering/CubeMeshCollection.cs b/PckStudio.Rendering/CubeMeshCollection.cs index cf63826e..6339d902 100644 --- a/PckStudio.Rendering/CubeMeshCollection.cs +++ b/PckStudio.Rendering/CubeMeshCollection.cs @@ -150,7 +150,7 @@ namespace PckStudio.Rendering cubes.RemoveAt(index); } - public void HandleArmorFlags(bool showArmor) + public void HandleArmorFlags(SkinArmorFlags showArmorMask) { for (int i = 0; i < cubes.Count; i++) { @@ -160,9 +160,7 @@ namespace PckStudio.Rendering if (cubeMesh.Name.StartsWith("Default")) continue; - bool hasArmorFlags = cubeMesh.GetCube().ArmorFlags != 0; - - bool visible = !(showArmor && hasArmorFlags); + bool visible = (showArmorMask.ToValue() & cubeMesh.GetCube().ArmorFlags) == 0; cubes[i] = cubes[i].SetVisible(visible); }