From 45485b9367ac5a6009668f687f6b65ceb49371ea Mon Sep 17 00:00:00 2001 From: CrushedPixel Date: Mon, 29 Jun 2015 15:07:16 +0200 Subject: [PATCH] Only displays Crosshair if hovered entity can be spectated | https://trello.com/c/CJBVrB2O/ Fixes background of lowest line of chat being opaque if Crosshair is rendered | https://trello.com/c/66veZRVH/ --- .../events/handlers/CrosshairRenderHandler.java | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/main/java/eu/crushedpixel/replaymod/events/handlers/CrosshairRenderHandler.java b/src/main/java/eu/crushedpixel/replaymod/events/handlers/CrosshairRenderHandler.java index 423231c4..c5f76432 100644 --- a/src/main/java/eu/crushedpixel/replaymod/events/handlers/CrosshairRenderHandler.java +++ b/src/main/java/eu/crushedpixel/replaymod/events/handlers/CrosshairRenderHandler.java @@ -2,6 +2,7 @@ package eu.crushedpixel.replaymod.events.handlers; import eu.crushedpixel.replaymod.replay.ReplayHandler; import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.GlStateManager; import net.minecraft.entity.EntityLiving; import net.minecraft.entity.item.EntityItemFrame; import net.minecraft.entity.player.EntityPlayer; @@ -13,10 +14,20 @@ public class CrosshairRenderHandler { private final Minecraft mc = Minecraft.getMinecraft(); @SubscribeEvent - public void onCrosshairRender(RenderGameOverlayEvent.Pre event) { + public void preCrosshairRender(RenderGameOverlayEvent.Pre event) { //Crosshair should only render if hovered Entity can actually be spectated if(ReplayHandler.isInReplay() && ReplayHandler.isCamera() && event.type == RenderGameOverlayEvent.ElementType.CROSSHAIRS) { - event.setCanceled(!(mc.pointedEntity instanceof EntityPlayer || mc.pointedEntity instanceof EntityLiving || mc.pointedEntity instanceof EntityItemFrame)); + boolean cancel = !(mc.pointedEntity instanceof EntityPlayer || mc.pointedEntity instanceof EntityLiving || mc.pointedEntity instanceof EntityItemFrame); + event.setCanceled(cancel); + } + } + + @SubscribeEvent + public void preChatRender(RenderGameOverlayEvent.Pre event) { + if(ReplayHandler.isInReplay() && ReplayHandler.isCamera() && event.type == RenderGameOverlayEvent.ElementType.CHAT) { + //when a crosshair was displayed, the background of the lowest line of chat would be opaque + GlStateManager.enableTexture2D(); + GlStateManager.disableBlend(); } } }