public void renderGameOverlay(float f, boolean flag, int i, int j) { ScaledResolution scaledresolution = new ScaledResolution(mc.gameSettings, mc.displayWidth, mc.displayHeight); int k = scaledresolution.getScaledWidth(); int l = scaledresolution.getScaledHeight(); FontRenderer fontrenderer = mc.fontRenderer; mc.entityRenderer.setupOverlayRendering(); GL11.glEnable(3042 /*GL_BLEND*/); if (Minecraft.isFancyGraphicsEnabled()) { renderVignette(mc.thePlayer.getEntityBrightness(f), k, l); } else { GL11.glBlendFunc(770, 771); } ItemStack itemstack = mc.thePlayer.inventory.armorItemInSlot(3); if (mc.gameSettings.thirdPersonView == 0 && itemstack != null && itemstack.itemID == Block.pumpkin.blockID) { renderPumpkinBlur(k, l); } if (!mc.thePlayer.isPotionActive(Potion.confusion)) { float f1 = mc.thePlayer.prevTimeInPortal + (mc.thePlayer.timeInPortal - mc.thePlayer.prevTimeInPortal) * f; if (f1 > 0.0F) { renderPortalOverlay(f1, k, l); } } if (!mc.playerController.func_35643_e()) { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); GL11.glBindTexture(3553 /*GL_TEXTURE_2D*/, mc.renderEngine.getTexture("/gui/gui.png")); InventoryPlayer inventoryplayer = mc.thePlayer.inventory; zLevel = -90F; drawTexturedModalRect(k / 2 - 91, l - 22, 0, 0, 182, 22); drawTexturedModalRect( (k / 2 - 91 - 1) + inventoryplayer.currentItem * 20, l - 22 - 1, 0, 22, 24, 22); GL11.glBindTexture(3553 /*GL_TEXTURE_2D*/, mc.renderEngine.getTexture("/gui/icons.png")); GL11.glEnable(3042 /*GL_BLEND*/); GL11.glBlendFunc(775, 769); drawTexturedModalRect(k / 2 - 7, l / 2 - 7, 0, 0, 16, 16); GL11.glDisable(3042 /*GL_BLEND*/); boolean flag2 = (mc.thePlayer.heartsLife / 3) % 2 == 1; if (mc.thePlayer.heartsLife < 10) { flag2 = false; } int i2 = mc.thePlayer.getEntityHealth(); int j3 = mc.thePlayer.prevHealth; rand.setSeed(updateCounter * 0x4c627); boolean flag4 = false; FoodStats foodstats = mc.thePlayer.getFoodStats(); int i5 = foodstats.getFoodLevel(); int k5 = foodstats.getPrevFoodLevel(); renderBossHealth(); if (mc.playerController.shouldDrawHUD()) { int k6 = k / 2 - 91; int j7 = k / 2 + 91; int l7 = mc.thePlayer.xpBarCap(); if (l7 > 0) { char c = '\266'; int i9 = (int) (mc.thePlayer.currentXP * (float) (c + 1)); int l9 = (l - 32) + 3; drawTexturedModalRect(k6, l9, 0, 64, c, 5); if (i9 > 0) { drawTexturedModalRect(k6, l9, 0, 69, i9, 5); } } int k8 = l - 39; int j9 = k8 - 10; int i10 = mc.thePlayer.getPlayerArmorValue(); int j10 = -1; if (mc.thePlayer.isPotionActive(Potion.regeneration)) { j10 = updateCounter % 25; } for (int l10 = 0; l10 < 10; l10++) { if (i10 > 0) { int k11 = k6 + l10 * 8; if (l10 * 2 + 1 < i10) { drawTexturedModalRect(k11, j9, 34, 9, 9, 9); } if (l10 * 2 + 1 == i10) { drawTexturedModalRect(k11, j9, 25, 9, 9, 9); } if (l10 * 2 + 1 > i10) { drawTexturedModalRect(k11, j9, 16, 9, 9, 9); } } int l11 = 16; if (mc.thePlayer.isPotionActive(Potion.poison)) { l11 += 36; } int k12 = 0; if (flag2) { k12 = 1; } int j13 = k6 + l10 * 8; int k13 = k8; if (i2 <= 4) { k13 += rand.nextInt(2); } if (l10 == j10) { k13 -= 2; } byte byte5 = 0; if (mc.theWorld.getWorldInfo().isHardcoreModeEnabled()) { byte5 = 5; } drawTexturedModalRect(j13, k13, 16 + k12 * 9, 9 * byte5, 9, 9); if (flag2) { if (l10 * 2 + 1 < j3) { drawTexturedModalRect(j13, k13, l11 + 54, 9 * byte5, 9, 9); } if (l10 * 2 + 1 == j3) { drawTexturedModalRect(j13, k13, l11 + 63, 9 * byte5, 9, 9); } } if (l10 * 2 + 1 < i2) { drawTexturedModalRect(j13, k13, l11 + 36, 9 * byte5, 9, 9); } if (l10 * 2 + 1 == i2) { drawTexturedModalRect(j13, k13, l11 + 45, 9 * byte5, 9, 9); } } for (int i11 = 0; i11 < 10; i11++) { int i12 = k8; int l12 = 16; byte byte4 = 0; if (mc.thePlayer.isPotionActive(Potion.hunger)) { l12 += 36; byte4 = 13; } if (mc.thePlayer.getFoodStats().getFoodSaturationLevel() <= 0.0F && updateCounter % (i5 * 3 + 1) == 0) { i12 += rand.nextInt(3) - 1; } if (flag4) { byte4 = 1; } int l13 = j7 - i11 * 8 - 9; drawTexturedModalRect(l13, i12, 16 + byte4 * 9, 27, 9, 9); if (flag4) { if (i11 * 2 + 1 < k5) { drawTexturedModalRect(l13, i12, l12 + 54, 27, 9, 9); } if (i11 * 2 + 1 == k5) { drawTexturedModalRect(l13, i12, l12 + 63, 27, 9, 9); } } if (i11 * 2 + 1 < i5) { drawTexturedModalRect(l13, i12, l12 + 36, 27, 9, 9); } if (i11 * 2 + 1 == i5) { drawTexturedModalRect(l13, i12, l12 + 45, 27, 9, 9); } } if (mc.thePlayer.isInsideOfMaterial(Material.water)) { int j11 = (int) Math.ceil(((double) (mc.thePlayer.getAir() - 2) * 10D) / 300D); int j12 = (int) Math.ceil(((double) mc.thePlayer.getAir() * 10D) / 300D) - j11; for (int i13 = 0; i13 < j11 + j12; i13++) { if (i13 < j11) { drawTexturedModalRect(j7 - i13 * 8 - 9, j9, 16, 18, 9, 9); } else { drawTexturedModalRect(j7 - i13 * 8 - 9, j9, 25, 18, 9, 9); } } } } GL11.glDisable(3042 /*GL_BLEND*/); GL11.glEnable(32826 /*GL_RESCALE_NORMAL_EXT*/); RenderHelper.func_41089_c(); for (int l6 = 0; l6 < 9; l6++) { int k7 = (k / 2 - 90) + l6 * 20 + 2; int i8 = l - 16 - 3; renderInventorySlot(l6, k7, i8, f); } RenderHelper.disableStandardItemLighting(); GL11.glDisable(32826 /*GL_RESCALE_NORMAL_EXT*/); } if (mc.thePlayer.getSleepTimer() > 0) { GL11.glDisable(2929 /*GL_DEPTH_TEST*/); GL11.glDisable(3008 /*GL_ALPHA_TEST*/); int i1 = mc.thePlayer.getSleepTimer(); float f3 = (float) i1 / 100F; if (f3 > 1.0F) { f3 = 1.0F - (float) (i1 - 100) / 10F; } int j2 = (int) (220F * f3) << 24 | 0x101020; drawRect(0, 0, k, l, j2); GL11.glEnable(3008 /*GL_ALPHA_TEST*/); GL11.glEnable(2929 /*GL_DEPTH_TEST*/); } if (mc.playerController.func_35642_f() && mc.thePlayer.playerLevel > 0) { boolean flag1 = false; int j1 = flag1 ? 0xffffff : 0x80ff20; String s = (new StringBuilder()).append("").append(mc.thePlayer.playerLevel).toString(); int k3 = (k - fontrenderer.getStringWidth(s)) / 2; int l3 = l - 31 - 4; fontrenderer.drawString(s, k3 + 1, l3, 0); fontrenderer.drawString(s, k3 - 1, l3, 0); fontrenderer.drawString(s, k3, l3 + 1, 0); fontrenderer.drawString(s, k3, l3 - 1, 0); fontrenderer.drawString(s, k3, l3, j1); } if (mc.gameSettings.showDebugInfo) { GL11.glPushMatrix(); if (Minecraft.hasPaidCheckTime > 0L) { GL11.glTranslatef(0.0F, 32F, 0.0F); } fontrenderer.drawStringWithShadow( (new StringBuilder()).append("Minecraft 1.0.0 (").append(mc.debug).append(")").toString(), 2, 2, 0xffffff); fontrenderer.drawStringWithShadow(mc.debugInfoRenders(), 2, 12, 0xffffff); fontrenderer.drawStringWithShadow(mc.func_6262_n(), 2, 22, 0xffffff); fontrenderer.drawStringWithShadow(mc.debugInfoEntities(), 2, 32, 0xffffff); fontrenderer.drawStringWithShadow(mc.func_21002_o(), 2, 42, 0xffffff); long l1 = Runtime.getRuntime().maxMemory(); long l2 = Runtime.getRuntime().totalMemory(); long l4 = Runtime.getRuntime().freeMemory(); long l5 = l2 - l4; String s1 = (new StringBuilder()) .append("Used memory: ") .append((l5 * 100L) / l1) .append("% (") .append(l5 / 1024L / 1024L) .append("MB) of ") .append(l1 / 1024L / 1024L) .append("MB") .toString(); drawString(fontrenderer, s1, k - fontrenderer.getStringWidth(s1) - 2, 2, 0xe0e0e0); s1 = (new StringBuilder()) .append("Allocated memory: ") .append((l2 * 100L) / l1) .append("% (") .append(l2 / 1024L / 1024L) .append("MB)") .toString(); drawString(fontrenderer, s1, k - fontrenderer.getStringWidth(s1) - 2, 12, 0xe0e0e0); drawString( fontrenderer, (new StringBuilder()).append("x: ").append(mc.thePlayer.posX).toString(), 2, 64, 0xe0e0e0); drawString( fontrenderer, (new StringBuilder()).append("y: ").append(mc.thePlayer.posY).toString(), 2, 72, 0xe0e0e0); drawString( fontrenderer, (new StringBuilder()).append("z: ").append(mc.thePlayer.posZ).toString(), 2, 80, 0xe0e0e0); drawString( fontrenderer, (new StringBuilder()) .append("f: ") .append( MathHelper.floor_double((double) ((mc.thePlayer.rotationYaw * 4F) / 360F) + 0.5D) & 3) .toString(), 2, 88, 0xe0e0e0); drawString( fontrenderer, (new StringBuilder()).append("Seed: ").append(mc.theWorld.getWorldSeed()).toString(), 2, 104, 0xe0e0e0); GL11.glPopMatrix(); } if (recordPlayingUpFor > 0) { float f2 = (float) recordPlayingUpFor - f; int k1 = (int) ((f2 * 256F) / 20F); if (k1 > 255) { k1 = 255; } if (k1 > 0) { GL11.glPushMatrix(); GL11.glTranslatef(k / 2, l - 48, 0.0F); GL11.glEnable(3042 /*GL_BLEND*/); GL11.glBlendFunc(770, 771); int k2 = 0xffffff; if (recordIsPlaying) { k2 = Color.HSBtoRGB(f2 / 50F, 0.7F, 0.6F) & 0xffffff; } fontrenderer.drawString( recordPlaying, -fontrenderer.getStringWidth(recordPlaying) / 2, -4, k2 + (k1 << 24)); GL11.glDisable(3042 /*GL_BLEND*/); GL11.glPopMatrix(); } } byte byte0 = 10; boolean flag3 = false; if (mc.currentScreen instanceof GuiChat) { byte0 = 20; flag3 = true; } GL11.glEnable(3042 /*GL_BLEND*/); GL11.glBlendFunc(770, 771); GL11.glDisable(3008 /*GL_ALPHA_TEST*/); GL11.glPushMatrix(); GL11.glTranslatef(0.0F, l - 48, 0.0F); for (int i3 = 0; i3 < chatMessageList.size() && i3 < byte0; i3++) { if (((ChatLine) chatMessageList.get(i3)).updateCounter >= 200 && !flag3) { continue; } double d = (double) ((ChatLine) chatMessageList.get(i3)).updateCounter / 200D; d = 1.0D - d; d *= 10D; if (d < 0.0D) { d = 0.0D; } if (d > 1.0D) { d = 1.0D; } d *= d; int j4 = (int) (255D * d); if (flag3) { j4 = 255; } if (j4 > 0) { byte byte1 = 2; int i6 = -i3 * 9; String s2 = ((ChatLine) chatMessageList.get(i3)).message; drawRect(byte1, i6 - 1, byte1 + 320, i6 + 8, j4 / 2 << 24); GL11.glEnable(3042 /*GL_BLEND*/); fontrenderer.drawStringWithShadow(s2, byte1, i6, 0xffffff + (j4 << 24)); } } GL11.glPopMatrix(); if ((mc.thePlayer instanceof EntityClientPlayerMP) && mc.gameSettings.keyBindPlayerList.pressed) { NetClientHandler netclienthandler = ((EntityClientPlayerMP) mc.thePlayer).sendQueue; java.util.List list = netclienthandler.playerNames; int i4 = netclienthandler.currentServerMaxPlayers; int k4 = i4; int j5 = 1; for (; k4 > 20; k4 = ((i4 + j5) - 1) / j5) { j5++; } int j6 = 300 / j5; if (j6 > 150) { j6 = 150; } int i7 = (k - j5 * j6) / 2; byte byte2 = 10; drawRect(i7 - 1, byte2 - 1, i7 + j6 * j5, byte2 + 9 * k4, 0x80000000); for (int j8 = 0; j8 < i4; j8++) { int l8 = i7 + (j8 % j5) * j6; int k9 = byte2 + (j8 / j5) * 9; drawRect(l8, k9, (l8 + j6) - 1, k9 + 8, 0x20ffffff); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); GL11.glEnable(3008 /*GL_ALPHA_TEST*/); if (j8 >= list.size()) { continue; } GuiSavingLevelString guisavinglevelstring = (GuiSavingLevelString) list.get(j8); fontrenderer.drawStringWithShadow(guisavinglevelstring.stringValue, l8, k9, 0xffffff); mc.renderEngine.bindTexture(mc.renderEngine.getTexture("/gui/icons.png")); int k10 = 0; byte byte3 = 0; k10 = 0; byte3 = 0; if (guisavinglevelstring.responseTime < 0) { byte3 = 5; } else if (guisavinglevelstring.responseTime < 150) { byte3 = 0; } else if (guisavinglevelstring.responseTime < 300) { byte3 = 1; } else if (guisavinglevelstring.responseTime < 600) { byte3 = 2; } else if (guisavinglevelstring.responseTime < 1000) { byte3 = 3; } else { byte3 = 4; } zLevel += 100F; drawTexturedModalRect((l8 + j6) - 12, k9, 0 + k10 * 10, 176 + byte3 * 8, 10, 8); zLevel -= 100F; } } GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); GL11.glDisable(2896 /*GL_LIGHTING*/); GL11.glEnable(3008 /*GL_ALPHA_TEST*/); }