mirror of
https://github.com/KAMKEEL/CustomNPC-Plus.git
synced 2026-11-12 07:17:27 +00:00
Implemented player skin overlays to be compatible with other mods' custom player renderers (Renders on top using events instead of registering a new renderer).
This commit is contained in:
1 parent
b9266c3cc5
commit
7bd0155dbf
4 files changed
+835
-43
No files matched your search
@@ -1,12 +1,19 @@
|
||||
package noppes.npcs.client;
|
||||
|
||||
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
|
||||
import net.minecraft.client.renderer.OpenGlHelper;
|
||||
import cpw.mods.fml.common.gameevent.TickEvent;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.renderer.entity.RenderManager;
|
||||
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;
|
||||
|
||||
public class ClientEventHandler {
|
||||
RenderCNPCPlayer renderCNPCPlayer = new RenderCNPCPlayer();
|
||||
|
||||
@SubscribeEvent
|
||||
public void onOverlayRender(RenderGameOverlayEvent.Post event){
|
||||
if(event.type == RenderGameOverlayEvent.ElementType.ALL) {
|
||||
@@ -15,4 +22,33 @@ public class ClientEventHandler {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public void onRenderPlayer(RenderPlayerEvent.Post event) {
|
||||
if (!(event.renderer instanceof RenderCNPCPlayer)) {
|
||||
renderCNPCPlayer.doRender(event.entityPlayer, 0, 0, 0, 0.0F, event.partialRenderTick);
|
||||
}
|
||||
}
|
||||
|
||||
@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);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user