From 50c8224eb10166a59da5d75cae35c342dbb5a65c Mon Sep 17 00:00:00 2001 From: Kam Date: Tue, 9 Apr 2024 01:17:57 -0400 Subject: [PATCH] Fix Tint Rendering when Turt Damages --- .../java/noppes/npcs/client/model/part/ModelLegs.java | 7 +++---- .../java/noppes/npcs/client/model/part/ModelTail.java | 7 +++---- .../noppes/npcs/client/model/util/ModelPartInterface.java | 7 +++---- src/main/java/noppes/npcs/controllers/data/TintData.java | 8 ++++++++ 4 files changed, 17 insertions(+), 12 deletions(-) diff --git a/src/main/java/noppes/npcs/client/model/part/ModelLegs.java b/src/main/java/noppes/npcs/client/model/part/ModelLegs.java index 068b35e99..191833e04 100644 --- a/src/main/java/noppes/npcs/client/model/part/ModelLegs.java +++ b/src/main/java/noppes/npcs/client/model/part/ModelLegs.java @@ -388,16 +388,15 @@ public class ModelLegs extends ModelScaleRenderer{ } } TintData tintData = entity.display.tintData; - boolean bo = entity.hurtTime <= 0 && entity.deathTime <= 0 && !base.isArmor && - !(tintData.isTintEnabled() && tintData.isGeneralTintEnabled()); - if(bo){ + boolean showColor = !base.isArmor && tintData.processColor(entity.hurtTime > 0 || entity.deathTime > 0); + if(showColor){ float red = (entity.modelData.legParts.color >> 16 & 255) / 255f; float green = (entity.modelData.legParts.color >> 8 & 255) / 255f; float blue = (entity.modelData.legParts.color & 255) / 255f; GL11.glColor4f(red, green, blue, base.alpha); } super.render(par1); - if(bo){ + if(showColor){ GL11.glColor4f(1, 1, 1, base.alpha); } GL11.glPopMatrix(); diff --git a/src/main/java/noppes/npcs/client/model/part/ModelTail.java b/src/main/java/noppes/npcs/client/model/part/ModelTail.java index b18e985e3..2d6a5493e 100644 --- a/src/main/java/noppes/npcs/client/model/part/ModelTail.java +++ b/src/main/java/noppes/npcs/client/model/part/ModelTail.java @@ -183,16 +183,15 @@ public class ModelTail extends ModelScaleRenderer { } } TintData tintData = entity.display.tintData; - boolean bo = entity.hurtTime <= 0 && entity.deathTime <= 0 && !base.isArmor && - !(tintData.isTintEnabled() && tintData.isGeneralTintEnabled()); - if(bo){ + boolean showColor = !base.isArmor && tintData.processColor(entity.hurtTime > 0 || entity.deathTime > 0); + if(showColor){ float red = (color >> 16 & 255) / 255f; float green = (color >> 8 & 255) / 255f; float blue = (color & 255) / 255f; GL11.glColor4f(red, green, blue, base.alpha); } super.render(par1); - if(bo){ + if(showColor){ GL11.glColor4f(1, 1, 1, base.alpha); } } diff --git a/src/main/java/noppes/npcs/client/model/util/ModelPartInterface.java b/src/main/java/noppes/npcs/client/model/util/ModelPartInterface.java index a6913f740..8fffe075a 100644 --- a/src/main/java/noppes/npcs/client/model/util/ModelPartInterface.java +++ b/src/main/java/noppes/npcs/client/model/util/ModelPartInterface.java @@ -61,16 +61,15 @@ public abstract class ModelPartInterface extends ModelRenderer { } } TintData tintData = entity.display.tintData; - boolean bo = entity.hurtTime <= 0 && entity.deathTime <= 0 && !base.isArmor && - !(tintData.isTintEnabled() && tintData.isGeneralTintEnabled()); - if(bo){ + boolean showColor = !base.isArmor && tintData.processColor(entity.hurtTime > 0 || entity.deathTime > 0); + if(showColor){ float red = (color >> 16 & 255) / 255f; float green = (color >> 8 & 255) / 255f; float blue = (color & 255) / 255f; GL11.glColor4f(red, green, blue, base.alpha); } super.render(par1); - if(bo){ + if(showColor){ GL11.glColor4f(1, 1, 1, base.alpha); } } diff --git a/src/main/java/noppes/npcs/controllers/data/TintData.java b/src/main/java/noppes/npcs/controllers/data/TintData.java index 2a109e4d6..b72c867fd 100644 --- a/src/main/java/noppes/npcs/controllers/data/TintData.java +++ b/src/main/java/noppes/npcs/controllers/data/TintData.java @@ -80,4 +80,12 @@ public class TintData { public void setGeneralAlpha(int generalAlpha) { this.generalAlpha = generalAlpha; } + + public boolean processColor(boolean isHurt){ + if(isHurt){ + return (isTintEnabled() && (!isHurtTintEnabled() && !isGeneralTintEnabled())); + } else { + return !(isTintEnabled() && isGeneralTintEnabled()); + } + } }