@Override public void render(int xScreen, int yScreen, float partialTicks) { if (data == null) data = ExtendedPlayerData.get(player); if (data == null) return; if (data.player != player) { data = ExtendedPlayerData.get(player); } if (data == null) return; FontRenderer fr = TessUtil.getFontRenderer(); if (UtilM.isNull(player, fr)) return; if (handAlpha > 0 && UtilM.isItemInStack(MItems.theHand, player.getCurrentEquippedItem())) { float HandAlpha = PartialTicksUtil.calculatePos(lastHandAlpha, handAlpha); int slot = player.inventory.currentItem; OpenGLM.pushMatrix(); int posId = 0; for (int b = 0; b < HandPosition.values().length; b++) { if (HandPosition.values()[b].equals(TheHandHandler.getActivePosition(player))) { posId = b; continue; } } int a1 = -1, a2 = -1, a3 = -1; if (posId == 1) { a1 = posId - 1; a2 = posId; a3 = posId + 1; } else if (posId == 0) { a1 = 2; a2 = posId; a3 = posId + 1; } else { a1 = 1; a2 = posId; a3 = 0; } String up = "string " + a1, now = "string " + a2, down = "string " + a3; GL11U.setUpOpaqueRendering(1); OpenGLM.translate(slot * 20 + xScreen / 2 - 95, yScreen - 38, 0); OpenGLM.translate(0, -HandAlpha * 20 + 20, 0); OpenGLM.translate(13, 0, 0); OpenGLM.scale(HandAlpha, HandAlpha, HandAlpha); OpenGLM.rotate(HandAlpha * 90 - 90, 0, 0, 1); OpenGLM.translate(-13, 0, 0); OpenGLM.translate(-10 + HandAlpha * 10, 0, 0); fr.drawStringWithShadow(up, 0, -9, Color.WHITE.hashCode()); OpenGLM.translate(10 - HandAlpha * 10, 0, 0); fr.drawStringWithShadow(now, 0, 0, Color.WHITE.hashCode()); OpenGLM.translate(10 - HandAlpha * 10, 0, 0); fr.drawStringWithShadow(down, 0, 9, Color.WHITE.hashCode()); GL11U.endOpaqueRendering(); OpenGLM.popMatrix(); } }