diff --git a/src/main/java/noppes/npcs/client/NoppesUtil.java b/src/main/java/noppes/npcs/client/NoppesUtil.java index b23104d27..3e22578a3 100644 --- a/src/main/java/noppes/npcs/client/NoppesUtil.java +++ b/src/main/java/noppes/npcs/client/NoppesUtil.java @@ -80,8 +80,9 @@ public class NoppesUtil { int tagID = skinOverlayList.getCompoundTagAt(i).getInteger("SkinOverlayID"); String tagString = skinOverlayList.getCompoundTagAt(i).getString("SkinOverlayTexture"); boolean glow = skinOverlayList.getCompoundTagAt(i).getBoolean("SkinOverlayGlow"); + float alpha = skinOverlayList.getCompoundTagAt(i).getFloat("SkinOverlayAlpha"); - skinOverlays.put(tagID,new SkinOverlayData(new ResourceLocation(tagString),glow)); + skinOverlays.put(tagID,new SkinOverlayData(new ResourceLocation(tagString),glow,alpha)); } Client.skinOverlays.put(player.getUniqueID(), skinOverlays); } diff --git a/src/main/java/noppes/npcs/client/renderer/RenderCNPCPlayer.java b/src/main/java/noppes/npcs/client/renderer/RenderCNPCPlayer.java index e17b7ffe7..ed0cd10f6 100644 --- a/src/main/java/noppes/npcs/client/renderer/RenderCNPCPlayer.java +++ b/src/main/java/noppes/npcs/client/renderer/RenderCNPCPlayer.java @@ -15,7 +15,7 @@ public class RenderCNPCPlayer extends RenderPlayer { public RenderCNPCPlayer() { } - private boolean preRenderOverlay(EntityPlayer player, ResourceLocation overlayLocation, boolean glow) { + private boolean preRenderOverlay(EntityPlayer player, ResourceLocation overlayLocation, boolean glow, float alpha) { try { this.bindTexture(overlayLocation); } catch (Exception exception) { @@ -30,6 +30,8 @@ public class RenderCNPCPlayer extends RenderPlayer { Minecraft.getMinecraft().entityRenderer.disableLightmap((double)0); } + GL11.glColor4f(1.0F, 1.0F, 1.0F, alpha); + GL11.glDepthMask(!player.isInvisible()); GL11.glPushMatrix(); @@ -50,7 +52,6 @@ public class RenderCNPCPlayer extends RenderPlayer { GL11.glLoadIdentity(); GL11.glMatrixMode(GL11.GL_MODELVIEW); - GL11.glEnable(GL11.GL_LIGHTING); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); GL11.glDepthFunc(GL11.GL_LEQUAL); @@ -69,7 +70,7 @@ public class RenderCNPCPlayer extends RenderPlayer { if (Client.skinOverlays.containsKey(player.getUniqueID())) { for (SkinOverlayData overlayData : Client.skinOverlays.get(player.getUniqueID()).values()) { - if (!preRenderOverlay(player, overlayData.location, overlayData.glow)) + if (!preRenderOverlay(player, overlayData.location, overlayData.glow, overlayData.alpha)) return; this.mainModel.render(p_77036_1_, p_77036_2_, p_77036_3_, p_77036_4_, p_77036_5_, p_77036_6_, p_77036_7_); postRenderOverlay(player); @@ -108,9 +109,8 @@ public class RenderCNPCPlayer extends RenderPlayer { if (Client.skinOverlays.containsKey(player.getUniqueID())) { for (SkinOverlayData overlayData : Client.skinOverlays.get(player.getUniqueID()).values()) { - if (!preRenderOverlay(player, overlayData.location, overlayData.glow)) + if (!preRenderOverlay(player, overlayData.location, overlayData.glow, overlayData.alpha)) return; - GL11.glColor3f(1.0F, 1.0F, 1.0F); this.modelBipedMain.onGround = 0.0F; this.modelBipedMain.setRotationAngles(0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, player); this.modelBipedMain.bipedRightArm.render(0.0625F); diff --git a/src/main/java/noppes/npcs/controllers/data/SkinOverlayData.java b/src/main/java/noppes/npcs/controllers/data/SkinOverlayData.java index 20e5207bf..21fbe6b88 100644 --- a/src/main/java/noppes/npcs/controllers/data/SkinOverlayData.java +++ b/src/main/java/noppes/npcs/controllers/data/SkinOverlayData.java @@ -5,9 +5,11 @@ import net.minecraft.util.ResourceLocation; public class SkinOverlayData { public ResourceLocation location; public boolean glow; + public float alpha = 1.0F; - public SkinOverlayData(ResourceLocation location, boolean glow) { + public SkinOverlayData(ResourceLocation location, boolean glow, float alpha) { this.location = location; this.glow = glow; + this.alpha = alpha; } } diff --git a/src/main/java/noppes/npcs/scripted/ScriptSkinOverlay.java b/src/main/java/noppes/npcs/scripted/ScriptSkinOverlay.java index b18d06be8..bd45ad216 100644 --- a/src/main/java/noppes/npcs/scripted/ScriptSkinOverlay.java +++ b/src/main/java/noppes/npcs/scripted/ScriptSkinOverlay.java @@ -5,6 +5,7 @@ import noppes.npcs.scripted.interfaces.ISkinOverlay; public class ScriptSkinOverlay implements ISkinOverlay { public String texture; public boolean glow; + public float alpha = 1.0F; public ScriptSkinOverlay(String texture) { this.texture = texture; @@ -23,4 +24,11 @@ public class ScriptSkinOverlay implements ISkinOverlay { public boolean getGlow() { return glow; } + + public void setAlpha(float alpha) { + this.alpha = alpha; + } + public float getAlpha() { + return alpha; + } } diff --git a/src/main/java/noppes/npcs/scripted/entity/ScriptPlayer.java b/src/main/java/noppes/npcs/scripted/entity/ScriptPlayer.java index 9377732c9..65d243adf 100644 --- a/src/main/java/noppes/npcs/scripted/entity/ScriptPlayer.java +++ b/src/main/java/noppes/npcs/scripted/entity/ScriptPlayer.java @@ -535,6 +535,7 @@ public class ScriptPlayer extends ScriptLivingBase compound.setInteger("SkinOverlayID", id); compound.setString("SkinOverlayTexture", overlay.getTexture()); compound.setBoolean("SkinOverlayGlow", overlay.getGlow()); + compound.setFloat("SkinOverlayAlpha", overlay.getAlpha()); if (!player.getEntityData().hasKey("SkinOverlayData")) { NBTTagList tagList = new NBTTagList();