2018-09-13 12:03:28 -04:00
|
|
|
package noppes.npcs.client;
|
|
|
|
|
|
2022-01-30 04:05:01 -06:00
|
|
|
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
|
2022-05-20 05:02:18 -05:00
|
|
|
import net.minecraft.client.Minecraft;
|
2022-12-31 18:47:13 -06:00
|
|
|
import net.minecraft.client.model.ModelBiped;
|
|
|
|
|
import net.minecraft.client.model.ModelRenderer;
|
2022-06-15 03:48:32 -05:00
|
|
|
import net.minecraft.client.renderer.entity.RenderManager;
|
2022-12-31 18:47:13 -06:00
|
|
|
import net.minecraft.client.renderer.entity.RenderPlayer;
|
2022-06-15 03:48:32 -05:00
|
|
|
import net.minecraft.entity.player.EntityPlayer;
|
2022-12-31 18:47:13 -06:00
|
|
|
import net.minecraftforge.client.event.*;
|
2022-01-30 04:05:01 -06:00
|
|
|
import noppes.npcs.client.gui.customoverlay.OverlayCustom;
|
2022-05-20 05:02:18 -05:00
|
|
|
import noppes.npcs.client.renderer.RenderCNPCPlayer;
|
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;
|
|
|
|
|
|
2022-01-30 04:05:01 -06:00
|
|
|
public class ClientEventHandler {
|
2022-08-31 07:53:35 -05:00
|
|
|
public static final RenderCNPCPlayer renderCNPCPlayer = new RenderCNPCPlayer();
|
2022-06-13 17:21:02 -05:00
|
|
|
public static HashMap<Integer,Long> disabledButtonTimes = new HashMap<>();
|
2022-08-31 07:53:35 -05:00
|
|
|
public static float partialHandTicks;
|
2022-06-13 17:21:02 -05:00
|
|
|
|
2022-12-31 18:47:13 -06:00
|
|
|
public static float partialRenderTick;
|
|
|
|
|
public static EntityPlayer renderingPlayer;
|
|
|
|
|
public static RenderPlayer renderer;
|
|
|
|
|
|
2022-06-13 17:21:02 -05:00
|
|
|
@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);
|
|
|
|
|
}
|
|
|
|
|
}
|
2022-05-20 05:02:18 -05:00
|
|
|
|
2022-01-30 04:05:01 -06:00
|
|
|
@SubscribeEvent
|
2022-01-30 13:29:00 -06:00
|
|
|
public void onOverlayRender(RenderGameOverlayEvent.Post event){
|
|
|
|
|
if(event.type == RenderGameOverlayEvent.ElementType.ALL) {
|
|
|
|
|
for (OverlayCustom overlayCustom : Client.customOverlays.values()) {
|
|
|
|
|
overlayCustom.renderGameOverlay(event.partialTicks);
|
|
|
|
|
}
|
2022-05-27 14:32:24 -05:00
|
|
|
|
|
|
|
|
if (Client.questTrackingOverlay != null) {
|
|
|
|
|
Client.questTrackingOverlay.renderGameOverlay(event.partialTicks);
|
|
|
|
|
}
|
2022-01-30 04:05:01 -06:00
|
|
|
}
|
|
|
|
|
}
|
2022-05-20 05:02:18 -05:00
|
|
|
|
2022-12-31 18:47:13 -06:00
|
|
|
@SubscribeEvent
|
|
|
|
|
public void onRenderPlayer(RenderPlayerEvent.Pre event) {
|
|
|
|
|
ClientEventHandler.renderingPlayer = event.entityPlayer;
|
|
|
|
|
ClientEventHandler.renderer = event.renderer;
|
|
|
|
|
ClientEventHandler.partialRenderTick = event.partialRenderTick;
|
|
|
|
|
}
|
|
|
|
|
|
2022-05-20 05:02:18 -05:00
|
|
|
@SubscribeEvent
|
|
|
|
|
public void onRenderPlayer(RenderPlayerEvent.Post event) {
|
2022-12-31 18:47:13 -06:00
|
|
|
ClientEventHandler.renderingPlayer = null;
|
|
|
|
|
|
2022-07-03 15:06:37 -05:00
|
|
|
if (hasOverlays(event.entityPlayer)) {
|
|
|
|
|
try {
|
|
|
|
|
Class<?> renderPlayerJBRA = Class.forName("JinRyuu.JBRA.RenderPlayerJBRA");
|
|
|
|
|
if (renderPlayerJBRA.isInstance(event.renderer))
|
|
|
|
|
return;
|
2022-07-03 15:16:12 -05:00
|
|
|
} catch (ClassNotFoundException ignored) {}
|
2022-07-03 15:06:37 -05:00
|
|
|
|
|
|
|
|
if (!(event.renderer instanceof RenderCNPCPlayer)) {
|
|
|
|
|
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;
|
|
|
|
|
}
|
2022-06-15 03:48:32 -05:00
|
|
|
|
2022-07-03 15:06:37 -05:00
|
|
|
renderCNPCPlayer.doRender(event.entityPlayer, d0, d1, d2, f1, event.partialRenderTick);
|
|
|
|
|
}
|
2022-05-20 05:02:18 -05:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2022-05-21 20:00:45 -05:00
|
|
|
@SubscribeEvent
|
2022-06-13 00:47:39 -05:00
|
|
|
public void cancelSpecials(RenderPlayerEvent.Specials.Pre event) {
|
|
|
|
|
if (event.renderer instanceof RenderCNPCPlayer) {
|
2022-05-29 19:51:03 -05:00
|
|
|
event.setCanceled(true);
|
2022-06-13 00:47:39 -05:00
|
|
|
}
|
2022-05-29 19:51:03 -05:00
|
|
|
}
|
|
|
|
|
|
2022-07-01 00:42:23 -05:00
|
|
|
@SubscribeEvent
|
|
|
|
|
public void tryRenderDBC(RenderPlayerEvent.Specials.Post event) {
|
2022-07-03 15:06:37 -05:00
|
|
|
if (hasOverlays(event.entityPlayer)) {
|
|
|
|
|
try {
|
|
|
|
|
Class<?> renderPlayerJBRA = Class.forName("JinRyuu.JBRA.RenderPlayerJBRA");
|
|
|
|
|
if (!renderPlayerJBRA.isInstance(event.renderer))
|
|
|
|
|
return;
|
2022-07-03 15:16:12 -05:00
|
|
|
} catch (ClassNotFoundException ignored) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
2022-07-03 15:06:37 -05:00
|
|
|
|
|
|
|
|
renderCNPCPlayer.renderDBCModel(event);
|
|
|
|
|
}
|
2022-07-01 00:42:23 -05:00
|
|
|
}
|
|
|
|
|
|
2022-05-20 05:02:18 -05:00
|
|
|
@SubscribeEvent
|
|
|
|
|
public void onRenderHand(RenderHandEvent event) {
|
2022-08-31 07:53:35 -05:00
|
|
|
partialHandTicks = event.partialTicks;
|
2022-05-20 05:02:18 -05:00
|
|
|
}
|
2022-07-03 15:06:37 -05:00
|
|
|
|
2022-08-31 07:53:35 -05:00
|
|
|
public static boolean hasOverlays(EntityPlayer player) {
|
2022-07-03 15:06:37 -05:00
|
|
|
return Client.skinOverlays.containsKey(player.getUniqueID()) && Client.skinOverlays.get(player.getUniqueID()).values().size() > 0;
|
|
|
|
|
}
|
2018-09-13 12:03:28 -04:00
|
|
|
}
|