From a101d7a3114684d40b020846fe46660764e7ae00 Mon Sep 17 00:00:00 2001 From: CrushedPixel Date: Mon, 29 Jun 2015 14:31:44 +0200 Subject: [PATCH] Only render Crosshair if hovered Entity can be spectated | https://trello.com/c/CJBVrB2O/ --- .../eu/crushedpixel/replaymod/ReplayMod.java | 5 +++++ .../handlers/CrosshairRenderHandler.java | 22 +++++++++++++++++++ 2 files changed, 27 insertions(+) create mode 100644 src/main/java/eu/crushedpixel/replaymod/events/handlers/CrosshairRenderHandler.java diff --git a/src/main/java/eu/crushedpixel/replaymod/ReplayMod.java b/src/main/java/eu/crushedpixel/replaymod/ReplayMod.java index 09a5dc80..43784a49 100755 --- a/src/main/java/eu/crushedpixel/replaymod/ReplayMod.java +++ b/src/main/java/eu/crushedpixel/replaymod/ReplayMod.java @@ -75,6 +75,7 @@ public class ReplayMod { public static TooltipRenderer tooltipRenderer; public static PathPreviewRenderer pathPreviewRenderer; public static SoundHandler soundHandler = new SoundHandler(); + public static CrosshairRenderHandler crosshairRenderHandler; // The instance of your mod that Forge uses. @Instance(value = "ReplayModID") @@ -133,6 +134,10 @@ public class ReplayMod { FMLCommonHandler.instance().bus().register(pathPreviewRenderer); MinecraftForge.EVENT_BUS.register(pathPreviewRenderer); + crosshairRenderHandler = new CrosshairRenderHandler(); + FMLCommonHandler.instance().bus().register(crosshairRenderHandler); + MinecraftForge.EVENT_BUS.register(crosshairRenderHandler); + KeybindRegistry.initialize(); try { diff --git a/src/main/java/eu/crushedpixel/replaymod/events/handlers/CrosshairRenderHandler.java b/src/main/java/eu/crushedpixel/replaymod/events/handlers/CrosshairRenderHandler.java new file mode 100644 index 00000000..423231c4 --- /dev/null +++ b/src/main/java/eu/crushedpixel/replaymod/events/handlers/CrosshairRenderHandler.java @@ -0,0 +1,22 @@ +package eu.crushedpixel.replaymod.events.handlers; + +import eu.crushedpixel.replaymod.replay.ReplayHandler; +import net.minecraft.client.Minecraft; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.item.EntityItemFrame; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraftforge.client.event.RenderGameOverlayEvent; +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; + +public class CrosshairRenderHandler { + + private final Minecraft mc = Minecraft.getMinecraft(); + + @SubscribeEvent + public void onCrosshairRender(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)); + } + } +}