Crosshair should only render when targeted entity can be spectated
This commit is contained in:
@@ -8,7 +8,6 @@ import com.replaymod.replay.ReplaySender;
|
|||||||
import com.replaymod.replaystudio.util.I18n;
|
import com.replaymod.replaystudio.util.I18n;
|
||||||
import de.johni0702.minecraft.gui.container.GuiScreen;
|
import de.johni0702.minecraft.gui.container.GuiScreen;
|
||||||
import eu.crushedpixel.replaymod.chat.ChatMessageHandler;
|
import eu.crushedpixel.replaymod.chat.ChatMessageHandler;
|
||||||
import eu.crushedpixel.replaymod.events.handlers.CrosshairRenderHandler;
|
|
||||||
import eu.crushedpixel.replaymod.events.handlers.MouseInputHandler;
|
import eu.crushedpixel.replaymod.events.handlers.MouseInputHandler;
|
||||||
import eu.crushedpixel.replaymod.events.handlers.TickAndRenderListener;
|
import eu.crushedpixel.replaymod.events.handlers.TickAndRenderListener;
|
||||||
import eu.crushedpixel.replaymod.events.handlers.keyboard.KeyInputHandler;
|
import eu.crushedpixel.replaymod.events.handlers.keyboard.KeyInputHandler;
|
||||||
@@ -104,8 +103,6 @@ public class ReplayMod {
|
|||||||
public static CustomObjectRenderer customObjectRenderer;
|
public static CustomObjectRenderer customObjectRenderer;
|
||||||
@Deprecated
|
@Deprecated
|
||||||
public static SoundHandler soundHandler = new SoundHandler();
|
public static SoundHandler soundHandler = new SoundHandler();
|
||||||
@Deprecated
|
|
||||||
public static CrosshairRenderHandler crosshairRenderHandler;
|
|
||||||
|
|
||||||
private final KeyBindingRegistry keyBindingRegistry = new KeyBindingRegistry();
|
private final KeyBindingRegistry keyBindingRegistry = new KeyBindingRegistry();
|
||||||
private final SettingsRegistry settingsRegistry = new SettingsRegistry();
|
private final SettingsRegistry settingsRegistry = new SettingsRegistry();
|
||||||
@@ -175,10 +172,6 @@ public class ReplayMod {
|
|||||||
FMLCommonHandler.instance().bus().register(customObjectRenderer);
|
FMLCommonHandler.instance().bus().register(customObjectRenderer);
|
||||||
MinecraftForge.EVENT_BUS.register(customObjectRenderer);
|
MinecraftForge.EVENT_BUS.register(customObjectRenderer);
|
||||||
|
|
||||||
crosshairRenderHandler = new CrosshairRenderHandler();
|
|
||||||
FMLCommonHandler.instance().bus().register(crosshairRenderHandler);
|
|
||||||
MinecraftForge.EVENT_BUS.register(crosshairRenderHandler);
|
|
||||||
|
|
||||||
KeybindRegistry.initialize();
|
KeybindRegistry.initialize();
|
||||||
|
|
||||||
tooltipRenderer = new TooltipRenderer();
|
tooltipRenderer = new TooltipRenderer();
|
||||||
|
|||||||
@@ -18,6 +18,8 @@ import net.minecraft.stats.StatFileWriter;
|
|||||||
import net.minecraft.util.AxisAlignedBB;
|
import net.minecraft.util.AxisAlignedBB;
|
||||||
import net.minecraft.util.MovingObjectPosition;
|
import net.minecraft.util.MovingObjectPosition;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
|
import net.minecraftforge.client.event.RenderGameOverlayEvent;
|
||||||
|
import net.minecraftforge.common.MinecraftForge;
|
||||||
import net.minecraftforge.fml.common.FMLCommonHandler;
|
import net.minecraftforge.fml.common.FMLCommonHandler;
|
||||||
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
|
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
|
||||||
import net.minecraftforge.fml.common.gameevent.TickEvent;
|
import net.minecraftforge.fml.common.gameevent.TickEvent;
|
||||||
@@ -44,6 +46,7 @@ public class CameraEntity extends EntityPlayerSP {
|
|||||||
public CameraEntity(Minecraft mcIn, World worldIn, NetHandlerPlayClient netHandlerPlayClient, StatFileWriter statFileWriter) {
|
public CameraEntity(Minecraft mcIn, World worldIn, NetHandlerPlayClient netHandlerPlayClient, StatFileWriter statFileWriter) {
|
||||||
super(mcIn, worldIn, netHandlerPlayClient, statFileWriter);
|
super(mcIn, worldIn, netHandlerPlayClient, statFileWriter);
|
||||||
FMLCommonHandler.instance().bus().register(this);
|
FMLCommonHandler.instance().bus().register(this);
|
||||||
|
MinecraftForge.EVENT_BUS.register(this);
|
||||||
cameraController = ReplayModReplay.instance.createCameraController(this);
|
cameraController = ReplayModReplay.instance.createCameraController(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -208,6 +211,7 @@ public class CameraEntity extends EntityPlayerSP {
|
|||||||
public void setDead() {
|
public void setDead() {
|
||||||
super.setDead();
|
super.setDead();
|
||||||
FMLCommonHandler.instance().bus().unregister(this);
|
FMLCommonHandler.instance().bus().unregister(this);
|
||||||
|
MinecraftForge.EVENT_BUS.unregister(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
@@ -228,6 +232,14 @@ public class CameraEntity extends EntityPlayerSP {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SubscribeEvent
|
||||||
|
public void preCrosshairRender(RenderGameOverlayEvent.Pre event) {
|
||||||
|
// The crosshair should only render if targeted entity can actually be spectated
|
||||||
|
if (event.type == RenderGameOverlayEvent.ElementType.CROSSHAIRS) {
|
||||||
|
event.setCanceled(!canSpectate(mc.pointedEntity));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public boolean canSpectate(Entity e) {
|
public boolean canSpectate(Entity e) {
|
||||||
return e != null && !e.isInvisible()
|
return e != null && !e.isInvisible()
|
||||||
&& (e instanceof EntityPlayer || e instanceof EntityLiving || e instanceof EntityItemFrame);
|
&& (e instanceof EntityPlayer || e instanceof EntityLiving || e instanceof EntityItemFrame);
|
||||||
|
|||||||
@@ -1,30 +0,0 @@
|
|||||||
package eu.crushedpixel.replaymod.events.handlers;
|
|
||||||
|
|
||||||
import net.minecraft.client.Minecraft;
|
|
||||||
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 preCrosshairRender(RenderGameOverlayEvent.Pre event) {
|
|
||||||
//Crosshair should only render if hovered Entity can actually be spectated
|
|
||||||
// TODO
|
|
||||||
// if(ReplayHandler.isInReplay() && ReplayHandler.isCameraView() && event.type == RenderGameOverlayEvent.ElementType.CROSSHAIRS) {
|
|
||||||
// boolean cancel = !SpectatingHandler.canSpectate(mc.pointedEntity);
|
|
||||||
// event.setCanceled(cancel);
|
|
||||||
// }
|
|
||||||
}
|
|
||||||
|
|
||||||
@SubscribeEvent
|
|
||||||
public void preChatRender(RenderGameOverlayEvent.Pre event) {
|
|
||||||
// TODO
|
|
||||||
// if(ReplayHandler.isInReplay() && ReplayHandler.isCameraView() && 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();
|
|
||||||
// }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user