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 f6b1cfdb..62550555 100644 Binary files a/PCK-Studio/Resources/armor.png and b/PCK-Studio/Resources/armor.png differ diff --git a/PCK-Studio/Resources/skin_editor/boots.png b/PCK-Studio/Resources/skin_editor/boots.png new file mode 100644 index 00000000..8d19e0bf Binary files /dev/null and b/PCK-Studio/Resources/skin_editor/boots.png differ diff --git a/PCK-Studio/Resources/skin_editor/chestplate.png b/PCK-Studio/Resources/skin_editor/chestplate.png new file mode 100644 index 00000000..3108c7a9 Binary files /dev/null and b/PCK-Studio/Resources/skin_editor/chestplate.png differ diff --git a/PCK-Studio/Resources/skin_editor/helmet.png b/PCK-Studio/Resources/skin_editor/helmet.png new file mode 100644 index 00000000..c91157b6 Binary files /dev/null and b/PCK-Studio/Resources/skin_editor/helmet.png differ diff --git a/PCK-Studio/Resources/skin_editor/leggings.png b/PCK-Studio/Resources/skin_editor/leggings.png new file mode 100644 index 00000000..6d148e35 Binary files /dev/null and b/PCK-Studio/Resources/skin_editor/leggings.png differ 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); }