Advertisement
Guest User

Guiingame.java

a guest
Jun 21st, 2013
178
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 35.75 KB | None | 0 0
  1. package net.minecraft.src;
  2.  
  3. import java.awt.Color;
  4. import java.util.Collection;
  5. import java.util.Iterator;
  6. import java.util.List;
  7. import java.util.Random;
  8. import net.minecraft.client.Minecraft;
  9. import org.lwjgl.opengl.GL11;
  10. import org.lwjgl.opengl.GL12;
  11.  
  12. public class GuiIngame extends Gui
  13. {
  14. private static final RenderItem itemRenderer = new RenderItem();
  15. private final Random rand = new Random();
  16. private final Minecraft mc;
  17. private String DisplayName = "";
  18. private int DisplayNameTimer = 0;
  19. private boolean isDisplay = false;
  20. /** ChatGUI instance that retains all previous chat data */
  21. private final GuiNewChat persistantChatGUI;
  22. private int updateCounter = 0;
  23.  
  24. /** The string specifying which record music is playing */
  25. private String recordPlaying = "";
  26.  
  27. /** How many ticks the record playing message will be displayed */
  28. private int recordPlayingUpFor = 0;
  29. private boolean recordIsPlaying = false;
  30.  
  31. /** Previous frame vignette brightness (slowly changes by 1% each frame) */
  32. public float prevVignetteBrightness = 1.0F;
  33.  
  34. /** Remaining ticks the item highlight should be visible */
  35. private int remainingHighlightTicks;
  36.  
  37. /** The ItemStack that is currently being highlighted */
  38. private ItemStack highlightingItemStack;
  39.  
  40. public GuiIngame(Minecraft par1Minecraft)
  41. {
  42. this.mc = par1Minecraft;
  43. this.persistantChatGUI = new GuiNewChat(par1Minecraft);
  44. }
  45.  
  46. /**
  47. * Render the ingame overlay with quick icon bar, ...
  48. */
  49. public void renderGameOverlay(float par1, boolean par2, int par3, int par4)
  50. {
  51.  
  52. ScaledResolution var5 = new ScaledResolution(this.mc.gameSettings, this.mc.displayWidth, this.mc.displayHeight);
  53. int var6 = var5.getScaledWidth();
  54. int var7 = var5.getScaledHeight();
  55. FontRenderer var8 = this.mc.fontRenderer;
  56. this.mc.entityRenderer.setupOverlayRendering();
  57. GL11.glEnable(GL11.GL_BLEND);
  58.  
  59. if (Minecraft.isFancyGraphicsEnabled())
  60. {
  61. this.renderVignette(this.mc.thePlayer.getBrightness(par1), var6, var7);
  62. }
  63. else
  64. {
  65. GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
  66. }
  67.  
  68. ItemStack var9 = this.mc.thePlayer.inventory.armorItemInSlot(3);
  69.  
  70. if (this.mc.gameSettings.thirdPersonView == 0 && var9 != null && var9.itemID == Block.pumpkin.blockID)
  71. {
  72. this.renderPumpkinBlur(var6, var7);
  73. }
  74.  
  75. if (!this.mc.thePlayer.isPotionActive(Potion.confusion))
  76. {
  77. float var10 = this.mc.thePlayer.prevTimeInPortal + (this.mc.thePlayer.timeInPortal - this.mc.thePlayer.prevTimeInPortal) * par1;
  78.  
  79. if (var10 > 0.0F)
  80. {
  81. this.renderPortalOverlay(var10, var6, var7);
  82. }
  83.  
  84. if (this.DisplayNameTimer > 0)
  85. {
  86. this.mc.mcProfiler.startSection("overlayMessage");
  87. float var33 = (float)this.DisplayNameTimer - par1;
  88. int var12 = (int)(var33 * 256.0F / 20.0F);
  89.  
  90. if (var12 > 255)
  91. {
  92. var12 = 255;
  93. }
  94.  
  95. if (var12 > 0)
  96. {
  97. GL11.glPushMatrix();
  98. GL11.glTranslatef((float)(var6 / 2), (float)(var7 - 48), 0.0F);
  99. GL11.glEnable(GL11.GL_BLEND);
  100. GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
  101. int var13 = 16777215;
  102.  
  103.  
  104.  
  105. var8.drawString(this.DisplayName, -var8.getStringWidth(this.DisplayName) / 2, -120, var13 + (var12 << 24));
  106. GL11.glDisable(GL11.GL_BLEND);
  107. GL11.glPopMatrix();
  108. }
  109.  
  110. this.mc.mcProfiler.endSection();
  111. }
  112. }
  113.  
  114. boolean var11;
  115. int var12;
  116. int var13;
  117. int var17;
  118. int var16;
  119. int var18;
  120. int var20;
  121. int var23;
  122. int var22;
  123. int var24;
  124. byte var27;
  125. int var26;
  126. int var47;
  127. int var50;
  128.  
  129. if (!this.mc.playerController.enableEverythingIsScrewedUpMode())
  130. {
  131. GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
  132. this.mc.renderEngine.bindTexture("/gui/gui.png");
  133. InventoryPlayer var31 = this.mc.thePlayer.inventory;
  134. this.zLevel = -90.0F;
  135. this.drawTexturedModalRect(var6 / 2 - 91, var7 - 22, 0, 0, 182, 22);
  136. this.drawTexturedModalRect(var6 / 2 - 91 - 1 + var31.currentItem * 20, var7 - 22 - 1, 0, 22, 24, 22);
  137. this.mc.renderEngine.bindTexture("/gui/icons.png");
  138. GL11.glEnable(GL11.GL_BLEND);
  139. GL11.glBlendFunc(GL11.GL_ONE_MINUS_DST_COLOR, GL11.GL_ONE_MINUS_SRC_COLOR);
  140. this.drawTexturedModalRect(var6 / 2 - 7, var7 / 2 - 7, 0, 0, 16, 16);
  141. GL11.glDisable(GL11.GL_BLEND);
  142. var11 = this.mc.thePlayer.hurtResistantTime / 3 % 2 == 1;
  143.  
  144. if (this.mc.thePlayer.hurtResistantTime < 10)
  145. {
  146. var11 = false;
  147. }
  148.  
  149. var12 = this.mc.thePlayer.getHealth();
  150. var13 = this.mc.thePlayer.prevHealth;
  151. this.rand.setSeed((long)(this.updateCounter * 312871));
  152. boolean var14 = false;
  153. FoodStats var15 = this.mc.thePlayer.getFoodStats();
  154. var16 = var15.getFoodLevel();
  155. var17 = var15.getPrevFoodLevel();
  156. this.mc.mcProfiler.startSection("bossHealth");
  157. this.renderBossHealth();
  158. this.mc.mcProfiler.endSection();
  159. int var19;
  160.  
  161. if (this.mc.playerController.shouldDrawHUD())
  162. {
  163. var18 = var6 / 2 - 91;
  164. var19 = var6 / 2 + 91;
  165. this.mc.mcProfiler.startSection("expBar");
  166. var20 = this.mc.thePlayer.xpBarCap();
  167.  
  168. if (var20 > 0)
  169. {
  170. short var21 = 182;
  171. var22 = (int)(this.mc.thePlayer.experience * (float)(var21 + 1));
  172. var23 = var7 - 32 + 3;
  173. this.drawTexturedModalRect(var18, var23, 0, 64, var21, 5);
  174.  
  175. if (var22 > 0)
  176. {
  177. this.drawTexturedModalRect(var18, var23, 0, 69, var22, 5);
  178. }
  179. }
  180.  
  181. var47 = var7 - 39;
  182. var22 = var47 - 10;
  183. var23 = this.mc.thePlayer.getTotalArmorValue();
  184. var24 = -1;
  185.  
  186. if (this.mc.thePlayer.isPotionActive(Potion.regeneration))
  187. {
  188. var24 = this.updateCounter % 25;
  189. }
  190.  
  191. this.mc.mcProfiler.endStartSection("healthArmor");
  192. int var25;
  193. int var29;
  194. int var28;
  195.  
  196. for (var25 = 0; var25 < 10; ++var25)
  197. {
  198. if (var23 > 0)
  199. {
  200. var26 = var18 + var25 * 8;
  201.  
  202. if (var25 * 2 + 1 < var23)
  203. {
  204. this.drawTexturedModalRect(var26, var22, 34, 9, 9, 9);
  205. }
  206.  
  207. if (var25 * 2 + 1 == var23)
  208. {
  209. this.drawTexturedModalRect(var26, var22, 25, 9, 9, 9);
  210. }
  211.  
  212. if (var25 * 2 + 1 > var23)
  213. {
  214. this.drawTexturedModalRect(var26, var22, 16, 9, 9, 9);
  215. }
  216. }
  217.  
  218. var26 = 16;
  219.  
  220. if (this.mc.thePlayer.isPotionActive(Potion.poison))
  221. {
  222. var26 += 36;
  223. }
  224. else if (this.mc.thePlayer.isPotionActive(Potion.wither))
  225. {
  226. var26 += 72;
  227. }
  228.  
  229. var27 = 0;
  230.  
  231. if (var11)
  232. {
  233. var27 = 1;
  234. }
  235.  
  236. var28 = var18 + var25 * 8;
  237. var29 = var47;
  238.  
  239. if (var12 <= 4)
  240. {
  241. var29 = var47 + this.rand.nextInt(2);
  242. }
  243.  
  244. if (var25 == var24)
  245. {
  246. var29 -= 2;
  247. }
  248.  
  249. byte var30 = 0;
  250.  
  251. if (this.mc.theWorld.getWorldInfo().isHardcoreModeEnabled())
  252. {
  253. var30 = 5;
  254. }
  255.  
  256. this.drawTexturedModalRect(var28, var29, 16 + var27 * 9, 9 * var30, 9, 9);
  257.  
  258. if (var11)
  259. {
  260. if (var25 * 2 + 1 < var13)
  261. {
  262. this.drawTexturedModalRect(var28, var29, var26 + 54, 9 * var30, 9, 9);
  263. }
  264.  
  265. if (var25 * 2 + 1 == var13)
  266. {
  267. this.drawTexturedModalRect(var28, var29, var26 + 63, 9 * var30, 9, 9);
  268. }
  269. }
  270.  
  271. if (var25 * 2 + 1 < var12)
  272. {
  273. this.drawTexturedModalRect(var28, var29, var26 + 36, 9 * var30, 9, 9);
  274. }
  275.  
  276. if (var25 * 2 + 1 == var12)
  277. {
  278. this.drawTexturedModalRect(var28, var29, var26 + 45, 9 * var30, 9, 9);
  279. }
  280. }
  281.  
  282. this.mc.mcProfiler.endStartSection("food");
  283.  
  284. for (var25 = 0; var25 < 10; ++var25)
  285. {
  286. var26 = var47;
  287. var50 = 16;
  288. byte var51 = 0;
  289.  
  290. if (this.mc.thePlayer.isPotionActive(Potion.hunger))
  291. {
  292. var50 += 36;
  293. var51 = 13;
  294. }
  295.  
  296. if (this.mc.thePlayer.getFoodStats().getSaturationLevel() <= 0.0F && this.updateCounter % (var16 * 3 + 1) == 0)
  297. {
  298. var26 = var47 + (this.rand.nextInt(3) - 1);
  299. }
  300.  
  301. if (var14)
  302. {
  303. var51 = 1;
  304. }
  305.  
  306. var29 = var19 - var25 * 8 - 9;
  307. this.drawTexturedModalRect(var29, var26, 16 + var51 * 9, 27, 9, 9);
  308.  
  309. if (var14)
  310. {
  311. if (var25 * 2 + 1 < var17)
  312. {
  313. this.drawTexturedModalRect(var29, var26, var50 + 54, 27, 9, 9);
  314. }
  315.  
  316. if (var25 * 2 + 1 == var17)
  317. {
  318. this.drawTexturedModalRect(var29, var26, var50 + 63, 27, 9, 9);
  319. }
  320. }
  321.  
  322. if (var25 * 2 + 1 < var16)
  323. {
  324. this.drawTexturedModalRect(var29, var26, var50 + 36, 27, 9, 9);
  325. }
  326.  
  327. if (var25 * 2 + 1 == var16)
  328. {
  329. this.drawTexturedModalRect(var29, var26, var50 + 45, 27, 9, 9);
  330. }
  331. }
  332.  
  333. this.mc.mcProfiler.endStartSection("air");
  334.  
  335. if (this.mc.thePlayer.isInsideOfMaterial(Material.water))
  336. {
  337. var25 = this.mc.thePlayer.getAir();
  338. var26 = MathHelper.ceiling_double_int((double)(var25 - 2) * 10.0D / 300.0D);
  339. var50 = MathHelper.ceiling_double_int((double)var25 * 10.0D / 300.0D) - var26;
  340.  
  341. for (var28 = 0; var28 < var26 + var50; ++var28)
  342. {
  343. if (var28 < var26)
  344. {
  345. this.drawTexturedModalRect(var19 - var28 * 8 - 9, var22, 16, 18, 9, 9);
  346. }
  347. else
  348. {
  349. this.drawTexturedModalRect(var19 - var28 * 8 - 9, var22, 25, 18, 9, 9);
  350. }
  351. }
  352. }
  353.  
  354. this.mc.mcProfiler.endSection();
  355. }
  356.  
  357. GL11.glDisable(GL11.GL_BLEND);
  358. this.mc.mcProfiler.startSection("actionBar");
  359. GL11.glEnable(GL12.GL_RESCALE_NORMAL);
  360. RenderHelper.enableGUIStandardItemLighting();
  361.  
  362. for (var18 = 0; var18 < 9; ++var18)
  363. {
  364. var19 = var6 / 2 - 90 + var18 * 20 + 2;
  365. var20 = var7 - 16 - 3;
  366. this.renderInventorySlot(var18, var19, var20, par1);
  367. }
  368.  
  369. RenderHelper.disableStandardItemLighting();
  370. GL11.glDisable(GL12.GL_RESCALE_NORMAL);
  371. this.mc.mcProfiler.endSection();
  372. }
  373.  
  374. float var33;
  375.  
  376. if (this.mc.thePlayer.getSleepTimer() > 0)
  377. {
  378. this.mc.mcProfiler.startSection("sleep");
  379. GL11.glDisable(GL11.GL_DEPTH_TEST);
  380. GL11.glDisable(GL11.GL_ALPHA_TEST);
  381. int var32 = this.mc.thePlayer.getSleepTimer();
  382. var33 = (float)var32 / 100.0F;
  383.  
  384. if (var33 > 1.0F)
  385. {
  386. var33 = 1.0F - (float)(var32 - 100) / 10.0F;
  387. }
  388.  
  389. var12 = (int)(220.0F * var33) << 24 | 1052704;
  390. drawRect(0, 0, var6, var7, var12);
  391. GL11.glEnable(GL11.GL_ALPHA_TEST);
  392. GL11.glEnable(GL11.GL_DEPTH_TEST);
  393. this.mc.mcProfiler.endSection();
  394. }
  395.  
  396. int var38;
  397. int var37;
  398.  
  399. if (this.mc.playerController.func_78763_f() && this.mc.thePlayer.experienceLevel > 0)
  400. {
  401. this.mc.mcProfiler.startSection("expLevel");
  402. var11 = false;
  403. var12 = var11 ? 16777215 : 8453920;
  404. String var34 = "" + this.mc.thePlayer.experienceLevel;
  405. var38 = (var6 - var8.getStringWidth(var34)) / 2;
  406. var37 = var7 - 31 - 4;
  407. var8.drawString(var34, var38 + 1, var37, 0);
  408. var8.drawString(var34, var38 - 1, var37, 0);
  409. var8.drawString(var34, var38, var37 + 1, 0);
  410. var8.drawString(var34, var38, var37 - 1, 0);
  411. var8.drawString(var34, var38, var37, var12);
  412. this.mc.mcProfiler.endSection();
  413. }
  414.  
  415. String var35;
  416.  
  417. if (this.mc.gameSettings.heldItemTooltips)
  418. {
  419. this.mc.mcProfiler.startSection("toolHighlight");
  420.  
  421. if (this.remainingHighlightTicks > 0 && this.highlightingItemStack != null)
  422. {
  423. var35 = this.highlightingItemStack.getDisplayName();
  424. var12 = (var6 - var8.getStringWidth(var35)) / 2;
  425. var13 = var7 - 59;
  426.  
  427. if (!this.mc.playerController.shouldDrawHUD())
  428. {
  429. var13 += 14;
  430. }
  431.  
  432. var38 = (int)((float)this.remainingHighlightTicks * 256.0F / 10.0F);
  433.  
  434. if (var38 > 255)
  435. {
  436. var38 = 255;
  437. }
  438.  
  439. if (var38 > 0)
  440. {
  441. GL11.glPushMatrix();
  442. GL11.glEnable(GL11.GL_BLEND);
  443. GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
  444. var8.drawStringWithShadow(var35, var12, var13, 16777215 + (var38 << 24));
  445. GL11.glDisable(GL11.GL_BLEND);
  446. GL11.glPopMatrix();
  447. }
  448. }
  449.  
  450. this.mc.mcProfiler.endSection();
  451. }
  452.  
  453. if (this.mc.isDemo())
  454. {
  455. this.mc.mcProfiler.startSection("demo");
  456. var35 = "";
  457.  
  458. if (this.mc.theWorld.getTotalWorldTime() >= 120500L)
  459. {
  460. var35 = StatCollector.translateToLocal("demo.demoExpired");
  461. }
  462. else
  463. {
  464. var35 = String.format(StatCollector.translateToLocal("demo.remainingTime"), new Object[] {StringUtils.ticksToElapsedTime((int)(120500L - this.mc.theWorld.getTotalWorldTime()))});
  465. }
  466.  
  467. var12 = var8.getStringWidth(var35);
  468. var8.drawStringWithShadow(var35, var6 - var12 - 10, 5, 16777215);
  469. this.mc.mcProfiler.endSection();
  470. }
  471.  
  472. if (this.mc.gameSettings.showDebugInfo)
  473. {
  474. this.mc.mcProfiler.startSection("debug");
  475. GL11.glPushMatrix();
  476. var8.drawStringWithShadow("Minecraft 1.5.2 (" + this.mc.debug + ")", 2, 2, 16777215);
  477. var8.drawStringWithShadow(this.mc.debugInfoRenders(), 2, 12, 16777215);
  478. var8.drawStringWithShadow(this.mc.getEntityDebug(), 2, 22, 16777215);
  479. var8.drawStringWithShadow(this.mc.debugInfoEntities(), 2, 32, 16777215);
  480. var8.drawStringWithShadow(this.mc.getWorldProviderName(), 2, 42, 16777215);
  481. long var36 = Runtime.getRuntime().maxMemory();
  482. long var40 = Runtime.getRuntime().totalMemory();
  483. long var43 = Runtime.getRuntime().freeMemory();
  484. long var44 = var40 - var43;
  485. String var46 = "Used memory: " + var44 * 100L / var36 + "% (" + var44 / 1024L / 1024L + "MB) of " + var36 / 1024L / 1024L + "MB";
  486. this.drawString(var8, var46, var6 - var8.getStringWidth(var46) - 2, 2, 14737632);
  487. var46 = "Allocated memory: " + var40 * 100L / var36 + "% (" + var40 / 1024L / 1024L + "MB)";
  488. this.drawString(var8, var46, var6 - var8.getStringWidth(var46) - 2, 12, 14737632);
  489. var47 = MathHelper.floor_double(this.mc.thePlayer.posX);
  490. var22 = MathHelper.floor_double(this.mc.thePlayer.posY);
  491. var23 = MathHelper.floor_double(this.mc.thePlayer.posZ);
  492. this.drawString(var8, String.format("x: %.5f (%d) // c: %d (%d)", new Object[] {Double.valueOf(this.mc.thePlayer.posX), Integer.valueOf(var47), Integer.valueOf(var47 >> 4), Integer.valueOf(var47 & 15)}), 2, 64, 14737632);
  493. this.drawString(var8, String.format("y: %.3f (feet pos, %.3f eyes pos)", new Object[] {Double.valueOf(this.mc.thePlayer.boundingBox.minY), Double.valueOf(this.mc.thePlayer.posY)}), 2, 72, 14737632);
  494. this.drawString(var8, String.format("z: %.5f (%d) // c: %d (%d)", new Object[] {Double.valueOf(this.mc.thePlayer.posZ), Integer.valueOf(var23), Integer.valueOf(var23 >> 4), Integer.valueOf(var23 & 15)}), 2, 80, 14737632);
  495. var24 = MathHelper.floor_double((double)(this.mc.thePlayer.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3;
  496. this.drawString(var8, "f: " + var24 + " (" + Direction.directions[var24] + ") / " + MathHelper.wrapAngleTo180_float(this.mc.thePlayer.rotationYaw), 2, 88, 14737632);
  497.  
  498. if (this.mc.theWorld != null && this.mc.theWorld.blockExists(var47, var22, var23))
  499. {
  500. Chunk var52 = this.mc.theWorld.getChunkFromBlockCoords(var47, var23);
  501. this.drawString(var8, "lc: " + (var52.getTopFilledSegment() + 15) + " b: " + var52.getBiomeGenForWorldCoords(var47 & 15, var23 & 15, this.mc.theWorld.getWorldChunkManager()).biomeName + " bl: " + var52.getSavedLightValue(EnumSkyBlock.Block, var47 & 15, var22, var23 & 15) + " sl: " + var52.getSavedLightValue(EnumSkyBlock.Sky, var47 & 15, var22, var23 & 15) + " rl: " + var52.getBlockLightValue(var47 & 15, var22, var23 & 15, 0), 2, 96, 14737632);
  502. }
  503.  
  504. this.drawString(var8, String.format("ws: %.3f, fs: %.3f, g: %b, fl: %d", new Object[] {Float.valueOf(this.mc.thePlayer.capabilities.getWalkSpeed()), Float.valueOf(this.mc.thePlayer.capabilities.getFlySpeed()), Boolean.valueOf(this.mc.thePlayer.onGround), Integer.valueOf(this.mc.theWorld.getHeightValue(var47, var23))}), 2, 104, 14737632);
  505. GL11.glPopMatrix();
  506. this.mc.mcProfiler.endSection();
  507. }
  508.  
  509. if (this.recordPlayingUpFor > 0)
  510. {
  511. this.mc.mcProfiler.startSection("overlayMessage");
  512. var33 = (float)this.recordPlayingUpFor - par1;
  513. var12 = (int)(var33 * 256.0F / 20.0F);
  514.  
  515. if (var12 > 255)
  516. {
  517. var12 = 255;
  518. }
  519.  
  520. if (var12 > 0)
  521. {
  522. GL11.glPushMatrix();
  523. GL11.glTranslatef((float)(var6 / 2), (float)(var7 - 48), 0.0F);
  524. GL11.glEnable(GL11.GL_BLEND);
  525. GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
  526. var13 = 16777215;
  527.  
  528. if (this.recordIsPlaying)
  529. {
  530. var13 = Color.HSBtoRGB(var33 / 50.0F, 0.7F, 0.6F) & 16777215;
  531. }
  532.  
  533. var8.drawString(this.recordPlaying, -var8.getStringWidth(this.recordPlaying) / 2, -4, var13 + (var12 << 24));
  534. GL11.glDisable(GL11.GL_BLEND);
  535. GL11.glPopMatrix();
  536. }
  537.  
  538. this.mc.mcProfiler.endSection();
  539. }
  540.  
  541. ScoreObjective var42 = this.mc.theWorld.getScoreboard().func_96539_a(1);
  542.  
  543. if (var42 != null)
  544. {
  545. this.func_96136_a(var42, var7, var6, var8);
  546. }
  547.  
  548. GL11.glEnable(GL11.GL_BLEND);
  549. GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
  550. GL11.glDisable(GL11.GL_ALPHA_TEST);
  551. GL11.glPushMatrix();
  552. GL11.glTranslatef(0.0F, (float)(var7 - 48), 0.0F);
  553. this.mc.mcProfiler.startSection("chat");
  554. this.persistantChatGUI.drawChat(this.updateCounter);
  555. this.mc.mcProfiler.endSection();
  556. GL11.glPopMatrix();
  557. var42 = this.mc.theWorld.getScoreboard().func_96539_a(0);
  558.  
  559. if (this.mc.gameSettings.keyBindPlayerList.pressed && (!this.mc.isIntegratedServerRunning() || this.mc.thePlayer.sendQueue.playerInfoList.size() > 1 || var42 != null))
  560. {
  561. this.mc.mcProfiler.startSection("playerList");
  562. NetClientHandler var39 = this.mc.thePlayer.sendQueue;
  563. List var41 = var39.playerInfoList;
  564. var38 = var39.currentServerMaxPlayers;
  565. var37 = var38;
  566.  
  567. for (var16 = 1; var37 > 20; var37 = (var38 + var16 - 1) / var16)
  568. {
  569. ++var16;
  570. }
  571.  
  572. var17 = 300 / var16;
  573.  
  574. if (var17 > 150)
  575. {
  576. var17 = 150;
  577. }
  578.  
  579. var18 = (var6 - var16 * var17) / 2;
  580. byte var45 = 10;
  581. drawRect(var18 - 1, var45 - 1, var18 + var17 * var16, var45 + 9 * var37, Integer.MIN_VALUE);
  582.  
  583. for (var20 = 0; var20 < var38; ++var20)
  584. {
  585. var47 = var18 + var20 % var16 * var17;
  586. var22 = var45 + var20 / var16 * 9;
  587. drawRect(var47, var22, var47 + var17 - 1, var22 + 8, 553648127);
  588. GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
  589. GL11.glEnable(GL11.GL_ALPHA_TEST);
  590.  
  591. if (var20 < var41.size())
  592. {
  593. GuiPlayerInfo var49 = (GuiPlayerInfo)var41.get(var20);
  594. ScorePlayerTeam var48 = this.mc.theWorld.getScoreboard().getPlayersTeam(var49.name);
  595. String var53 = ScorePlayerTeam.func_96667_a(var48, var49.name);
  596. var8.drawStringWithShadow(var53, var47, var22, 16777215);
  597.  
  598. if (var42 != null)
  599. {
  600. var26 = var47 + var8.getStringWidth(var53) + 5;
  601. var50 = var47 + var17 - 12 - 5;
  602.  
  603. if (var50 - var26 > 5)
  604. {
  605. Score var56 = var42.getScoreboard().func_96529_a(var49.name, var42);
  606. String var57 = EnumChatFormatting.YELLOW + "" + var56.func_96652_c();
  607. var8.drawStringWithShadow(var57, var50 - var8.getStringWidth(var57), var22, 16777215);
  608. }
  609. }
  610.  
  611. GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
  612. this.mc.renderEngine.bindTexture("/gui/icons.png");
  613. byte var55 = 0;
  614. boolean var54 = false;
  615.  
  616. if (var49.responseTime < 0)
  617. {
  618. var27 = 5;
  619. }
  620. else if (var49.responseTime < 150)
  621. {
  622. var27 = 0;
  623. }
  624. else if (var49.responseTime < 300)
  625. {
  626. var27 = 1;
  627. }
  628. else if (var49.responseTime < 600)
  629. {
  630. var27 = 2;
  631. }
  632. else if (var49.responseTime < 1000)
  633. {
  634. var27 = 3;
  635. }
  636. else
  637. {
  638. var27 = 4;
  639. }
  640.  
  641. this.zLevel += 100.0F;
  642. this.drawTexturedModalRect(var47 + var17 - 12, var22, 0 + var55 * 10, 176 + var27 * 8, 10, 8);
  643. this.zLevel -= 100.0F;
  644. }
  645. }
  646. }
  647.  
  648. GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
  649. GL11.glDisable(GL11.GL_LIGHTING);
  650. GL11.glEnable(GL11.GL_ALPHA_TEST);
  651. }
  652.  
  653. private void func_96136_a(ScoreObjective par1ScoreObjective, int par2, int par3, FontRenderer par4FontRenderer)
  654. {
  655. Scoreboard var5 = par1ScoreObjective.getScoreboard();
  656. Collection var6 = var5.func_96534_i(par1ScoreObjective);
  657.  
  658. if (var6.size() <= 15)
  659. {
  660. int var7 = par4FontRenderer.getStringWidth(par1ScoreObjective.getDisplayName());
  661. String var11;
  662.  
  663. for (Iterator var8 = var6.iterator(); var8.hasNext(); var7 = Math.max(var7, par4FontRenderer.getStringWidth(var11)))
  664. {
  665. Score var9 = (Score)var8.next();
  666. ScorePlayerTeam var10 = var5.getPlayersTeam(var9.func_96653_e());
  667. var11 = ScorePlayerTeam.func_96667_a(var10, var9.func_96653_e()) + ": " + EnumChatFormatting.RED + var9.func_96652_c();
  668. }
  669.  
  670. int var22 = var6.size() * par4FontRenderer.FONT_HEIGHT;
  671. int var23 = par2 / 2 + var22 / 3;
  672. byte var25 = 3;
  673. int var24 = par3 - var7 - var25;
  674. int var12 = 0;
  675. Iterator var13 = var6.iterator();
  676.  
  677. while (var13.hasNext())
  678. {
  679. Score var14 = (Score)var13.next();
  680. ++var12;
  681. ScorePlayerTeam var15 = var5.getPlayersTeam(var14.func_96653_e());
  682. String var16 = ScorePlayerTeam.func_96667_a(var15, var14.func_96653_e());
  683. String var17 = EnumChatFormatting.RED + "" + var14.func_96652_c();
  684. int var19 = var23 - var12 * par4FontRenderer.FONT_HEIGHT;
  685. int var20 = par3 - var25 + 2;
  686. drawRect(var24 - 2, var19, var20, var19 + par4FontRenderer.FONT_HEIGHT, 1342177280);
  687. par4FontRenderer.drawString(var16, var24, var19, 553648127);
  688. par4FontRenderer.drawString(var17, var20 - par4FontRenderer.getStringWidth(var17), var19, 553648127);
  689.  
  690. if (var12 == var6.size())
  691. {
  692. String var21 = par1ScoreObjective.getDisplayName();
  693. drawRect(var24 - 2, var19 - par4FontRenderer.FONT_HEIGHT - 1, var20, var19 - 1, 1610612736);
  694. drawRect(var24 - 2, var19 - 1, var20, var19, 1342177280);
  695. par4FontRenderer.drawString(var21, var24 + var7 / 2 - par4FontRenderer.getStringWidth(var21) / 2, var19 - par4FontRenderer.FONT_HEIGHT, 553648127);
  696. }
  697. }
  698. }
  699. }
  700.  
  701. /**
  702. * Renders dragon's (boss) health on the HUD
  703. */
  704. private void renderBossHealth()
  705. {
  706. if (BossStatus.bossName != null && BossStatus.statusBarLength > 0)
  707. {
  708. --BossStatus.statusBarLength;
  709. FontRenderer var1 = this.mc.fontRenderer;
  710. ScaledResolution var2 = new ScaledResolution(this.mc.gameSettings, this.mc.displayWidth, this.mc.displayHeight);
  711. int var3 = var2.getScaledWidth();
  712. short var4 = 182;
  713. int var5 = var3 / 2 - var4 / 2;
  714. int var6 = (int)(BossStatus.healthScale * (float)(var4 + 1));
  715. byte var7 = 12;
  716. this.drawTexturedModalRect(var5, var7, 0, 74, var4, 5);
  717. this.drawTexturedModalRect(var5, var7, 0, 74, var4, 5);
  718.  
  719. if (var6 > 0)
  720. {
  721. this.drawTexturedModalRect(var5, var7, 0, 79, var6, 5);
  722. }
  723.  
  724. String var8 = BossStatus.bossName;
  725. var1.drawStringWithShadow(var8, var3 / 2 - var1.getStringWidth(var8) / 2, var7 - 10, 16777215);
  726. GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
  727. this.mc.renderEngine.bindTexture("/gui/icons.png");
  728. }
  729. }
  730.  
  731. private void renderPumpkinBlur(int par1, int par2)
  732. {
  733. GL11.glDisable(GL11.GL_DEPTH_TEST);
  734. GL11.glDepthMask(false);
  735. GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
  736. GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
  737. GL11.glDisable(GL11.GL_ALPHA_TEST);
  738. this.mc.renderEngine.bindTexture("%blur%/misc/pumpkinblur.png");
  739. Tessellator var3 = Tessellator.instance;
  740. var3.startDrawingQuads();
  741. var3.addVertexWithUV(0.0D, (double)par2, -90.0D, 0.0D, 1.0D);
  742. var3.addVertexWithUV((double)par1, (double)par2, -90.0D, 1.0D, 1.0D);
  743. var3.addVertexWithUV((double)par1, 0.0D, -90.0D, 1.0D, 0.0D);
  744. var3.addVertexWithUV(0.0D, 0.0D, -90.0D, 0.0D, 0.0D);
  745. var3.draw();
  746. GL11.glDepthMask(true);
  747. GL11.glEnable(GL11.GL_DEPTH_TEST);
  748. GL11.glEnable(GL11.GL_ALPHA_TEST);
  749. GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
  750. }
  751.  
  752. /**
  753. * Renders the vignette. Args: vignetteBrightness, width, height
  754. */
  755. private void renderVignette(float par1, int par2, int par3)
  756. {
  757. par1 = 1.0F - par1;
  758.  
  759. if (par1 < 0.0F)
  760. {
  761. par1 = 0.0F;
  762. }
  763.  
  764. if (par1 > 1.0F)
  765. {
  766. par1 = 1.0F;
  767. }
  768.  
  769. this.prevVignetteBrightness = (float)((double)this.prevVignetteBrightness + (double)(par1 - this.prevVignetteBrightness) * 0.01D);
  770. GL11.glDisable(GL11.GL_DEPTH_TEST);
  771. GL11.glDepthMask(false);
  772. GL11.glBlendFunc(GL11.GL_ZERO, GL11.GL_ONE_MINUS_SRC_COLOR);
  773. GL11.glColor4f(this.prevVignetteBrightness, this.prevVignetteBrightness, this.prevVignetteBrightness, 1.0F);
  774. this.mc.renderEngine.bindTexture("%blur%/misc/vignette.png");
  775. Tessellator var4 = Tessellator.instance;
  776. var4.startDrawingQuads();
  777. var4.addVertexWithUV(0.0D, (double)par3, -90.0D, 0.0D, 1.0D);
  778. var4.addVertexWithUV((double)par2, (double)par3, -90.0D, 1.0D, 1.0D);
  779. var4.addVertexWithUV((double)par2, 0.0D, -90.0D, 1.0D, 0.0D);
  780. var4.addVertexWithUV(0.0D, 0.0D, -90.0D, 0.0D, 0.0D);
  781. var4.draw();
  782. GL11.glDepthMask(true);
  783. GL11.glEnable(GL11.GL_DEPTH_TEST);
  784. GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
  785. GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
  786. }
  787.  
  788. /**
  789. * Renders the portal overlay. Args: portalStrength, width, height
  790. */
  791. private void renderPortalOverlay(float par1, int par2, int par3)
  792. {
  793. if (par1 < 1.0F)
  794. {
  795. par1 *= par1;
  796. par1 *= par1;
  797. par1 = par1 * 0.8F + 0.2F;
  798. }
  799.  
  800. GL11.glDisable(GL11.GL_ALPHA_TEST);
  801. GL11.glDisable(GL11.GL_DEPTH_TEST);
  802. GL11.glDepthMask(false);
  803. GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
  804. GL11.glColor4f(1.0F, 1.0F, 1.0F, par1);
  805. this.mc.renderEngine.bindTexture("/terrain.png");
  806. Icon var4 = Block.portal.getBlockTextureFromSide(1);
  807. float var5 = var4.getMinU();
  808. float var6 = var4.getMinV();
  809. float var7 = var4.getMaxU();
  810. float var8 = var4.getMaxV();
  811. Tessellator var9 = Tessellator.instance;
  812. var9.startDrawingQuads();
  813. var9.addVertexWithUV(0.0D, (double)par3, -90.0D, (double)var5, (double)var8);
  814. var9.addVertexWithUV((double)par2, (double)par3, -90.0D, (double)var7, (double)var8);
  815. var9.addVertexWithUV((double)par2, 0.0D, -90.0D, (double)var7, (double)var6);
  816. var9.addVertexWithUV(0.0D, 0.0D, -90.0D, (double)var5, (double)var6);
  817. var9.draw();
  818. GL11.glDepthMask(true);
  819. GL11.glEnable(GL11.GL_DEPTH_TEST);
  820. GL11.glEnable(GL11.GL_ALPHA_TEST);
  821. GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
  822. }
  823.  
  824. /**
  825. * Renders the specified item of the inventory slot at the specified location. Args: slot, x, y, partialTick
  826. */
  827. private void renderInventorySlot(int par1, int par2, int par3, float par4)
  828. {
  829. ItemStack var5 = this.mc.thePlayer.inventory.mainInventory[par1];
  830.  
  831. if (var5 != null)
  832. {
  833. float var6 = (float)var5.animationsToGo - par4;
  834.  
  835. if (var6 > 0.0F)
  836. {
  837. GL11.glPushMatrix();
  838. float var7 = 1.0F + var6 / 5.0F;
  839. GL11.glTranslatef((float)(par2 + 8), (float)(par3 + 12), 0.0F);
  840. GL11.glScalef(1.0F / var7, (var7 + 1.0F) / 2.0F, 1.0F);
  841. GL11.glTranslatef((float)(-(par2 + 8)), (float)(-(par3 + 12)), 0.0F);
  842. }
  843.  
  844. itemRenderer.renderItemAndEffectIntoGUI(this.mc.fontRenderer, this.mc.renderEngine, var5, par2, par3);
  845.  
  846. if (var6 > 0.0F)
  847. {
  848. GL11.glPopMatrix();
  849. }
  850.  
  851. itemRenderer.renderItemOverlayIntoGUI(this.mc.fontRenderer, this.mc.renderEngine, var5, par2, par3);
  852. }
  853. }
  854.  
  855. /**
  856. * The update tick for the ingame UI
  857. */
  858. public void updateTick()
  859. {
  860. if (this.DisplayNameTimer > 0)
  861. {
  862. --this.DisplayNameTimer;
  863. }
  864. if (this.recordPlayingUpFor > 0)
  865. {
  866. --this.recordPlayingUpFor;
  867. }
  868.  
  869. ++this.updateCounter;
  870.  
  871. if (this.mc.thePlayer != null)
  872. {
  873. ItemStack var1 = this.mc.thePlayer.inventory.getCurrentItem();
  874.  
  875. if (var1 == null)
  876. {
  877. this.remainingHighlightTicks = 0;
  878. }
  879. else if (this.highlightingItemStack != null && var1.itemID == this.highlightingItemStack.itemID && ItemStack.areItemStackTagsEqual(var1, this.highlightingItemStack) && (var1.isItemStackDamageable() || var1.getItemDamage() == this.highlightingItemStack.getItemDamage()))
  880. {
  881. if (this.remainingHighlightTicks > 0)
  882. {
  883. --this.remainingHighlightTicks;
  884. }
  885. }
  886. else
  887. {
  888. this.remainingHighlightTicks = 40;
  889. }
  890.  
  891. this.highlightingItemStack = var1;
  892. }
  893. }
  894.  
  895. public void setRecordPlayingMessage(String par1Str)
  896. {
  897. this.recordPlaying = "Now playing: " + par1Str;
  898. this.recordPlayingUpFor = 60;
  899. this.recordIsPlaying = true;
  900. }
  901.  
  902. /**
  903. * returns a pointer to the persistant Chat GUI, containing all previous chat messages and such
  904. */
  905. public GuiNewChat getChatGUI()
  906. {
  907. return this.persistantChatGUI;
  908. }
  909.  
  910. public int getUpdateCounter()
  911. {
  912. return this.updateCounter;
  913. }
  914. public void DisplayCity(String bananaland)
  915. {
  916. this.DisplayName = bananaland;
  917. this.DisplayNameTimer = 60;
  918. this.isDisplay = true;
  919. }
  920. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement