diff --git a/src/main/java/noppes/npcs/client/ClientEventHandler.java b/src/main/java/noppes/npcs/client/ClientEventHandler.java index 12a67c0d0..0139e0c8a 100644 --- a/src/main/java/noppes/npcs/client/ClientEventHandler.java +++ b/src/main/java/noppes/npcs/client/ClientEventHandler.java @@ -1,9 +1,11 @@ package noppes.npcs.client; import cpw.mods.fml.common.FMLCommonHandler; +import cpw.mods.fml.common.eventhandler.EventPriority; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.relauncher.Side; import net.minecraft.client.Minecraft; +import net.minecraft.client.entity.AbstractClientPlayer; import net.minecraft.client.model.ModelBase; import net.minecraft.client.model.ModelBiped; import net.minecraft.client.model.ModelRenderer; @@ -11,10 +13,7 @@ import net.minecraft.client.renderer.entity.RenderManager; import net.minecraft.client.renderer.entity.RendererLivingEntity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.event.MouseEvent; -import net.minecraftforge.client.event.RenderGameOverlayEvent; -import net.minecraftforge.client.event.RenderLivingEvent; -import net.minecraftforge.client.event.RenderPlayerEvent; +import net.minecraftforge.client.event.*; import net.minecraftforge.event.entity.living.LivingEvent; import noppes.npcs.client.gui.customoverlay.OverlayCustom; import noppes.npcs.client.renderer.MarkRenderer; @@ -30,6 +29,7 @@ import java.util.HashMap; import java.util.Map; public class ClientEventHandler { + public static final RenderCNPCPlayer renderCNPCSelf = new RenderCNPCPlayer(); public static final RenderCNPCPlayer renderCNPCPlayer = new RenderCNPCPlayer(); public static HashMap disabledButtonTimes = new HashMap<>(); public static float partialHandTicks; @@ -163,6 +163,16 @@ public class ClientEventHandler { ClientEventHandler.renderingPlayer = event.entityPlayer; } + @SubscribeEvent(priority= EventPriority.LOWEST) + public void pre(RenderPlayerEvent.Pre event){ + if(!(event.entity instanceof AbstractClientPlayer)) + return; + + renderCNPCPlayer.modelBipedMain = event.renderer.modelBipedMain; + renderCNPCPlayer.modelArmor = event.renderer.modelArmor; + renderCNPCPlayer.modelArmorChestplate = event.renderer.modelArmorChestplate; + } + @SubscribeEvent public void onRenderPlayer(RenderPlayerEvent.Post event) { EntityPlayer player = event.entityPlayer; diff --git a/src/main/java/noppes/npcs/client/renderer/RenderCNPCHand.java b/src/main/java/noppes/npcs/client/renderer/RenderCNPCHand.java index e28f32c26..d4d4cdb1b 100644 --- a/src/main/java/noppes/npcs/client/renderer/RenderCNPCHand.java +++ b/src/main/java/noppes/npcs/client/renderer/RenderCNPCHand.java @@ -6,11 +6,16 @@ import net.minecraft.client.entity.EntityPlayerSP; import net.minecraft.client.renderer.ItemRenderer; import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.RenderHelper; +import net.minecraft.client.renderer.entity.Render; +import net.minecraft.client.renderer.entity.RenderManager; +import net.minecraft.client.renderer.entity.RenderPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.MathHelper; import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL12; +import static noppes.npcs.client.ClientEventHandler.renderCNPCSelf; + public class RenderCNPCHand extends ItemRenderer { /** A reference to the Minecraft object. */ private Minecraft mc; @@ -45,8 +50,6 @@ public class RenderCNPCHand extends ItemRenderer { GL11.glRotatef((entityclientplayermp.rotationYaw - f4) * 0.1F, 0.0F, 1.0F, 0.0F); ItemStack itemstack = this.itemToRender; - RenderCNPCPlayer renderCNPCPlayer = new RenderCNPCPlayer(); - int i = this.mc.theWorld.getLightBrightnessForSkyBlocks(MathHelper.floor_double(entityclientplayermp.posX), MathHelper.floor_double(entityclientplayermp.posY), MathHelper.floor_double(entityclientplayermp.posZ), 0); int j = i % 65536; int k = i / 65536; @@ -58,6 +61,8 @@ public class RenderCNPCHand extends ItemRenderer { float f10; float f13; + Render render; + RenderPlayer renderplayer; if (itemstack == null && !entityclientplayermp.isInvisible()) { @@ -84,7 +89,12 @@ public class RenderCNPCHand extends ItemRenderer { f10 = 1.0F; GL11.glScalef(f10, f10, f10); - renderCNPCPlayer.renderFirstPersonArmOverlay(this.mc.thePlayer); + render = RenderManager.instance.getEntityRenderObject(this.mc.thePlayer); + renderplayer = (RenderPlayer) render; + renderCNPCSelf.modelBipedMain = renderplayer.modelBipedMain; + renderCNPCSelf.modelArmor = renderplayer.modelArmor; + renderCNPCSelf.modelArmorChestplate = renderplayer.modelArmorChestplate; + renderCNPCSelf.renderFirstPersonArmOverlay(this.mc.thePlayer); GL11.glPopMatrix(); }