Renamed ANIM enum names and buttons for clarity

This commit is contained in:
MayNL
2026-03-30 15:44:21 -04:00
parent 80f5a7d53c
commit e8688a4574
9 changed files with 190 additions and 189 deletions

View File

@@ -32,7 +32,7 @@ namespace PckStudio.Forms.Additional_Popups
{
InitializeComponent();
_xmlVersion = xmlVersion;
newSkin = new Skin("", new SkinANIM(SkinAnimMask.RESOLUTION_64x64), Resources.classic_template, Enumerable.Empty<SkinBOX>(), Enumerable.Empty<SkinPartOffset>());
newSkin = new Skin("", new SkinANIM(SkinAnimMask.MODERN_WIDE_MODEL), Resources.classic_template, Enumerable.Empty<SkinBOX>(), Enumerable.Empty<SkinPartOffset>());
}
private void SetNewTexture(Image img)
@@ -44,7 +44,7 @@ namespace PckStudio.Forms.Additional_Popups
MessageBox.Show("The selected image does not suit a skin texture.", "Invalid image dimensions.", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
newSkin.Anim.SetFlag(SkinAnimFlag.RESOLUTION_64x64, img.Width == img.Height);
newSkin.Anim.SetFlag(SkinAnimFlag.MODERN_WIDE_MODEL, img.Width == img.Height);
skinPictureBox.Image = newSkin.Texture = img;
labelSelectTexture.Visible = false;
@@ -69,7 +69,7 @@ namespace PckStudio.Forms.Additional_Popups
g.DrawRectangle(outlineColor, 70, 15, 40, 40);
g.FillRectangle(fillColor, 71, 16, 39, 39);
}
if (!newSkin.Anim.GetFlag(SkinAnimFlag.BODY_DISABLED))
if (!newSkin.Anim.GetFlag(SkinAnimFlag.TORSO_DISABLED))
{
//Body
g.DrawRectangle(outlineColor, 70, 55, 40, 60);

View File

@@ -53,7 +53,7 @@
this.leftArmorCheckBox = new MetroFramework.Controls.MetroCheckBox();
this.chestplateCheckBox = new MetroFramework.Controls.MetroCheckBox();
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.unknownCheckBox = new MetroFramework.Controls.MetroCheckBox();
this.animationOverrideCheckBox = new MetroFramework.Controls.MetroCheckBox();
this.crouchCheckBox = new MetroFramework.Controls.MetroCheckBox();
this.dinnerboneCheckBox = new MetroFramework.Controls.MetroCheckBox();
this.noArmorCheckBox = new MetroFramework.Controls.MetroCheckBox();
@@ -120,9 +120,9 @@
this.rightLegOCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium;
this.rightLegOCheckBox.Location = new System.Drawing.Point(180, 208);
this.rightLegOCheckBox.Name = "rightLegOCheckBox";
this.rightLegOCheckBox.Size = new System.Drawing.Size(199, 19);
this.rightLegOCheckBox.Size = new System.Drawing.Size(174, 19);
this.rightLegOCheckBox.TabIndex = 13;
this.rightLegOCheckBox.Text = "Remove Right Leg Layer Box";
this.rightLegOCheckBox.Text = "Remove Right Pants Box";
this.rightLegOCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
this.toolTip.SetToolTip(this.rightLegOCheckBox, " Removes the parent Box for this part. You can still make new boxes f" +
"or this part. Armor will be disabled for this part, but can be rendered again wi" +
@@ -135,9 +135,9 @@
this.headOCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium;
this.headOCheckBox.Location = new System.Drawing.Point(180, 50);
this.headOCheckBox.Name = "headOCheckBox";
this.headOCheckBox.Size = new System.Drawing.Size(173, 19);
this.headOCheckBox.Size = new System.Drawing.Size(165, 19);
this.headOCheckBox.TabIndex = 12;
this.headOCheckBox.Text = "Remove Head Layer Box";
this.headOCheckBox.Text = "Remove Headwear Box";
this.headOCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
this.toolTip.SetToolTip(this.headOCheckBox, " Removes the parent Box for this part. You can still make new boxes f" +
"or this part. Armor will be disabled for this part, but can be rendered again wi" +
@@ -150,9 +150,9 @@
this.leftLegOCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium;
this.leftLegOCheckBox.Location = new System.Drawing.Point(180, 174);
this.leftLegOCheckBox.Name = "leftLegOCheckBox";
this.leftLegOCheckBox.Size = new System.Drawing.Size(190, 19);
this.leftLegOCheckBox.Size = new System.Drawing.Size(165, 19);
this.leftLegOCheckBox.TabIndex = 11;
this.leftLegOCheckBox.Text = "Remove Left Leg Layer Box";
this.leftLegOCheckBox.Text = "Remove Left Pants Box";
this.leftLegOCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
this.toolTip.SetToolTip(this.leftLegOCheckBox, " Removes the parent Box for this part. You can still make new boxes f" +
"or this part. Armor will be disabled for this part, but can be rendered again wi" +
@@ -165,9 +165,9 @@
this.leftArmOCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium;
this.leftArmOCheckBox.Location = new System.Drawing.Point(180, 112);
this.leftArmOCheckBox.Name = "leftArmOCheckBox";
this.leftArmOCheckBox.Size = new System.Drawing.Size(194, 19);
this.leftArmOCheckBox.Size = new System.Drawing.Size(169, 19);
this.leftArmOCheckBox.TabIndex = 9;
this.leftArmOCheckBox.Text = "Remove Left Arm Layer Box";
this.leftArmOCheckBox.Text = "Remove Left Sleeve Box";
this.leftArmOCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
this.toolTip.SetToolTip(this.leftArmOCheckBox, " Removes the parent Box for this part. You can still make new boxes f" +
"or this part. Armor will be disabled for this part, but can be rendered again wi" +
@@ -180,9 +180,9 @@
this.bodyOCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium;
this.bodyOCheckBox.Location = new System.Drawing.Point(180, 81);
this.bodyOCheckBox.Name = "bodyOCheckBox";
this.bodyOCheckBox.Size = new System.Drawing.Size(172, 19);
this.bodyOCheckBox.Size = new System.Drawing.Size(141, 19);
this.bodyOCheckBox.TabIndex = 8;
this.bodyOCheckBox.Text = "Remove Body Layer Box";
this.bodyOCheckBox.Text = "Remove Jacket Box";
this.bodyOCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
this.toolTip.SetToolTip(this.bodyOCheckBox, " Removes the parent Box for this part. You can still make new boxes f" +
"or this part. Armor will be disabled for this part, but can be rendered again wi" +
@@ -210,9 +210,9 @@
this.slimCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium;
this.slimCheckBox.Location = new System.Drawing.Point(180, 19);
this.slimCheckBox.Name = "slimCheckBox";
this.slimCheckBox.Size = new System.Drawing.Size(151, 19);
this.slimCheckBox.Size = new System.Drawing.Size(164, 19);
this.slimCheckBox.TabIndex = 6;
this.slimCheckBox.Text = "64x64 Alex/Slim Skin";
this.slimCheckBox.Text = "64x64 Slim Skin Model";
this.slimCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
this.toolTip.SetToolTip(this.slimCheckBox, " The 1.8 style skin type with slim arms, overlays for each part, and sep" +
"arate textures for right and left limbs. Resolution is also set to 64x64. " +
@@ -285,9 +285,9 @@
this.bodyCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium;
this.bodyCheckBox.Location = new System.Drawing.Point(6, 81);
this.bodyCheckBox.Name = "bodyCheckBox";
this.bodyCheckBox.Size = new System.Drawing.Size(135, 19);
this.bodyCheckBox.Size = new System.Drawing.Size(137, 19);
this.bodyCheckBox.TabIndex = 1;
this.bodyCheckBox.Text = "Remove Body Box";
this.bodyCheckBox.Text = "Remove Torso Box";
this.bodyCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
this.toolTip.SetToolTip(this.bodyCheckBox, " Removes the parent Box for this part. You can still make new boxes f" +
"or this part. Armor will be disabled for this part, but can be rendered again wi" +
@@ -300,9 +300,9 @@
this.classicCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium;
this.classicCheckBox.Location = new System.Drawing.Point(6, 19);
this.classicCheckBox.Name = "classicCheckBox";
this.classicCheckBox.Size = new System.Drawing.Size(136, 19);
this.classicCheckBox.Size = new System.Drawing.Size(170, 19);
this.classicCheckBox.TabIndex = 0;
this.classicCheckBox.Text = "64x64 Classic Skin";
this.classicCheckBox.Text = "64x64 Wide Skin Model";
this.classicCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
this.toolTip.SetToolTip(this.classicCheckBox, " The 1.8 style skin type with overlays for each part and separate textur" +
"es for right and left limbs. Resolution is also set to 64x64. ");
@@ -315,9 +315,9 @@
this.rightArmOCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium;
this.rightArmOCheckBox.Location = new System.Drawing.Point(180, 143);
this.rightArmOCheckBox.Name = "rightArmOCheckBox";
this.rightArmOCheckBox.Size = new System.Drawing.Size(203, 19);
this.rightArmOCheckBox.Size = new System.Drawing.Size(178, 19);
this.rightArmOCheckBox.TabIndex = 10;
this.rightArmOCheckBox.Text = "Remove Right Arm Layer Box";
this.rightArmOCheckBox.Text = "Remove Right Sleeve Box";
this.rightArmOCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
this.toolTip.SetToolTip(this.rightArmOCheckBox, " Removes the parent Box for this part. You can still make new boxes f" +
"or this part. Armor will be disabled for this part, but can be rendered again wi" +
@@ -347,9 +347,9 @@
this.rightLeggingCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium;
this.rightLeggingCheckBox.Location = new System.Drawing.Point(6, 174);
this.rightLeggingCheckBox.Name = "rightLeggingCheckBox";
this.rightLeggingCheckBox.Size = new System.Drawing.Size(173, 19);
this.rightLeggingCheckBox.Size = new System.Drawing.Size(163, 19);
this.rightLeggingCheckBox.TabIndex = 7;
this.rightLeggingCheckBox.Text = "Render Right Leg Armor";
this.rightLeggingCheckBox.Text = "Show Right Leg Armor";
this.rightLeggingCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
this.toolTip.SetToolTip(this.rightLeggingCheckBox, " Forcefully enables the specified armor piece.");
this.rightLeggingCheckBox.UseSelectable = true;
@@ -361,9 +361,9 @@
this.helmetCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium;
this.helmetCheckBox.Location = new System.Drawing.Point(6, 19);
this.helmetCheckBox.Name = "helmetCheckBox";
this.helmetCheckBox.Size = new System.Drawing.Size(147, 19);
this.helmetCheckBox.Size = new System.Drawing.Size(137, 19);
this.helmetCheckBox.TabIndex = 5;
this.helmetCheckBox.Text = "Render Head Armor";
this.helmetCheckBox.Text = "Show Head Armor";
this.helmetCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
this.toolTip.SetToolTip(this.helmetCheckBox, " Forcefully enables the specified armor piece.");
this.helmetCheckBox.UseSelectable = true;
@@ -375,9 +375,9 @@
this.leftLeggingCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium;
this.leftLeggingCheckBox.Location = new System.Drawing.Point(6, 143);
this.leftLeggingCheckBox.Name = "leftLeggingCheckBox";
this.leftLeggingCheckBox.Size = new System.Drawing.Size(164, 19);
this.leftLeggingCheckBox.Size = new System.Drawing.Size(154, 19);
this.leftLeggingCheckBox.TabIndex = 4;
this.leftLeggingCheckBox.Text = "Render Left Leg Armor";
this.leftLeggingCheckBox.Text = "Show Left Leg Armor";
this.leftLeggingCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
this.toolTip.SetToolTip(this.leftLeggingCheckBox, " Forcefully enables the specified armor piece.");
this.leftLeggingCheckBox.UseSelectable = true;
@@ -389,9 +389,9 @@
this.rightArmorCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium;
this.rightArmorCheckBox.Location = new System.Drawing.Point(6, 112);
this.rightArmorCheckBox.Name = "rightArmorCheckBox";
this.rightArmorCheckBox.Size = new System.Drawing.Size(177, 19);
this.rightArmorCheckBox.Size = new System.Drawing.Size(167, 19);
this.rightArmorCheckBox.TabIndex = 3;
this.rightArmorCheckBox.Text = "Render Right Arm Armor";
this.rightArmorCheckBox.Text = "Show Right Arm Armor";
this.rightArmorCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
this.toolTip.SetToolTip(this.rightArmorCheckBox, " Forcefully enables the specified armor piece.");
this.rightArmorCheckBox.UseSelectable = true;
@@ -403,9 +403,9 @@
this.leftArmorCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium;
this.leftArmorCheckBox.Location = new System.Drawing.Point(6, 81);
this.leftArmorCheckBox.Name = "leftArmorCheckBox";
this.leftArmorCheckBox.Size = new System.Drawing.Size(168, 19);
this.leftArmorCheckBox.Size = new System.Drawing.Size(158, 19);
this.leftArmorCheckBox.TabIndex = 2;
this.leftArmorCheckBox.Text = "Render Left Arm Armor";
this.leftArmorCheckBox.Text = "Show Left Arm Armor";
this.leftArmorCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
this.toolTip.SetToolTip(this.leftArmorCheckBox, " Forcefully enables the specified armor piece.");
this.leftArmorCheckBox.UseSelectable = true;
@@ -413,20 +413,21 @@
// chestplateCheckBox
//
this.chestplateCheckBox.AutoSize = true;
this.chestplateCheckBox.BackColor = System.Drawing.Color.IndianRed;
this.chestplateCheckBox.Enabled = false;
this.chestplateCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium;
this.chestplateCheckBox.Location = new System.Drawing.Point(6, 50);
this.chestplateCheckBox.Name = "chestplateCheckBox";
this.chestplateCheckBox.Size = new System.Drawing.Size(146, 19);
this.chestplateCheckBox.Size = new System.Drawing.Size(138, 19);
this.chestplateCheckBox.TabIndex = 1;
this.chestplateCheckBox.Text = "Render Body Armor";
this.chestplateCheckBox.Text = "Show Torso Armor";
this.chestplateCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
this.toolTip.SetToolTip(this.chestplateCheckBox, " Forcefully enables the specified armor piece.");
this.chestplateCheckBox.UseSelectable = true;
//
// groupBox1
//
this.groupBox1.Controls.Add(this.unknownCheckBox);
this.groupBox1.Controls.Add(this.animationOverrideCheckBox);
this.groupBox1.Controls.Add(this.crouchCheckBox);
this.groupBox1.Controls.Add(this.dinnerboneCheckBox);
this.groupBox1.Controls.Add(this.noArmorCheckBox);
@@ -446,19 +447,19 @@
this.groupBox1.TabStop = false;
this.groupBox1.Text = "Special Animations";
//
// unknownCheckBox
// animationOverrideCheckBox
//
this.unknownCheckBox.AutoSize = true;
this.unknownCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium;
this.unknownCheckBox.Location = new System.Drawing.Point(126, 81);
this.unknownCheckBox.Name = "unknownCheckBox";
this.unknownCheckBox.Size = new System.Drawing.Size(130, 19);
this.unknownCheckBox.TabIndex = 13;
this.unknownCheckBox.Text = "Force Skin Effects";
this.unknownCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
this.toolTip.SetToolTip(this.unknownCheckBox, "Forcefully display skin effects despite the game\'s \"Custom Skin Animation\" settin" +
this.animationOverrideCheckBox.AutoSize = true;
this.animationOverrideCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium;
this.animationOverrideCheckBox.Location = new System.Drawing.Point(126, 81);
this.animationOverrideCheckBox.Name = "animationOverrideCheckBox";
this.animationOverrideCheckBox.Size = new System.Drawing.Size(145, 19);
this.animationOverrideCheckBox.TabIndex = 13;
this.animationOverrideCheckBox.Text = "Animation Override";
this.animationOverrideCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
this.toolTip.SetToolTip(this.animationOverrideCheckBox, "Forcefully display skin effects despite the game\'s \"Custom Skin Animation\" settin" +
"g");
this.unknownCheckBox.UseSelectable = true;
this.animationOverrideCheckBox.UseSelectable = true;
//
// crouchCheckBox
//
@@ -498,7 +499,7 @@
this.noArmorCheckBox.TabIndex = 10;
this.noArmorCheckBox.Text = "Disable All Armor";
this.noArmorCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
this.toolTip.SetToolTip(this.noArmorCheckBox, " Disables all armor desptie the armor flags. ");
this.toolTip.SetToolTip(this.noArmorCheckBox, " Disables all armor. Overrides the individual armor flags.");
this.noArmorCheckBox.UseSelectable = true;
//
// bobbingCheckBox
@@ -507,11 +508,12 @@
this.bobbingCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium;
this.bobbingCheckBox.Location = new System.Drawing.Point(272, 50);
this.bobbingCheckBox.Name = "bobbingCheckBox";
this.bobbingCheckBox.Size = new System.Drawing.Size(124, 19);
this.bobbingCheckBox.Size = new System.Drawing.Size(98, 19);
this.bobbingCheckBox.TabIndex = 9;
this.bobbingCheckBox.Text = "Disable Bobbing";
this.bobbingCheckBox.Text = "No Bobbing";
this.bobbingCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
this.toolTip.SetToolTip(this.bobbingCheckBox, " Disables the bobbing effect in first person.");
this.toolTip.SetToolTip(this.bobbingCheckBox, " Disables the bobbing effect in first person. Overrides the \"View Bobbing\" settin" +
"g.");
this.bobbingCheckBox.UseSelectable = true;
//
// santaCheckBox
@@ -520,12 +522,11 @@
this.santaCheckBox.FontSize = MetroFramework.MetroCheckBoxSize.Medium;
this.santaCheckBox.Location = new System.Drawing.Point(420, 50);
this.santaCheckBox.Name = "santaCheckBox";
this.santaCheckBox.Size = new System.Drawing.Size(86, 19);
this.santaCheckBox.Size = new System.Drawing.Size(133, 19);
this.santaCheckBox.TabIndex = 8;
this.santaCheckBox.Text = "Bad Santa";
this.santaCheckBox.Text = "Sit Idle Animation";
this.santaCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
this.toolTip.SetToolTip(this.santaCheckBox, " The skin sits down after about 10 seconds of no controller input. Made for" +
" Bad Santa in the \"Festive\" skin pack. ");
this.toolTip.SetToolTip(this.santaCheckBox, " The skin sits down after about 10 seconds of no controller input.");
this.santaCheckBox.UseSelectable = true;
//
// syncLegsCheckBox
@@ -779,7 +780,7 @@
private MetroFramework.Controls.MetroCheckBox noArmorCheckBox;
private MetroFramework.Controls.MetroCheckBox dinnerboneCheckBox;
private MetroFramework.Controls.MetroCheckBox crouchCheckBox;
private MetroFramework.Controls.MetroCheckBox unknownCheckBox;
private MetroFramework.Controls.MetroCheckBox animationOverrideCheckBox;
private MetroFramework.Controls.MetroButton copyButton;
private MetroFramework.Controls.MetroButton importButton;
private MetroFramework.Controls.MetroButton exportButton;

View File

@@ -75,15 +75,15 @@ namespace PckStudio.Forms.Editor
checkbox.Checked = state;
switch(checkBoxLinkage[checkbox])
{
case SkinAnimFlag.FORCE_HEAD_ARMOR:
case SkinAnimFlag.FORCE_BODY_ARMOR:
case SkinAnimFlag.FORCE_LEFT_ARM_ARMOR:
case SkinAnimFlag.FORCE_RIGHT_ARM_ARMOR:
case SkinAnimFlag.FORCE_LEFT_LEG_ARMOR:
case SkinAnimFlag.FORCE_RIGHT_LEG_ARMOR:
case SkinAnimFlag.SHOW_HEAD_ARMOR:
case SkinAnimFlag.SHOW_CHESTPLATE_CENTER:
case SkinAnimFlag.SHOW_CHESTPLATE_LEFT:
case SkinAnimFlag.SHOW_CHESTPLATE_RIGHT:
case SkinAnimFlag.SHOW_LEFT_LEG_ARMOR:
case SkinAnimFlag.SHOW_RIGHT_LEG_ARMOR:
checkbox.Enabled = state;
break;
case SkinAnimFlag.RESOLUTION_64x64:
case SkinAnimFlag.MODERN_WIDE_MODEL:
checkbox.Enabled = !state;
// Prioritize slim model > classic model, LCE would
if(state)
@@ -105,7 +105,7 @@ namespace PckStudio.Forms.Editor
* not the best way to do this but whatever lol
* fix for both model flags being unset when both are set to true, with slim model prioritized of course
*/
if (item.Value == SkinAnimFlag.RESOLUTION_64x64 && anim.GetFlag(SkinAnimFlag.SLIM_MODEL))
if (item.Value == SkinAnimFlag.MODERN_WIDE_MODEL && anim.GetFlag(SkinAnimFlag.SLIM_MODEL))
continue;
item.Key.Checked = anim.GetFlag(item.Value);
@@ -119,38 +119,38 @@ namespace PckStudio.Forms.Editor
switch (checkBoxLinkage[checkBox])
{
case SkinAnimFlag.HEAD_DISABLED:
checkBoxLinkage[SkinAnimFlag.FORCE_HEAD_ARMOR].Enabled = checkBox.Checked;
Uncheck(checkBoxLinkage[SkinAnimFlag.FORCE_HEAD_ARMOR]);
checkBoxLinkage[SkinAnimFlag.SHOW_HEAD_ARMOR].Enabled = checkBox.Checked;
Uncheck(checkBoxLinkage[SkinAnimFlag.SHOW_HEAD_ARMOR]);
break;
case SkinAnimFlag.BODY_DISABLED:
checkBoxLinkage[SkinAnimFlag.FORCE_BODY_ARMOR].Enabled = checkBox.Checked;
Uncheck(checkBoxLinkage[SkinAnimFlag.FORCE_BODY_ARMOR]);
case SkinAnimFlag.TORSO_DISABLED:
checkBoxLinkage[SkinAnimFlag.SHOW_CHESTPLATE_CENTER].Enabled = checkBox.Checked;
Uncheck(checkBoxLinkage[SkinAnimFlag.SHOW_CHESTPLATE_CENTER]);
break;
case SkinAnimFlag.LEFT_LEG_DISABLED:
checkBoxLinkage[SkinAnimFlag.FORCE_LEFT_LEG_ARMOR].Enabled = checkBox.Checked;
Uncheck(checkBoxLinkage[SkinAnimFlag.FORCE_LEFT_LEG_ARMOR]);
checkBoxLinkage[SkinAnimFlag.SHOW_LEFT_LEG_ARMOR].Enabled = checkBox.Checked;
Uncheck(checkBoxLinkage[SkinAnimFlag.SHOW_LEFT_LEG_ARMOR]);
break;
case SkinAnimFlag.RIGHT_LEG_DISABLED:
checkBoxLinkage[SkinAnimFlag.FORCE_RIGHT_LEG_ARMOR].Enabled = checkBox.Checked;
Uncheck(checkBoxLinkage[SkinAnimFlag.FORCE_RIGHT_LEG_ARMOR]);
checkBoxLinkage[SkinAnimFlag.SHOW_RIGHT_LEG_ARMOR].Enabled = checkBox.Checked;
Uncheck(checkBoxLinkage[SkinAnimFlag.SHOW_RIGHT_LEG_ARMOR]);
break;
case SkinAnimFlag.LEFT_ARM_DISABLED:
checkBoxLinkage[SkinAnimFlag.FORCE_LEFT_ARM_ARMOR].Enabled = checkBox.Checked;
Uncheck(checkBoxLinkage[SkinAnimFlag.FORCE_LEFT_ARM_ARMOR]);
checkBoxLinkage[SkinAnimFlag.SHOW_CHESTPLATE_LEFT].Enabled = checkBox.Checked;
Uncheck(checkBoxLinkage[SkinAnimFlag.SHOW_CHESTPLATE_LEFT]);
break;
case SkinAnimFlag.RIGHT_ARM_DISABLED:
checkBoxLinkage[SkinAnimFlag.FORCE_RIGHT_ARM_ARMOR].Enabled = checkBox.Checked;
Uncheck(checkBoxLinkage[SkinAnimFlag.FORCE_RIGHT_ARM_ARMOR]);
checkBoxLinkage[SkinAnimFlag.SHOW_CHESTPLATE_LEFT].Enabled = checkBox.Checked;
Uncheck(checkBoxLinkage[SkinAnimFlag.SHOW_CHESTPLATE_LEFT]);
break;
case SkinAnimFlag.RESOLUTION_64x64:
case SkinAnimFlag.MODERN_WIDE_MODEL:
Uncheck(checkBoxLinkage[SkinAnimFlag.SLIM_MODEL]);
checkBoxLinkage[SkinAnimFlag.SLIM_MODEL].Enabled = !checkBox.Checked;
break;
case SkinAnimFlag.SLIM_MODEL:
Uncheck(checkBoxLinkage[SkinAnimFlag.RESOLUTION_64x64]);
checkBoxLinkage[SkinAnimFlag.RESOLUTION_64x64].Enabled = !checkBox.Checked;
Uncheck(checkBoxLinkage[SkinAnimFlag.MODERN_WIDE_MODEL]);
checkBoxLinkage[SkinAnimFlag.MODERN_WIDE_MODEL].Enabled = !checkBox.Checked;
break;
default:
break;
@@ -190,37 +190,37 @@ namespace PckStudio.Forms.Editor
private void InitializeRuleSet()
{
ruleset = new ANIMRuleSet(
(bobbingCheckBox, SkinAnimFlag.HEAD_BOBBING_DISABLED),
(bodyCheckBox, SkinAnimFlag.BODY_DISABLED),
(bodyOCheckBox, SkinAnimFlag.BODY_OVERLAY_DISABLED),
(chestplateCheckBox, SkinAnimFlag.FORCE_BODY_ARMOR),
(classicCheckBox, SkinAnimFlag.RESOLUTION_64x64),
(bobbingCheckBox, SkinAnimFlag.NO_BOBBING_OVERRIDE),
(bodyCheckBox, SkinAnimFlag.TORSO_DISABLED),
(bodyOCheckBox, SkinAnimFlag.JACKET_DISABLED),
(chestplateCheckBox, SkinAnimFlag.SHOW_CHESTPLATE_CENTER),
(classicCheckBox, SkinAnimFlag.MODERN_WIDE_MODEL),
(crouchCheckBox, SkinAnimFlag.DO_BACKWARDS_CROUCH),
(dinnerboneCheckBox, SkinAnimFlag.DINNERBONE),
(headCheckBox, SkinAnimFlag.HEAD_DISABLED),
(headOCheckBox, SkinAnimFlag.HEAD_OVERLAY_DISABLED),
(helmetCheckBox, SkinAnimFlag.FORCE_HEAD_ARMOR),
(headOCheckBox, SkinAnimFlag.HEADWEAR_DISABLED),
(helmetCheckBox, SkinAnimFlag.SHOW_HEAD_ARMOR),
(leftArmCheckBox, SkinAnimFlag.LEFT_ARM_DISABLED),
(leftArmOCheckBox, SkinAnimFlag.LEFT_ARM_OVERLAY_DISABLED),
(leftArmorCheckBox, SkinAnimFlag.FORCE_LEFT_ARM_ARMOR),
(leftArmOCheckBox, SkinAnimFlag.LEFT_SLEEVE_DISABLED),
(leftArmorCheckBox, SkinAnimFlag.SHOW_CHESTPLATE_LEFT),
(leftLegCheckBox, SkinAnimFlag.LEFT_LEG_DISABLED),
(leftLeggingCheckBox, SkinAnimFlag.FORCE_LEFT_LEG_ARMOR),
(leftLegOCheckBox, SkinAnimFlag.LEFT_LEG_OVERLAY_DISABLED),
(leftLeggingCheckBox, SkinAnimFlag.SHOW_LEFT_LEG_ARMOR),
(leftLegOCheckBox, SkinAnimFlag.LEFT_PANTS_DISABLED),
(noArmorCheckBox, SkinAnimFlag.ALL_ARMOR_DISABLED),
(rightArmCheckBox, SkinAnimFlag.RIGHT_ARM_DISABLED),
(rightArmOCheckBox, SkinAnimFlag.RIGHT_ARM_OVERLAY_DISABLED),
(rightArmorCheckBox, SkinAnimFlag.FORCE_RIGHT_ARM_ARMOR),
(rightArmOCheckBox, SkinAnimFlag.RIGHT_SLEEVE_DISABLED),
(rightArmorCheckBox, SkinAnimFlag.SHOW_CHESTPLATE_LEFT),
(rightLegCheckBox, SkinAnimFlag.RIGHT_LEG_DISABLED),
(rightLeggingCheckBox, SkinAnimFlag.FORCE_RIGHT_LEG_ARMOR),
(rightLegOCheckBox, SkinAnimFlag.RIGHT_LEG_OVERLAY_DISABLED),
(santaCheckBox, SkinAnimFlag.BAD_SANTA),
(rightLeggingCheckBox, SkinAnimFlag.SHOW_RIGHT_LEG_ARMOR),
(rightLegOCheckBox, SkinAnimFlag.RIGHT_PANTS_DISABLED),
(santaCheckBox, SkinAnimFlag.SIT_IDLE_ANIMATION),
(slimCheckBox, SkinAnimFlag.SLIM_MODEL),
(staticArmsCheckBox, SkinAnimFlag.STATIC_ARMS),
(staticLegsCheckBox, SkinAnimFlag.STATIC_LEGS),
(statueCheckBox, SkinAnimFlag.STATUE_OF_LIBERTY),
(syncArmsCheckBox, SkinAnimFlag.SYNCED_ARMS),
(syncLegsCheckBox, SkinAnimFlag.SYNCED_LEGS),
(unknownCheckBox, SkinAnimFlag.__BIT_4),
(animationOverrideCheckBox, SkinAnimFlag.CUSTOM_ANIMATION_OVERRIDE),
(zombieCheckBox, SkinAnimFlag.ZOMBIE_ARMS)
);
ruleset.OnCheckboxChanged = setDisplayAnim;
@@ -281,7 +281,7 @@ namespace PckStudio.Forms.Editor
if (saveFileDialog.ShowDialog(this) != DialogResult.OK)
return;
bool isSlim = ruleset.Value.GetFlag(SkinAnimFlag.SLIM_MODEL);
bool is64x64 = ruleset.Value.GetFlag(SkinAnimFlag.RESOLUTION_64x64);
bool is64x64 = ruleset.Value.GetFlag(SkinAnimFlag.MODERN_WIDE_MODEL);
bool isClassic32 = !isSlim && !is64x64;
Image skin = isSlim ? Properties.Resources.slim_template : Properties.Resources.classic_template;
@@ -292,11 +292,11 @@ namespace PckStudio.Forms.Editor
using (Graphics graphic = Graphics.FromImage(img))
{
graphic.DrawImage(skin, new Rectangle(Point.Empty, imgSize), new Rectangle(Point.Empty, imgSize), GraphicsUnit.Pixel);
if (ruleset.Value.GetFlag(SkinAnimFlag.HEAD_OVERLAY_DISABLED))
if (ruleset.Value.GetFlag(SkinAnimFlag.HEADWEAR_DISABLED))
graphic.FillRectangle(Brushes.Magenta, new Rectangle(32, 0, 32, 16));
if (ruleset.Value.GetFlag(SkinAnimFlag.HEAD_DISABLED))
graphic.FillRectangle(Brushes.Magenta, new Rectangle(0, 0, 32, 16));
if (ruleset.Value.GetFlag(SkinAnimFlag.BODY_DISABLED))
if (ruleset.Value.GetFlag(SkinAnimFlag.TORSO_DISABLED))
graphic.FillRectangle(Brushes.Magenta, new Rectangle(16, 16, 24, 16));
if (img.Height == 64)
{
@@ -304,19 +304,19 @@ namespace PckStudio.Forms.Editor
graphic.FillRectangle(Brushes.Magenta, new Rectangle(40, 16, 16, 16));
if (ruleset.Value.GetFlag(SkinAnimFlag.RIGHT_LEG_DISABLED))
graphic.FillRectangle(Brushes.Magenta, new Rectangle(0, 16, 16, 16));
if (ruleset.Value.GetFlag(SkinAnimFlag.BODY_OVERLAY_DISABLED))
if (ruleset.Value.GetFlag(SkinAnimFlag.JACKET_DISABLED))
graphic.FillRectangle(Brushes.Magenta, new Rectangle(16, 32, 24, 16));
if (ruleset.Value.GetFlag(SkinAnimFlag.RIGHT_ARM_OVERLAY_DISABLED))
if (ruleset.Value.GetFlag(SkinAnimFlag.RIGHT_SLEEVE_DISABLED))
graphic.FillRectangle(Brushes.Magenta, new Rectangle(40, 32, 16, 16));
if (ruleset.Value.GetFlag(SkinAnimFlag.RIGHT_LEG_OVERLAY_DISABLED))
if (ruleset.Value.GetFlag(SkinAnimFlag.RIGHT_PANTS_DISABLED))
graphic.FillRectangle(Brushes.Magenta, new Rectangle(0, 32, 16, 16));
if (ruleset.Value.GetFlag(SkinAnimFlag.LEFT_LEG_OVERLAY_DISABLED))
if (ruleset.Value.GetFlag(SkinAnimFlag.LEFT_PANTS_DISABLED))
graphic.FillRectangle(Brushes.Magenta, new Rectangle(0, 48, 16, 16));
if (ruleset.Value.GetFlag(SkinAnimFlag.LEFT_LEG_DISABLED))
graphic.FillRectangle(Brushes.Magenta, new Rectangle(16, 48, 16, 16));
if (ruleset.Value.GetFlag(SkinAnimFlag.LEFT_ARM_DISABLED))
graphic.FillRectangle(Brushes.Magenta, new Rectangle(32, 48, 16, 16));
if (ruleset.Value.GetFlag(SkinAnimFlag.LEFT_ARM_OVERLAY_DISABLED))
if (ruleset.Value.GetFlag(SkinAnimFlag.LEFT_SLEEVE_DISABLED))
graphic.FillRectangle(Brushes.Magenta, new Rectangle(48, 48, 16, 16));
}
else
@@ -343,7 +343,7 @@ namespace PckStudio.Forms.Editor
static readonly Dictionary<string, SkinAnimMask> Templates = new Dictionary<string, SkinAnimMask>()
{
{ "Steve (64x32)", SkinAnimMask.NONE },
{ "Steve (64x64)", SkinAnimMask.RESOLUTION_64x64 },
{ "Steve (64x64)", SkinAnimMask.MODERN_WIDE_MODEL },
{ "Alex (64x64)", SkinAnimMask.SLIM_MODEL },
{ "Zombie Skins", SkinAnimMask.ZOMBIE_ARMS },
{ "Cetacean Skins", SkinAnimMask.SYNCED_ARMS | SkinAnimMask.SYNCED_LEGS },

View File

@@ -462,7 +462,7 @@ namespace PckStudio.Forms.Editor
private void exportTemplateButton_Click(object sender, EventArgs e)
{
Image templateTexture = Resources.classic_template;
SkinAnimMask templateAnimMask = SkinAnimMask.RESOLUTION_64x64;
SkinAnimMask templateAnimMask = SkinAnimMask.MODERN_WIDE_MODEL;
SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.Title = "Save Template Model";

View File

@@ -274,7 +274,7 @@ namespace PckStudio.Rendering
InitializeCamera();
InitializeComponent();
ANIM ??= new SkinANIM(SkinAnimMask.RESOLUTION_64x64);
ANIM ??= new SkinANIM(SkinAnimMask.MODERN_WIDE_MODEL);
ModelData = new ObservableCollection<SkinBOX>();
ModelData.CollectionChanged += ModelData_CollectionChanged;
}
@@ -705,9 +705,9 @@ namespace PckStudio.Rendering
private void OnANIMUpdate()
{
head.SetVisible(0, !ANIM.GetFlag(SkinAnimFlag.HEAD_DISABLED));
head.SetVisible(1, !ANIM.GetFlag(SkinAnimFlag.HEAD_OVERLAY_DISABLED));
head.SetVisible(1, !ANIM.GetFlag(SkinAnimFlag.HEADWEAR_DISABLED));
body.SetVisible(0, !ANIM.GetFlag(SkinAnimFlag.BODY_DISABLED));
body.SetVisible(0, !ANIM.GetFlag(SkinAnimFlag.TORSO_DISABLED));
rightArm.SetVisible(0, !ANIM.GetFlag(SkinAnimFlag.RIGHT_ARM_DISABLED));
leftArm.SetVisible(0, !ANIM.GetFlag(SkinAnimFlag.LEFT_ARM_DISABLED));
rightLeg.SetVisible(0, !ANIM.GetFlag(SkinAnimFlag.RIGHT_LEG_DISABLED));
@@ -716,14 +716,14 @@ namespace PckStudio.Rendering
bool slim = ANIM.GetFlag(SkinAnimFlag.SLIM_MODEL);
head.FlipZMapping = true;
if (slim || ANIM.GetFlag(SkinAnimFlag.RESOLUTION_64x64))
if (slim || ANIM.GetFlag(SkinAnimFlag.MODERN_WIDE_MODEL))
{
TextureSize = new Size(64, 64);
body.SetVisible(1, !ANIM.GetFlag(SkinAnimFlag.BODY_OVERLAY_DISABLED));
rightArm.SetVisible(1, !ANIM.GetFlag(SkinAnimFlag.RIGHT_ARM_OVERLAY_DISABLED));
leftArm.SetVisible(1, !ANIM.GetFlag(SkinAnimFlag.LEFT_ARM_OVERLAY_DISABLED));
rightLeg.SetVisible(1, !ANIM.GetFlag(SkinAnimFlag.RIGHT_LEG_OVERLAY_DISABLED));
leftLeg.SetVisible(1, !ANIM.GetFlag(SkinAnimFlag.LEFT_LEG_OVERLAY_DISABLED));
body.SetVisible(1, !ANIM.GetFlag(SkinAnimFlag.JACKET_DISABLED));
rightArm.SetVisible(1, !ANIM.GetFlag(SkinAnimFlag.RIGHT_SLEEVE_DISABLED));
leftArm.SetVisible(1, !ANIM.GetFlag(SkinAnimFlag.LEFT_SLEEVE_DISABLED));
rightLeg.SetVisible(1, !ANIM.GetFlag(SkinAnimFlag.RIGHT_PANTS_DISABLED));
leftLeg.SetVisible(1, !ANIM.GetFlag(SkinAnimFlag.LEFT_PANTS_DISABLED));
int slimValue = slim ? 3 : 4;
rightArm.ReplaceCube(0, new(slim ? -2 : -3, -2, -2), new(slimValue, 12, 4), new(40, 16));
@@ -919,26 +919,26 @@ namespace PckStudio.Rendering
{
armorTexture.Bind();
cubeShader.SetUniform2("TexSize", new Vector2(64, 64));
if (!ANIM.GetFlag(SkinAnimFlag.HEAD_DISABLED) || ANIM.GetFlag(SkinAnimFlag.FORCE_HEAD_ARMOR))
if (!ANIM.GetFlag(SkinAnimFlag.HEAD_DISABLED) || ANIM.GetFlag(SkinAnimFlag.SHOW_HEAD_ARMOR))
RenderPart(cubeShader, offsetSpecificMeshStorage["HELMET"], Matrix4.Identity, renderTransform);
if (!ANIM.GetFlag(SkinAnimFlag.BODY_DISABLED) || ANIM.GetFlag(SkinAnimFlag.FORCE_BODY_ARMOR))
if (!ANIM.GetFlag(SkinAnimFlag.TORSO_DISABLED) || ANIM.GetFlag(SkinAnimFlag.SHOW_CHESTPLATE_CENTER))
RenderPart(cubeShader, offsetSpecificMeshStorage["CHEST"], Matrix4.Identity, renderTransform);
if (!ANIM.GetFlag(SkinAnimFlag.RIGHT_ARM_DISABLED) || ANIM.GetFlag(SkinAnimFlag.FORCE_RIGHT_ARM_ARMOR))
if (!ANIM.GetFlag(SkinAnimFlag.RIGHT_ARM_DISABLED) || ANIM.GetFlag(SkinAnimFlag.SHOW_CHESTPLATE_LEFT))
RenderPart(cubeShader, offsetSpecificMeshStorage["SHOULDER0"], armRightMatrix, renderTransform);
if (!ANIM.GetFlag(SkinAnimFlag.LEFT_ARM_DISABLED) || ANIM.GetFlag(SkinAnimFlag.FORCE_LEFT_ARM_ARMOR))
if (!ANIM.GetFlag(SkinAnimFlag.LEFT_ARM_DISABLED) || ANIM.GetFlag(SkinAnimFlag.SHOW_CHESTPLATE_LEFT))
RenderPart(cubeShader, offsetSpecificMeshStorage["SHOULDER1"], armLeftMatrix, renderTransform);
bool showRightLegArmor = !ANIM.GetFlag(SkinAnimFlag.RIGHT_LEG_DISABLED) || ANIM.GetFlag(SkinAnimFlag.FORCE_RIGHT_LEG_ARMOR);
bool showRightLegArmor = !ANIM.GetFlag(SkinAnimFlag.RIGHT_LEG_DISABLED) || ANIM.GetFlag(SkinAnimFlag.SHOW_RIGHT_LEG_ARMOR);
if (showRightLegArmor)
{
RenderPart(cubeShader, offsetSpecificMeshStorage["PANTS0"], legRightMatrix, renderTransform);
RenderPart(cubeShader, offsetSpecificMeshStorage["BOOT0"], legRightMatrix, renderTransform);
}
bool showLeftLegArmor = !ANIM.GetFlag(SkinAnimFlag.LEFT_LEG_DISABLED) || ANIM.GetFlag(SkinAnimFlag.FORCE_LEFT_LEG_ARMOR);
bool showLeftLegArmor = !ANIM.GetFlag(SkinAnimFlag.LEFT_LEG_DISABLED) || ANIM.GetFlag(SkinAnimFlag.SHOW_LEFT_LEG_ARMOR);
if (showLeftLegArmor)
{
RenderPart(cubeShader, offsetSpecificMeshStorage["PANTS1"], legLeftMatrix, renderTransform);

View File

@@ -23,44 +23,44 @@ namespace PckStudio.Core.Skin
/// </summary>
public enum SkinAnimFlag : int
{
STATIC_ARMS = 0, // 0x01
ZOMBIE_ARMS = 1, // 0x02
STATIC_LEGS = 2, // 0x04
BAD_SANTA = 3, // 0x08
//
__BIT_4 = 4, // 0x10 - Unused??
SYNCED_LEGS = 5, // 0x20
SYNCED_ARMS = 6, // 0x40
STATUE_OF_LIBERTY = 7, // 0x80
STATIC_ARMS = 0, // 0x01
ZOMBIE_ARMS = 1, // 0x02
STATIC_LEGS = 2, // 0x04
SIT_IDLE_ANIMATION = 3, // 0x08
//
CUSTOM_ANIMATION_OVERRIDE = 4, // 0x10
SYNCED_LEGS = 5, // 0x20
SYNCED_ARMS = 6, // 0x40
STATUE_OF_LIBERTY = 7, // 0x80
ALL_ARMOR_DISABLED = 8, // 0x100
HEAD_BOBBING_DISABLED = 9, // 0x200
HEAD_DISABLED = 10, // 0x400
RIGHT_ARM_DISABLED = 11, // 0x800
ALL_ARMOR_DISABLED = 8, // 0x100
NO_BOBBING_OVERRIDE = 9, // 0x200
HEAD_DISABLED = 10, // 0x400
RIGHT_ARM_DISABLED = 11, // 0x800
LEFT_ARM_DISABLED = 12, // 0x1000
BODY_DISABLED = 13, // 0x2000
RIGHT_LEG_DISABLED = 14, // 0x4000
LEFT_LEG_DISABLED = 15, // 0x8000
LEFT_ARM_DISABLED = 12, // 0x1000
TORSO_DISABLED = 13, // 0x2000
RIGHT_LEG_DISABLED = 14, // 0x4000
LEFT_LEG_DISABLED = 15, // 0x8000
HEAD_OVERLAY_DISABLED = 16, // 0x10000
DO_BACKWARDS_CROUCH = 17, // 0x20000
RESOLUTION_64x64 = 18, // 0x40000
SLIM_MODEL = 19, // 0x80000
HEADWEAR_DISABLED = 16, // 0x10000
DO_BACKWARDS_CROUCH = 17, // 0x20000
MODERN_WIDE_MODEL = 18, // 0x40000
SLIM_MODEL = 19, // 0x80000
LEFT_ARM_OVERLAY_DISABLED = 20, // 0x100000
RIGHT_ARM_OVERLAY_DISABLED = 21, // 0x200000
LEFT_LEG_OVERLAY_DISABLED = 22, // 0x400000
RIGHT_LEG_OVERLAY_DISABLED = 23, // 0x800000
LEFT_SLEEVE_DISABLED = 20, // 0x100000
RIGHT_SLEEVE_DISABLED = 21, // 0x200000
LEFT_PANTS_DISABLED = 22, // 0x400000
RIGHT_PANTS_DISABLED = 23, // 0x800000
BODY_OVERLAY_DISABLED = 24, // 0x1000000
FORCE_HEAD_ARMOR = 25, // 0x2000000
FORCE_RIGHT_ARM_ARMOR = 26, // 0x4000000
FORCE_LEFT_ARM_ARMOR = 27, // 0x8000000
JACKET_DISABLED = 24, // 0x1000000
SHOW_HEAD_ARMOR = 25, // 0x2000000
SHOW_CHESTPLATE_RIGHT = 26, // 0x4000000
SHOW_CHESTPLATE_LEFT = 27, // 0x8000000
FORCE_BODY_ARMOR = 28, // 0x10000000
FORCE_RIGHT_LEG_ARMOR = 29, // 0x20000000
FORCE_LEFT_LEG_ARMOR = 30, // 0x40000000
DINNERBONE = 31, // 0x80000000
SHOW_CHESTPLATE_CENTER = 28, // 0x10000000
SHOW_RIGHT_LEG_ARMOR = 29, // 0x20000000
SHOW_LEFT_LEG_ARMOR = 30, // 0x40000000
DINNERBONE = 31, // 0x80000000
}
}

View File

@@ -13,7 +13,7 @@ namespace PckStudio.Core.Skin
STATIC_ARMS = 1 << 0, // 0x01
ZOMBIE_ARMS = 1 << 1, // 0x02
STATIC_LEGS = 1 << 2, // 0x04
BAD_SANTA = 1 << 3, // 0x08
SIT_IDLE_ANIMATION = 1 << 3, // 0x08
CUSTOM_ANIMATION_OVERRIDE = 1 << 4, // 0x10, Overrides the game's "Custom Skin Animation" setting (0x19 in Settings enum)
SYNCED_LEGS = 1 << 5, // 0x20
@@ -21,7 +21,7 @@ namespace PckStudio.Core.Skin
STATUE_OF_LIBERTY = 1 << 7, // 0x80
ALL_ARMOR_DISABLED = 1 << 8, // 0x100
HEAD_BOBBING_DISABLED = 1 << 9, // 0x200
NO_BOBBING_OVERRIDE = 1 << 9, // 0x200
HEAD_DISABLED = 1 << 10, // 0x400
RIGHT_ARM_DISABLED = 1 << 11, // 0x800
@@ -30,17 +30,17 @@ namespace PckStudio.Core.Skin
RIGHT_LEG_DISABLED = 1 << 14, // 0x4000
LEFT_LEG_DISABLED = 1 << 15, // 0x8000
HEAD_OVERLAY_DISABLED = 1 << 16, // 0x10000
DO_BACKWARDS_CROUCH = 1 << 17, // 0x20000
RESOLUTION_64x64 = 1 << 18, // 0x40000
HEADWEAR_DISABLED = 1 << 16, // 0x10000
BACKWARDS_CROUCH = 1 << 17, // 0x20000
MODERN_WIDE_MODEL = 1 << 18, // 0x40000
SLIM_MODEL = 1 << 19, // 0x80000
LEFT_ARM_OVERLAY_DISABLED = 1 << 20, // 0x100000
RIGHT_ARM_OVERLAY_DISABLED = 1 << 21, // 0x200000
LEFT_LEG_OVERLAY_DISABLED = 1 << 22, // 0x400000
RIGHT_LEG_OVERLAY_DISABLED = 1 << 23, // 0x800000
LEFT_SLEEVE_DISABLED = 1 << 20, // 0x100000
RIGHT_SLEEVE_DISABLED = 1 << 21, // 0x200000
LEFT_PANTS_DISABLED = 1 << 22, // 0x400000
RIGHT_PANTS_DISABLED = 1 << 23, // 0x800000
BODY_OVERLAY_DISABLED = 1 << 24, // 0x1000000
JACKET_DISABLED = 1 << 24, // 0x1000000
FORCE_HEAD_ARMOR = 1 << 25, // 0x2000000
FORCE_RIGHT_ARM_ARMOR = 1 << 26, // 0x4000000
FORCE_LEFT_ARM_ARMOR = 1 << 27, // 0x8000000

View File

@@ -52,7 +52,7 @@ namespace PckStudio.Core.Skin
{
[unchecked((int)0x9560320c)] = SkinAnimFlag.HEAD_DISABLED, // HEAD -4 -8 -4 8 8 8 0 0 0 0 0
[unchecked((int)0x1f13e4a3)] = SkinAnimFlag.BODY_DISABLED, // BODY -4 0 -2 8 12 4 16 16 0 0 0
[unchecked((int)0x1f13e4a3)] = SkinAnimFlag.TORSO_DISABLED, // BODY -4 0 -2 8 12 4 16 16 0 0 0
[unchecked((int)0x407c9b27)] = SkinAnimFlag.RIGHT_ARM_DISABLED, // ARM0 -3 -2 -2 4 12 4 40 16 0 0 0 // standard (64x64)
[unchecked((int)0x867c9b27)] = SkinAnimFlag.RIGHT_ARM_DISABLED, // ARM0 -2 -2 -2 3 12 4 40 16 0 0 0 // slim
@@ -66,22 +66,22 @@ namespace PckStudio.Core.Skin
[unchecked((int)0x5da5e24a)] = SkinAnimFlag.RIGHT_LEG_DISABLED, // LEG0 -2 0 -2 4 12 4 0 16 0 0 0
[unchecked((int)0x4bfe0142)] = SkinAnimFlag.HEAD_OVERLAY_DISABLED, // HEADWEAR -4 -8 -4 8 8 8 32 0 0 0 0
[unchecked((int)0x4bfe0142)] = SkinAnimFlag.HEADWEAR_DISABLED, // HEADWEAR -4 -8 -4 8 8 8 32 0 0 0 0
// ------------------------------------------------------------------------------------------------------------------------------------
[unchecked((int)0xe693e4a3)] = SkinAnimFlag.BODY_OVERLAY_DISABLED, // BODY -4 0 -2 8 12 4 16 32 0 0 0
[unchecked((int)0x8e322609)] = SkinAnimFlag.BODY_OVERLAY_DISABLED, // JACKET -4 0 -2 8 12 4 16 32 0 0 0
[unchecked((int)0xe693e4a3)] = SkinAnimFlag.JACKET_DISABLED, // BODY -4 0 -2 8 12 4 16 32 0 0 0
[unchecked((int)0x8e322609)] = SkinAnimFlag.JACKET_DISABLED, // JACKET -4 0 -2 8 12 4 16 32 0 0 0
[unchecked((int)0x860c4433)] = SkinAnimFlag.RIGHT_ARM_OVERLAY_DISABLED, // SLEEVE0 -3 -2 -2 4 12 4 40 32 0 0 0 // classic
[unchecked((int)0xcc0c4433)] = SkinAnimFlag.RIGHT_ARM_OVERLAY_DISABLED, // SLEEVE0 -2 -2 -2 3 12 4 40 32 0 0 0 // slim
[unchecked((int)0x860c4433)] = SkinAnimFlag.RIGHT_SLEEVE_DISABLED, // SLEEVE0 -3 -2 -2 4 12 4 40 32 0 0 0 // classic
[unchecked((int)0xcc0c4433)] = SkinAnimFlag.RIGHT_SLEEVE_DISABLED, // SLEEVE0 -2 -2 -2 3 12 4 40 32 0 0 0 // slim
[unchecked((int)0x91407908)] = SkinAnimFlag.LEFT_ARM_OVERLAY_DISABLED, // SLEEVE1 -1 -2 -2 4 12 4 48 48 0 0 0 // classic
[unchecked((int)0x79807908)] = SkinAnimFlag.LEFT_ARM_OVERLAY_DISABLED, // SLEEVE1 -1 -2 -2 3 12 4 48 48 0 0 0 // slim
[unchecked((int)0x91407908)] = SkinAnimFlag.LEFT_SLEEVE_DISABLED, // SLEEVE1 -1 -2 -2 4 12 4 48 48 0 0 0 // classic
[unchecked((int)0x79807908)] = SkinAnimFlag.LEFT_SLEEVE_DISABLED, // SLEEVE1 -1 -2 -2 3 12 4 48 48 0 0 0 // slim
[unchecked((int)0x4de0238a)] = SkinAnimFlag.RIGHT_LEG_OVERLAY_DISABLED, // PANTS0 -2 0 -2 4 12 4 0 32 0 0 0
[unchecked((int)0x4de0238a)] = SkinAnimFlag.RIGHT_PANTS_DISABLED, // PANTS0 -2 0 -2 4 12 4 0 32 0 0 0
[unchecked((int)0x176f238a)] = SkinAnimFlag.LEFT_LEG_OVERLAY_DISABLED, // PANTS1 -2 0 -2 4 12 4 0 48 0 0 0
[unchecked((int)0x176f238a)] = SkinAnimFlag.LEFT_PANTS_DISABLED, // PANTS1 -2 0 -2 4 12 4 0 48 0 0 0
};
public static readonly string[] ValidBoxTypes = BaseTypes.Concat(OverlayTypes).ToArray();

View File

@@ -102,19 +102,19 @@ namespace PckStudio.ModelSupport
{
SkinANIM skinANIM = (
SkinAnimMask.HEAD_DISABLED |
SkinAnimMask.HEAD_OVERLAY_DISABLED |
SkinAnimMask.HEADWEAR_DISABLED |
SkinAnimMask.BODY_DISABLED |
SkinAnimMask.BODY_OVERLAY_DISABLED |
SkinAnimMask.JACKET_DISABLED |
SkinAnimMask.RIGHT_ARM_DISABLED |
SkinAnimMask.RIGHT_ARM_OVERLAY_DISABLED |
SkinAnimMask.RIGHT_SLEEVE_DISABLED |
SkinAnimMask.LEFT_ARM_DISABLED |
SkinAnimMask.LEFT_ARM_OVERLAY_DISABLED |
SkinAnimMask.LEFT_SLEEVE_DISABLED |
SkinAnimMask.RIGHT_LEG_DISABLED |
SkinAnimMask.RIGHT_LEG_OVERLAY_DISABLED |
SkinAnimMask.RIGHT_PANTS_DISABLED |
SkinAnimMask.LEFT_LEG_DISABLED |
SkinAnimMask.LEFT_LEG_OVERLAY_DISABLED);
SkinAnimMask.LEFT_PANTS_DISABLED);
skinANIM = skinANIM.SetFlag(SkinAnimFlag.RESOLUTION_64x64, texture.Size.Width == texture.Size.Height);
skinANIM = skinANIM.SetFlag(SkinAnimFlag.MODERN_WIDE_MODEL, texture.Size.Width == texture.Size.Height);
SkinModel skinModel = new SkinModel();
@@ -407,35 +407,35 @@ namespace PckStudio.ModelSupport
private static void ANIM2BOX(SkinANIM anim, Action<SkinBOX> converter)
{
bool isSlim = anim.GetFlag(SkinAnimFlag.SLIM_MODEL);
bool is32x64 = !(anim.GetFlag(SkinAnimFlag.RESOLUTION_64x64) || isSlim);
bool is32x64 = !(anim.GetFlag(SkinAnimFlag.MODERN_WIDE_MODEL) || isSlim);
if (!anim.GetFlag(SkinAnimFlag.HEAD_DISABLED))
converter(new SkinBOX("HEAD", new Vector3(-4, -8, -4), new Vector3(8), Vector2.Zero));
if (!is32x64 && !anim.GetFlag(SkinAnimFlag.HEAD_OVERLAY_DISABLED))
if (!is32x64 && !anim.GetFlag(SkinAnimFlag.HEADWEAR_DISABLED))
converter(new SkinBOX("HEADWEAR", new Vector3(-4, -8, -4), new Vector3(8), new Vector2(32, 0)));
if (!anim.GetFlag(SkinAnimFlag.BODY_DISABLED))
if (!anim.GetFlag(SkinAnimFlag.TORSO_DISABLED))
converter(new SkinBOX("BODY", new(-4, 0, -2), new(8, 12, 4), new(16, 16)));
if (!is32x64 && !anim.GetFlag(SkinAnimFlag.BODY_OVERLAY_DISABLED))
if (!is32x64 && !anim.GetFlag(SkinAnimFlag.JACKET_DISABLED))
converter(new SkinBOX("JACKET", new(-4, 0, -2), new(8, 12, 4), new(16, 32)));
if (!anim.GetFlag(SkinAnimFlag.RIGHT_ARM_DISABLED))
converter(new SkinBOX("ARM0", new(isSlim ? -2 : - 3, -2, -2), new(isSlim ? 3 : 4, 12, 4), new(40, 16)));
if (!is32x64 && !anim.GetFlag(SkinAnimFlag.RIGHT_ARM_OVERLAY_DISABLED))
if (!is32x64 && !anim.GetFlag(SkinAnimFlag.RIGHT_SLEEVE_DISABLED))
converter(new SkinBOX("SLEEVE0", new(isSlim ? -2 : - 3, -2, -2), new(isSlim ? 3 : 4, 12, 4), new(40, 32)));
if (!anim.GetFlag(SkinAnimFlag.LEFT_ARM_DISABLED))
converter(new SkinBOX("ARM1", new(-1, -2, -2), new(isSlim ? 3 : 4, 12, 4), is32x64 ? new(40, 16) : new(32, 48), mirror: is32x64));
if (!is32x64 && !anim.GetFlag(SkinAnimFlag.LEFT_ARM_OVERLAY_DISABLED))
if (!is32x64 && !anim.GetFlag(SkinAnimFlag.LEFT_SLEEVE_DISABLED))
converter(new SkinBOX("SLEEVE1", new(-1, -2, -2), new(isSlim ? 3 : 4, 12, 4), new(48, 48)));
if (!anim.GetFlag(SkinAnimFlag.RIGHT_LEG_DISABLED))
converter(new SkinBOX("LEG0", new(-2, 0, -2), new(4, 12, 4), new(0, 16)));
if (!is32x64 && !anim.GetFlag(SkinAnimFlag.RIGHT_LEG_OVERLAY_DISABLED))
if (!is32x64 && !anim.GetFlag(SkinAnimFlag.RIGHT_PANTS_DISABLED))
converter(new SkinBOX("PANTS0", new(-2, 0, -2), new(4, 12, 4), new(0, 32)));
if (!anim.GetFlag(SkinAnimFlag.LEFT_LEG_DISABLED))
@@ -443,7 +443,7 @@ namespace PckStudio.ModelSupport
converter(new SkinBOX("LEG1", new(-2, 0, -2), new(4, 12, 4), is32x64 ? new(0, 16) : new(16, 48), mirror: is32x64));
}
if (!is32x64 && !anim.GetFlag(SkinAnimFlag.LEFT_LEG_OVERLAY_DISABLED))
if (!is32x64 && !anim.GetFlag(SkinAnimFlag.LEFT_PANTS_DISABLED))
{
converter(new SkinBOX("PANTS1", new(-2, 0, -2), new(4, 12, 4), new(0, 48)));
}