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 cpw.mods.fml.common.gameevent.TickEvent;
|
|
|
|
|
import net.minecraft.client.Minecraft;
|
2022-05-29 19:51:03 -05:00
|
|
|
import net.minecraft.item.ItemArmor;
|
2022-01-30 04:05:01 -06:00
|
|
|
import net.minecraftforge.client.event.RenderGameOverlayEvent;
|
2022-05-20 05:02:18 -05:00
|
|
|
import net.minecraftforge.client.event.RenderHandEvent;
|
|
|
|
|
import net.minecraftforge.client.event.RenderPlayerEvent;
|
2022-05-27 14:32:24 -05:00
|
|
|
import noppes.npcs.client.gui.OverlayQuestTracking;
|
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;
|
2022-01-30 13:29:00 -06:00
|
|
|
import org.lwjgl.opengl.GL11;
|
2018-09-13 12:03:28 -04:00
|
|
|
|
2022-01-30 04:05:01 -06:00
|
|
|
public class ClientEventHandler {
|
2022-05-20 05:02:18 -05:00
|
|
|
RenderCNPCPlayer renderCNPCPlayer = new RenderCNPCPlayer();
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
@SubscribeEvent
|
|
|
|
|
public void onRenderPlayer(RenderPlayerEvent.Post event) {
|
|
|
|
|
if (!(event.renderer instanceof RenderCNPCPlayer)) {
|
2022-05-21 20:00:45 -05:00
|
|
|
renderCNPCPlayer.tempRenderPartialTicks = event.partialRenderTick;
|
2022-05-20 05:02:18 -05:00
|
|
|
renderCNPCPlayer.doRender(event.entityPlayer, 0, 0, 0, 0.0F, 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);
|
|
|
|
|
}
|
|
|
|
|
|
2022-05-29 19:51:03 -05:00
|
|
|
@SubscribeEvent
|
|
|
|
|
public void cancelSpecials(RenderPlayerEvent.SetArmorModel event) {
|
|
|
|
|
if (event.renderer instanceof RenderCNPCPlayer && event.stack.getItem() instanceof ItemArmor)
|
|
|
|
|
event.setCanceled(true);
|
|
|
|
|
}
|
|
|
|
|
|
2022-05-20 05:02:18 -05:00
|
|
|
@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
|
|
|
}
|