From 69f2aedef7941945b9737d724d2a3003d2f8310b Mon Sep 17 00:00:00 2001 From: Electroblob77 <35599699+Electroblob77@users.noreply.github.com> Date: Tue, 17 Dec 2019 17:52:44 +0000 Subject: [PATCH] Correctly hide/unhide skin overlay parts when rendering frost layer, fixes #261 --- .../wizardry/client/renderer/LayerFrost.java | 29 +++++++++++++++++-- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/src/main/java/electroblob/wizardry/client/renderer/LayerFrost.java b/src/main/java/electroblob/wizardry/client/renderer/LayerFrost.java index a0b775fb..a51606e3 100644 --- a/src/main/java/electroblob/wizardry/client/renderer/LayerFrost.java +++ b/src/main/java/electroblob/wizardry/client/renderer/LayerFrost.java @@ -121,11 +121,26 @@ public class LayerFrost implements LayerRenderer { } GlStateManager.scale(scaleX, scaleY, 1); GlStateManager.matrixMode(GL11.GL_MODELVIEW); - + + boolean headWearHidden = false; + boolean bodyWearHidden = false; + boolean leftArmWearHidden = false; + boolean rightArmWearHidden = false; + boolean leftLegWearHidden = false; + boolean rightLegWearHidden = false; + // Hides the hat layer for bipeds - if(this.model instanceof ModelBiped) ((ModelBiped)this.model).bipedHeadwear.isHidden = true; + if(this.model instanceof ModelBiped){ + headWearHidden = ((ModelBiped)this.model).bipedHeadwear.isHidden; + ((ModelBiped)this.model).bipedHeadwear.isHidden = true; + } if(this.model instanceof ModelPlayer){ + bodyWearHidden = ((ModelPlayer)this.model).bipedBodyWear.isHidden; + leftArmWearHidden = ((ModelPlayer)this.model).bipedLeftArmwear.isHidden; + rightArmWearHidden = ((ModelPlayer)this.model).bipedRightArmwear.isHidden; + leftLegWearHidden = ((ModelPlayer)this.model).bipedLeftLegwear.isHidden; + rightLegWearHidden = ((ModelPlayer)this.model).bipedRightLegwear.isHidden; ((ModelPlayer)this.model).bipedBodyWear.isHidden = true; ((ModelPlayer)this.model).bipedLeftArmwear.isHidden = true; ((ModelPlayer)this.model).bipedRightArmwear.isHidden = true; @@ -136,7 +151,15 @@ public class LayerFrost implements LayerRenderer { this.model.setLivingAnimations(entity, limbSwing, limbSwingAmount, partialTicks); this.model.render(entity, limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale); - if(this.model instanceof ModelBiped) ((ModelBiped)this.model).bipedHeadwear.isHidden = false; + if(this.model instanceof ModelBiped) ((ModelBiped)this.model).bipedHeadwear.isHidden = headWearHidden; + + if(this.model instanceof ModelPlayer){ + ((ModelPlayer)this.model).bipedBodyWear.isHidden = bodyWearHidden; + ((ModelPlayer)this.model).bipedLeftArmwear.isHidden = leftArmWearHidden; + ((ModelPlayer)this.model).bipedRightArmwear.isHidden = rightArmWearHidden; + ((ModelPlayer)this.model).bipedLeftLegwear.isHidden = leftLegWearHidden; + ((ModelPlayer)this.model).bipedRightLegwear.isHidden = rightLegWearHidden; + } // Undoes the texture scaling GlStateManager.matrixMode(GL11.GL_TEXTURE);