Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @SubscribeEvent
- public static void renderChatIndicator(RenderPlayerEvent.Post event) {
- EntityPlayer player = (EntityPlayer) event.getEntity();
- RenderManager renderManager = Minecraft.getMinecraft().getRenderManager();
- if (player.isInvisible()) return;
- IChatIndicator chatIndicatorCapability = player.getCapability(CapabilityChatIndicator.CHAT_INDICATOR_CAPABILITY, null);
- if (chatIndicatorCapability != null) {
- int indicatorType = chatIndicatorCapability.get();
- double distance = player.getDistanceSq(renderManager.renderViewEntity);
- if (distance <= INDICATOR_MAX_RANGE && indicatorType != 0) {
- ItemStack itemstack = null;
- switch (indicatorType) {
- case 1: // 1 - BASIC CHAT
- itemstack = new ItemStack(Items.PAPER);
- break;
- case 2: // 2 - ROLEPLAY CHAT
- itemstack = new ItemStack(Items.FEATHER);
- break;
- case 3: // 3 - COMMAND CHAT
- itemstack = new ItemStack(Items.ENCHANTED_BOOK);
- break;
- default:
- break;
- }
- if (itemstack != null) {
- GlStateManager.pushMatrix();
- {
- double height = event.getY() + player.height + 0.40D - (player.isSneaking() ? 0.15D : 0.0D);
- float viewerPitch = (renderManager.options.thirdPersonView == 2 ? -1 : 1) * renderManager.playerViewX;
- GlStateManager.translate((float) event.getX(), (float) height, (float) event.getZ());
- GlStateManager.glNormal3f(0.0F, 1.0F, 0.0F);
- GlStateManager.rotate(-renderManager.playerViewY, 0.0F, 1.0F + event.getPartialRenderTick(), 0.0F);
- GlStateManager.rotate(viewerPitch, 1.0F + event.getPartialRenderTick(), 0.0F, 0.0F);
- GlStateManager.scale(0.5F, 0.5F, 0.5F);
- GlStateManager.disableLighting();
- Minecraft.getMinecraft().getRenderItem().renderItem(itemstack, ItemCameraTransforms.TransformType.NONE);
- GlStateManager.enableLighting();
- }
- GlStateManager.popMatrix();
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement