From bf7e9eed6e3d47e0537ec8f7ddffabefad63d5f0 Mon Sep 17 00:00:00 2001 From: WayofTime Date: Wed, 27 Jul 2016 07:54:32 -0400 Subject: [PATCH] Removed the transparency from the bars themselves for the Demon Will gauge and set them to always render for testing --- .../client/hud/HUDElementDemonWillAura.java | 59 ++++++++++-------- .../assets/bloodmagic/textures/hud/bars.png | Bin 4456 -> 4458 bytes 2 files changed, 34 insertions(+), 25 deletions(-) diff --git a/src/main/java/WayofTime/bloodmagic/client/hud/HUDElementDemonWillAura.java b/src/main/java/WayofTime/bloodmagic/client/hud/HUDElementDemonWillAura.java index 7d42ac48..5af58b1d 100644 --- a/src/main/java/WayofTime/bloodmagic/client/hud/HUDElementDemonWillAura.java +++ b/src/main/java/WayofTime/bloodmagic/client/hud/HUDElementDemonWillAura.java @@ -1,10 +1,11 @@ package WayofTime.bloodmagic.client.hud; +import java.util.ArrayList; import java.util.HashMap; +import java.util.List; import java.util.Map; import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.Gui; import net.minecraft.client.gui.ScaledResolution; import net.minecraft.client.renderer.GlStateManager; import net.minecraft.client.renderer.Tessellator; @@ -21,8 +22,9 @@ import WayofTime.bloodmagic.util.Utils; public class HUDElementDemonWillAura extends HUDElement { protected Map crystalTextures = new HashMap(); + protected List barOrder = new ArrayList(); - private double maxBarSize = 54; +// private double maxBarSize = 54; public HUDElementDemonWillAura() { @@ -32,6 +34,11 @@ public class HUDElementDemonWillAura extends HUDElement crystalTextures.put(EnumDemonWillType.DESTRUCTIVE, new ResourceLocation(Constants.Mod.MODID, "textures/models/DestructiveCrystal.png")); crystalTextures.put(EnumDemonWillType.VENGEFUL, new ResourceLocation(Constants.Mod.MODID, "textures/models/VengefulCrystal.png")); crystalTextures.put(EnumDemonWillType.STEADFAST, new ResourceLocation(Constants.Mod.MODID, "textures/models/SteadfastCrystal.png")); + barOrder.add(EnumDemonWillType.DEFAULT); + barOrder.add(EnumDemonWillType.CORROSIVE); + barOrder.add(EnumDemonWillType.STEADFAST); + barOrder.add(EnumDemonWillType.DESTRUCTIVE); + barOrder.add(EnumDemonWillType.VENGEFUL); } @Override @@ -47,16 +54,17 @@ public class HUDElementDemonWillAura extends HUDElement Tessellator tessellator = Tessellator.getInstance(); VertexBuffer vertexBuffer = tessellator.getBuffer(); - minecraft.getTextureManager().bindTexture(new ResourceLocation(Constants.Mod.MODID, "textures/gui/demonWillBar.png")); + minecraft.getTextureManager().bindTexture(new ResourceLocation(Constants.Mod.MODID, "textures/hud/bars.png")); GlStateManager.color(1.0F, 1.0F, 1.0F); - this.drawTexturedModalRect(getXOffset(), getYOffset(), 45, 0, 45, 65); + this.drawTexturedModalRect(getXOffset(), getYOffset(), 0, 105 * 2, 80, 46); double maxAmount = Utils.getDemonWillResolution(player); - for (EnumDemonWillType type : EnumDemonWillType.values()) + for (EnumDemonWillType type : barOrder) { GlStateManager.color(1.0F, 1.0F, 1.0F); - minecraft.getTextureManager().bindTexture(crystalTextures.get(type)); +// minecraft.getTextureManager().bindTexture(crystalTextures.get(type)); + double maxBarSize = 26; double amount = ClientProxy.currentAura == null ? 0 : ClientProxy.currentAura.getWill(type); double ratio = Math.max(Math.min(amount / maxAmount, 1), 0); @@ -66,28 +74,29 @@ public class HUDElementDemonWillAura extends HUDElement double height = maxBarSize * ratio; double width = 5; - vertexBuffer.begin(7, DefaultVertexFormats.POSITION_TEX); - vertexBuffer.pos((double) (x), (double) (y + height), 0).tex(0, 1).endVertex(); - vertexBuffer.pos((double) (x + width), (double) (y + height), 0).tex(5d / 16d, 1).endVertex(); - vertexBuffer.pos((double) (x + width), (double) (y), 0).tex(5d / 16d, 1 - ratio).endVertex(); - vertexBuffer.pos((double) (x), (double) (y), 0).tex(0, 1 - ratio).endVertex(); - tessellator.draw(); +// vertexBuffer.begin(7, DefaultVertexFormats.POSITION_TEX); +// vertexBuffer.pos((double) (x), (double) (y + height), 0).tex(0, 1).endVertex(); +// vertexBuffer.pos((double) (x + width), (double) (y + height), 0).tex(5d / 16d, 1).endVertex(); +// vertexBuffer.pos((double) (x + width), (double) (y), 0).tex(5d / 16d, 1 - ratio).endVertex(); +// vertexBuffer.pos((double) (x), (double) (y), 0).tex(0, 1 - ratio).endVertex(); +// tessellator.draw(); - if (player.isSneaking()) - { - GlStateManager.pushMatrix(); - String value = "" + (int) amount; - GlStateManager.translate(x, (y + height + 4 + value.length() * 3), 0); - GlStateManager.scale(0.5, 0.5, 1); - GlStateManager.rotate(-90, 0, 0, 1); - minecraft.fontRendererObj.drawStringWithShadow("" + (int) amount, 0, 2, 0xffffff); - GlStateManager.popMatrix(); - } +// if (player.isSneaking()) +// { +// GlStateManager.pushMatrix(); +// String value = "" + (int) amount; +// GlStateManager.translate(x, (y + height + 4 + value.length() * 3), 0); +// GlStateManager.scale(0.5, 0.5, 1); +// GlStateManager.rotate(-90, 0, 0, 1); +// minecraft.fontRendererObj.drawStringWithShadow("" + (int) amount, 0, 2, 0xffffff); +// GlStateManager.popMatrix(); +// } } - minecraft.getTextureManager().bindTexture(new ResourceLocation(Constants.Mod.MODID, "textures/gui/demonWillBar.png")); - GlStateManager.color(1.0F, 1.0F, 1.0F); - this.drawTexturedModalRect(getXOffset(), getYOffset(), 0, 0, 45, 65); +// minecraft.getTextureManager().bindTexture(new ResourceLocation(Constants.Mod.MODID, "textures/gui/demonWillBar.png")); + minecraft.getTextureManager().bindTexture(new ResourceLocation(Constants.Mod.MODID, "textures/hud/bars.png")); + GlStateManager.color(1.0F, 1.0F, 1.0F, 1f); + this.drawTexturedModalRect(getXOffset() + 10, getYOffset() + 14, 42 * 2, 112 * 2, 60, 20); } @Override diff --git a/src/main/resources/assets/bloodmagic/textures/hud/bars.png b/src/main/resources/assets/bloodmagic/textures/hud/bars.png index a44023e0f52e042cb5952ca49d2e4fc39a9608f8..525a59402c981182e41b8213466873b5804d37e2 100644 GIT binary patch delta 4388 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 delta 4386 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