Files
CustomNPC-Plus/src/main/java/noppes/npcs/client/ClientEventHandler.java
T

106 lines
4.4 KiB
Java
Raw Normal View History

2018-09-13 12:03:28 -04:00
package noppes.npcs.client;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import cpw.mods.fml.common.gameevent.TickEvent;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.entity.RenderManager;
import net.minecraft.entity.player.EntityPlayer;
2022-06-13 17:21:02 -05:00
import net.minecraftforge.client.event.MouseEvent;
import net.minecraftforge.client.event.RenderGameOverlayEvent;
import net.minecraftforge.client.event.RenderHandEvent;
import net.minecraftforge.client.event.RenderPlayerEvent;
import noppes.npcs.client.gui.customoverlay.OverlayCustom;
import noppes.npcs.client.renderer.RenderCNPCPlayer;
import org.lwjgl.opengl.GL11;
2018-09-13 12:03:28 -04:00
2022-06-13 17:21:02 -05:00
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
public class ClientEventHandler {
2022-06-13 17:21:02 -05:00
private final RenderCNPCPlayer renderCNPCPlayer = new RenderCNPCPlayer();
public static HashMap<Integer,Long> disabledButtonTimes = new HashMap<>();
@SubscribeEvent
public void onMouse(MouseEvent event) {
if (Minecraft.getMinecraft().currentScreen != null)
return;
ArrayList<Integer> removeList = new ArrayList<>();
for (Map.Entry<Integer,Long> entry : disabledButtonTimes.entrySet()) {
if (entry.getValue() > 0) {
if (entry.getKey() == event.button || entry.getKey() == -1) {
event.setCanceled(true);
}
disabledButtonTimes.put(entry.getKey(), entry.getValue() - 1);
} else {
removeList.add(entry.getKey());
}
}
for (int i : removeList) {
disabledButtonTimes.remove(i);
}
}
@SubscribeEvent
public void onOverlayRender(RenderGameOverlayEvent.Post event){
if(event.type == RenderGameOverlayEvent.ElementType.ALL) {
for (OverlayCustom overlayCustom : Client.customOverlays.values()) {
overlayCustom.renderGameOverlay(event.partialTicks);
}
if (Client.questTrackingOverlay != null) {
Client.questTrackingOverlay.renderGameOverlay(event.partialTicks);
}
}
}
@SubscribeEvent
public void onRenderPlayer(RenderPlayerEvent.Post event) {
if (!(event.renderer instanceof RenderCNPCPlayer)) {
2022-05-21 20:00:45 -05:00
renderCNPCPlayer.tempRenderPartialTicks = event.partialRenderTick;
double d0 = event.entityPlayer.lastTickPosX + (event.entityPlayer.posX - event.entityPlayer.lastTickPosX) * (double)event.partialRenderTick - RenderManager.renderPosX;
double d1 = event.entityPlayer.lastTickPosY + (event.entityPlayer.posY - event.entityPlayer.lastTickPosY) * (double)event.partialRenderTick - RenderManager.renderPosY;
double d2 = event.entityPlayer.lastTickPosZ + (event.entityPlayer.posZ - event.entityPlayer.lastTickPosZ) * (double)event.partialRenderTick - RenderManager.renderPosZ;
float f1 = event.entityPlayer.prevRotationYaw + (event.entityPlayer.rotationYaw - event.entityPlayer.prevRotationYaw) * event.partialRenderTick;
if (Minecraft.getMinecraft().thePlayer.equals(event.entityPlayer)) {
d0 = 0;
d1 = 0;
d2 = 0;
}
renderCNPCPlayer.doRender(event.entityPlayer, d0, d1, d2, f1, event.partialRenderTick);
}
}
2022-05-21 20:00:45 -05:00
@SubscribeEvent
public void cancelSpecials(RenderPlayerEvent.Specials.Pre event) {
if (event.renderer instanceof RenderCNPCPlayer) {
event.setCanceled(true);
}
}
@SubscribeEvent
public void onClientTick(TickEvent.ClientTickEvent event) {
Minecraft mc = Minecraft.getMinecraft();
if (mc.thePlayer != null && mc.theWorld != null && !mc.isGamePaused() && event.phase == TickEvent.Phase.END) {
renderCNPCPlayer.itemRenderer.updateEquippedItem();
renderCNPCPlayer.updateFovModifierHand();
}
}
@SubscribeEvent
public void onRenderHand(RenderHandEvent event) {
if (Client.skinOverlays.containsKey(Minecraft.getMinecraft().thePlayer.getUniqueID()) && Client.skinOverlays.get(Minecraft.getMinecraft().thePlayer.getUniqueID()).values().size() > 0) {
GL11.glPushMatrix();
event.setCanceled(true);
GL11.glClear(GL11.GL_DEPTH_BUFFER_BIT);
renderCNPCPlayer.renderHand(event.partialTicks, event.renderPass);
GL11.glPopMatrix();
} else {
event.setCanceled(false);
}
}
2018-09-13 12:03:28 -04:00
}