package net.minecraft.client.gui; import Oskar13.Kolory; import Oskar13.OskarStart; import Oskar13.APIs.ModChat; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import java.awt.Color; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.Random; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.client.Minecraft; import net.minecraft.client.multiplayer.NetClientHandler; import net.minecraft.client.renderer.RenderHelper; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.entity.RenderItem; import net.minecraft.entity.boss.BossStatus; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; import net.minecraft.potion.Potion; import net.minecraft.util.Direction; import net.minecraft.util.FoodStats; import net.minecraft.util.MathHelper; import net.minecraft.util.StatCollector; import net.minecraft.util.StringUtils; import net.minecraft.world.EnumSkyBlock; import net.minecraft.world.chunk.Chunk; import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL12; import net.minecraftforge.common.ForgeHooks; @SideOnly(Side.CLIENT) public class GuiIngame extends Gui { private static final RenderItem itemRenderer = new RenderItem(); private final Random rand = new Random(); private final Minecraft mc; /** ChatGUI instance that retains all previous chat data */ private final GuiNewChat persistantChatGUI; private int updateCounter = 0; /** The string specifying which record music is playing */ private String recordPlaying = ""; /** How many ticks the record playing message will be displayed */ private int recordPlayingUpFor = 0; private boolean recordIsPlaying = false; /** Previous frame vignette brightness (slowly changes by 1% each frame) */ public float prevVignetteBrightness = 1.0F; private int field_92017_k; private ItemStack field_92016_l; public GuiIngame(Minecraft par1Minecraft) { this.mc = par1Minecraft; this.persistantChatGUI = new GuiNewChat(par1Minecraft); } /** * Render the ingame overlay with quick icon bar, ... */ static ArrayList Notification = new ArrayList(); public static class Notification { // type 0 is admin chat on center top // type 1 is mod chat on right top // oskar private int time; String title; String message; private int type; public Notification(int i, String s, String s1,int a) { time = i; title = s; message = s1; type = a; } } // Jwjgl 2d public static void set2DMode(float f, float f1, float f2, float f3) { GL11.glDisable(2929 /*GL_DEPTH_TEST*/); GL11.glMatrixMode(5889 /*GL_PROJECTION*/); GL11.glPushMatrix(); GL11.glLoadIdentity(); GL11.glOrtho(f, f1, f3, f2, -100D, 100D); GL11.glMatrixMode(5888 /*GL_MODELVIEW0_ARB*/); GL11.glPushMatrix(); GL11.glLoadIdentity(); } // Jwjgl 3d public static void set3DMode() { GL11.glMatrixMode(5889 /*GL_PROJECTION*/); GL11.glPopMatrix(); GL11.glMatrixMode(5888 /*GL_MODELVIEW0_ARB*/); GL11.glPopMatrix(); GL11.glEnable(2929 /*GL_DEPTH_TEST*/); } public static void addNote(String name, String message, int type) { Notification.add(new Notification((int)System.currentTimeMillis(),name ,message, type)); } public void renderGameOverlay(float par1, boolean par2, int par3, int par4) { ScaledResolution var5 = new ScaledResolution(this.mc.gameSettings, this.mc.displayWidth, this.mc.displayHeight); int var6 = var5.getScaledWidth(); int var7 = var5.getScaledHeight(); FontRenderer var8 = this.mc.fontRenderer; this.mc.entityRenderer.setupOverlayRendering(); GL11.glEnable(GL11.GL_BLEND); ///////////////////////////////////////TheMinecraft edit - start set2DMode(0.0F, mc.displayWidth, 0.0F, mc.displayHeight); GL11.glEnable(3042 /*GL_BLEND*/); GL11.glBlendFunc(770, 771); GL11.glPushMatrix(); GL11.glScalef(2F, 2F, 2F); Iterator iterator1 = Notification.iterator(); int k5 = 5; while(iterator1.hasNext()) { Notification notification = (Notification)iterator1.next(); long l3 = (int)(System.currentTimeMillis() - (long)notification.time); if(l3 > 3333L) { iterator1.remove(); } else { float f3 = 1.0F - (float)l3 / 3333F; f3 *= 10F; if(f3 > 1.0F) { f3 = 1.0F; } if(f3 < 0.14F) { f3 = 0.14F; } f3 *= f3; String s1 = notification.title == null || notification.title.trim().length() <= 0 ? "" : (new StringBuilder()).append(notification.title).append(": ").toString(); this.drawString(var8, Kolory.zielony + s1 + Kolory.czerwony + notification.message, mc.displayWidth / 2 / 2 - (s1.trim().length() /2), k5, 0xffffff); k5 += 7; } } GL11.glPopMatrix(); set3DMode(); /////////////////////////////////////////////////TheMinecraft edit - stop if (Minecraft.isFancyGraphicsEnabled()) { this.renderVignette(this.mc.thePlayer.getBrightness(par1), var6, var7); } else { GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); } ItemStack var9 = this.mc.thePlayer.inventory.armorItemInSlot(3); if (this.mc.gameSettings.thirdPersonView == 0 && var9 != null && var9.itemID == Block.pumpkin.blockID) { this.renderPumpkinBlur(var6, var7); } if (!this.mc.thePlayer.isPotionActive(Potion.confusion)) { float var10 = this.mc.thePlayer.prevTimeInPortal + (this.mc.thePlayer.timeInPortal - this.mc.thePlayer.prevTimeInPortal) * par1; if (var10 > 0.0F) { this.renderPortalOverlay(var10, var6, var7); } } boolean var11; int var12; int var13; int var17; int var16; int var19; int var20; int var23; int var22; int var24; int var47; if (!this.mc.playerController.func_78747_a()) { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); GL11.glBindTexture(GL11.GL_TEXTURE_2D, this.mc.renderEngine.getTexture("/gui/gui.png")); InventoryPlayer var31 = this.mc.thePlayer.inventory; this.zLevel = -90.0F; this.drawTexturedModalRect(var6 / 2 - 91, var7 - 22, 0, 0, 182, 22); this.drawTexturedModalRect(var6 / 2 - 91 - 1 + var31.currentItem * 20, var7 - 22 - 1, 0, 22, 24, 22); GL11.glBindTexture(GL11.GL_TEXTURE_2D, this.mc.renderEngine.getTexture("/gui/icons.png")); GL11.glEnable(GL11.GL_BLEND); GL11.glBlendFunc(GL11.GL_ONE_MINUS_DST_COLOR, GL11.GL_ONE_MINUS_SRC_COLOR); this.drawTexturedModalRect(var6 / 2 - 7, var7 / 2 - 7, 0, 0, 16, 16); GL11.glDisable(GL11.GL_BLEND); var11 = this.mc.thePlayer.hurtResistantTime / 3 % 2 == 1; if (this.mc.thePlayer.hurtResistantTime < 10) { var11 = false; } var12 = this.mc.thePlayer.getHealth(); var13 = this.mc.thePlayer.prevHealth; this.rand.setSeed((long)(this.updateCounter * 312871)); boolean var14 = false; FoodStats var15 = this.mc.thePlayer.getFoodStats(); var16 = var15.getFoodLevel(); var17 = var15.getPrevFoodLevel(); this.mc.mcProfiler.startSection("bossHealth"); this.renderBossHealth(); this.mc.mcProfiler.endSection(); int var18; if (this.mc.playerController.shouldDrawHUD()) { var18 = var6 / 2 - 91; var19 = var6 / 2 + 91; this.mc.mcProfiler.startSection("expBar"); var20 = this.mc.thePlayer.xpBarCap(); if (var20 > 0) { short var21 = 182; var22 = (int)(this.mc.thePlayer.experience * (float)(var21 + 1)); var23 = var7 - 32 + 3; this.drawTexturedModalRect(var18, var23, 0, 64, var21, 5); if (var22 > 0) { this.drawTexturedModalRect(var18, var23, 0, 69, var22, 5); } } var47 = var7 - 39; var22 = var47 - 10; var23 = ForgeHooks.getTotalArmorValue(mc.thePlayer); var24 = -1; if (this.mc.thePlayer.isPotionActive(Potion.regeneration)) { var24 = this.updateCounter % 25; } this.mc.mcProfiler.endStartSection("healthArmor"); int var25; int var26; int var29; int var28; for (var25 = 0; var25 < 10; ++var25) { if (var23 > 0) { var26 = var18 + var25 * 8; if (var25 * 2 + 1 < var23) { this.drawTexturedModalRect(var26, var22, 34, 9, 9, 9); } if (var25 * 2 + 1 == var23) { this.drawTexturedModalRect(var26, var22, 25, 9, 9, 9); } if (var25 * 2 + 1 > var23) { this.drawTexturedModalRect(var26, var22, 16, 9, 9, 9); } } var26 = 16; if (this.mc.thePlayer.isPotionActive(Potion.poison)) { var26 += 36; } else if (this.mc.thePlayer.isPotionActive(Potion.wither)) { var26 += 72; } byte var27 = 0; if (var11) { var27 = 1; } var28 = var18 + var25 * 8; var29 = var47; if (var12 <= 4) { var29 = var47 + this.rand.nextInt(2); } if (var25 == var24) { var29 -= 2; } byte var30 = 0; if (this.mc.theWorld.getWorldInfo().isHardcoreModeEnabled()) { var30 = 5; } this.drawTexturedModalRect(var28, var29, 16 + var27 * 9, 9 * var30, 9, 9); if (var11) { if (var25 * 2 + 1 < var13) { this.drawTexturedModalRect(var28, var29, var26 + 54, 9 * var30, 9, 9); } if (var25 * 2 + 1 == var13) { this.drawTexturedModalRect(var28, var29, var26 + 63, 9 * var30, 9, 9); } } if (var25 * 2 + 1 < var12) { this.drawTexturedModalRect(var28, var29, var26 + 36, 9 * var30, 9, 9); } if (var25 * 2 + 1 == var12) { this.drawTexturedModalRect(var28, var29, var26 + 45, 9 * var30, 9, 9); } } this.mc.mcProfiler.endStartSection("food"); int var51; for (var25 = 0; var25 < 10; ++var25) { var26 = var47; var51 = 16; byte var52 = 0; if (this.mc.thePlayer.isPotionActive(Potion.hunger)) { var51 += 36; var52 = 13; } if (this.mc.thePlayer.getFoodStats().getSaturationLevel() <= 0.0F && this.updateCounter % (var16 * 3 + 1) == 0) { var26 = var47 + (this.rand.nextInt(3) - 1); } if (var14) { var52 = 1; } var29 = var19 - var25 * 8 - 9; this.drawTexturedModalRect(var29, var26, 16 + var52 * 9, 27, 9, 9); if (var14) { if (var25 * 2 + 1 < var17) { this.drawTexturedModalRect(var29, var26, var51 + 54, 27, 9, 9); } if (var25 * 2 + 1 == var17) { this.drawTexturedModalRect(var29, var26, var51 + 63, 27, 9, 9); } } if (var25 * 2 + 1 < var16) { this.drawTexturedModalRect(var29, var26, var51 + 36, 27, 9, 9); } if (var25 * 2 + 1 == var16) { this.drawTexturedModalRect(var29, var26, var51 + 45, 27, 9, 9); } } this.mc.mcProfiler.endStartSection("air"); if (this.mc.thePlayer.isInsideOfMaterial(Material.water)) { var25 = this.mc.thePlayer.getAir(); var26 = MathHelper.ceiling_double_int((double)(var25 - 2) * 10.0D / 300.0D); var51 = MathHelper.ceiling_double_int((double)var25 * 10.0D / 300.0D) - var26; for (var28 = 0; var28 < var26 + var51; ++var28) { if (var28 < var26) { this.drawTexturedModalRect(var19 - var28 * 8 - 9, var22, 16, 18, 9, 9); } else { this.drawTexturedModalRect(var19 - var28 * 8 - 9, var22, 25, 18, 9, 9); } } } this.mc.mcProfiler.endSection(); } GL11.glDisable(GL11.GL_BLEND); this.mc.mcProfiler.startSection("actionBar"); GL11.glEnable(GL12.GL_RESCALE_NORMAL); RenderHelper.enableGUIStandardItemLighting(); for (var18 = 0; var18 < 9; ++var18) { var19 = var6 / 2 - 90 + var18 * 20 + 2; var20 = var7 - 16 - 3; this.renderInventorySlot(var18, var19, var20, par1); } RenderHelper.disableStandardItemLighting(); GL11.glDisable(GL12.GL_RESCALE_NORMAL); this.mc.mcProfiler.endSection(); } float var33; if (this.mc.thePlayer.getSleepTimer() > 0) { this.mc.mcProfiler.startSection("sleep"); GL11.glDisable(GL11.GL_DEPTH_TEST); GL11.glDisable(GL11.GL_ALPHA_TEST); int var32 = this.mc.thePlayer.getSleepTimer(); var33 = (float)var32 / 100.0F; if (var33 > 1.0F) { var33 = 1.0F - (float)(var32 - 100) / 10.0F; } var12 = (int)(220.0F * var33) << 24 | 1052704; drawRect(0, 0, var6, var7, var12); GL11.glEnable(GL11.GL_ALPHA_TEST); GL11.glEnable(GL11.GL_DEPTH_TEST); this.mc.mcProfiler.endSection(); } int var38; int var37; if (this.mc.playerController.func_78763_f() && this.mc.thePlayer.experienceLevel > 0) { this.mc.mcProfiler.startSection("expLevel"); var11 = false; var12 = var11 ? 16777215 : 8453920; String var34 = "" + this.mc.thePlayer.experienceLevel; var38 = (var6 - var8.getStringWidth(var34)) / 2; var37 = var7 - 31 - 4; var8.drawString(var34, var38 + 1, var37, 0); var8.drawString(var34, var38 - 1, var37, 0); var8.drawString(var34, var38, var37 + 1, 0); var8.drawString(var34, var38, var37 - 1, 0); var8.drawString(var34, var38, var37, var12); this.mc.mcProfiler.endSection(); } String var35; if (this.mc.gameSettings.field_92117_D) { this.mc.mcProfiler.startSection("toolHighlight"); if (this.field_92017_k > 0 && this.field_92016_l != null) { var35 = this.field_92016_l.getDisplayName(); var12 = (var6 - var8.getStringWidth(var35)) / 2; var13 = var7 - 59; if (!this.mc.playerController.shouldDrawHUD()) { var13 += 14; } var38 = (int)((float)this.field_92017_k * 256.0F / 10.0F); if (var38 > 255) { var38 = 255; } if (var38 > 0) { GL11.glPushMatrix(); GL11.glEnable(GL11.GL_BLEND); GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); var8.drawStringWithShadow(var35, var12, var13, 16777215 + (var38 << 24)); GL11.glDisable(GL11.GL_BLEND); GL11.glPopMatrix(); } } this.mc.mcProfiler.endSection(); } if (this.mc.isDemo()) { this.mc.mcProfiler.startSection("demo"); var35 = ""; if (this.mc.theWorld.getTotalWorldTime() >= 120500L) { var35 = StatCollector.translateToLocal("demo.demoExpired"); } else { var35 = String.format(StatCollector.translateToLocal("demo.remainingTime"), new Object[] {StringUtils.ticksToElapsedTime((int)(120500L - this.mc.theWorld.getTotalWorldTime()))}); } var12 = var8.getStringWidth(var35); var8.drawStringWithShadow(var35, var6 - var12 - 10, 5, 16777215); this.mc.mcProfiler.endSection(); } if (this.mc.gameSettings.showDebugInfo) { this.mc.mcProfiler.startSection("debug"); GL11.glPushMatrix(); var8.drawStringWithShadow("Minecraft 1.4.7 (" + this.mc.debug + ")", 2, 2, 16777215); var8.drawStringWithShadow(this.mc.debugInfoRenders(), 2, 12, 16777215); var8.drawStringWithShadow(this.mc.getEntityDebug(), 2, 22, 16777215); var8.drawStringWithShadow(this.mc.debugInfoEntities(), 2, 32, 16777215); var8.drawStringWithShadow(this.mc.getWorldProviderName(), 2, 42, 16777215); long var36 = Runtime.getRuntime().maxMemory(); long var40 = Runtime.getRuntime().totalMemory(); long var42 = Runtime.getRuntime().freeMemory(); long var43 = var40 - var42; String var45 = "Used memory: " + var43 * 100L / var36 + "% (" + var43 / 1024L / 1024L + "MB) of " + var36 / 1024L / 1024L + "MB"; this.drawString(var8, var45, var6 - var8.getStringWidth(var45) - 2, 2, 14737632); var45 = "Allocated memory: " + var40 * 100L / var36 + "% (" + var40 / 1024L / 1024L + "MB)"; this.drawString(var8, var45, var6 - var8.getStringWidth(var45) - 2, 12, 14737632); var47 = MathHelper.floor_double(this.mc.thePlayer.posX); var22 = MathHelper.floor_double(this.mc.thePlayer.posY); var23 = MathHelper.floor_double(this.mc.thePlayer.posZ); 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); 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); 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); var24 = MathHelper.floor_double((double)(this.mc.thePlayer.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3; this.drawString(var8, "f: " + var24 + " (" + Direction.directions[var24] + ") / " + MathHelper.wrapAngleTo180_float(this.mc.thePlayer.rotationYaw), 2, 88, 14737632); if (this.mc.theWorld != null && this.mc.theWorld.blockExists(var47, var22, var23)) { Chunk var53 = this.mc.theWorld.getChunkFromBlockCoords(var47, var23); this.drawString(var8, "lc: " + (var53.getTopFilledSegment() + 15) + " b: " + var53.getBiomeGenForWorldCoords(var47 & 15, var23 & 15, this.mc.theWorld.getWorldChunkManager()).biomeName + " bl: " + var53.getSavedLightValue(EnumSkyBlock.Block, var47 & 15, var22, var23 & 15) + " sl: " + var53.getSavedLightValue(EnumSkyBlock.Sky, var47 & 15, var22, var23 & 15) + " rl: " + var53.getBlockLightValue(var47 & 15, var22, var23 & 15, 0), 2, 96, 14737632); } 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); GL11.glPopMatrix(); this.mc.mcProfiler.endSection(); } if (this.recordPlayingUpFor > 0) { this.mc.mcProfiler.startSection("overlayMessage"); var33 = (float)this.recordPlayingUpFor - par1; var12 = (int)(var33 * 256.0F / 20.0F); if (var12 > 255) { var12 = 255; } if (var12 > 0) { GL11.glPushMatrix(); GL11.glTranslatef((float)(var6 / 2), (float)(var7 - 48), 0.0F); GL11.glEnable(GL11.GL_BLEND); GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); var13 = 16777215; if (this.recordIsPlaying) { var13 = Color.HSBtoRGB(var33 / 50.0F, 0.7F, 0.6F) & 16777215; } var8.drawString(this.recordPlaying, -var8.getStringWidth(this.recordPlaying) / 2, -4, var13 + (var12 << 24)); GL11.glDisable(GL11.GL_BLEND); GL11.glPopMatrix(); } this.mc.mcProfiler.endSection(); } GL11.glEnable(GL11.GL_BLEND); GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); GL11.glDisable(GL11.GL_ALPHA_TEST); GL11.glPushMatrix(); GL11.glTranslatef(0.0F, (float)(var7 - 48), 0.0F); this.mc.mcProfiler.startSection("chat"); this.persistantChatGUI.drawChat(this.updateCounter); this.mc.mcProfiler.endSection(); GL11.glPopMatrix(); if (this.mc.gameSettings.keyBindPlayerList.pressed && (!this.mc.isIntegratedServerRunning() || this.mc.thePlayer.sendQueue.playerInfoList.size() > 1)) { this.mc.mcProfiler.startSection("playerList"); NetClientHandler var41 = this.mc.thePlayer.sendQueue; List var39 = var41.playerInfoList; var13 = var41.currentServerMaxPlayers; var38 = var13; for (var37 = 1; var38 > 20; var38 = (var13 + var37 - 1) / var37) { ++var37; } var16 = 300 / var37; if (var16 > 150) { var16 = 150; } var17 = (var6 - var37 * var16) / 2; byte var44 = 10; drawRect(var17 - 1, var44 - 1, var17 + var16 * var37, var44 + 9 * var38, Integer.MIN_VALUE); for (var19 = 0; var19 < var13; ++var19) { var20 = var17 + var19 % var37 * var16; var47 = var44 + var19 / var37 * 9; drawRect(var20, var47, var20 + var16 - 1, var47 + 8, 553648127); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); GL11.glEnable(GL11.GL_ALPHA_TEST); if (var19 < var39.size()) { GuiPlayerInfo var46 = (GuiPlayerInfo)var39.get(var19); var8.drawStringWithShadow(var46.name, var20, var47, 16777215); this.mc.renderEngine.bindTexture(this.mc.renderEngine.getTexture("/gui/icons.png")); byte var50 = 0; boolean var48 = false; byte var49; if (var46.responseTime < 0) { var49 = 5; } else if (var46.responseTime < 150) { var49 = 0; } else if (var46.responseTime < 300) { var49 = 1; } else if (var46.responseTime < 600) { var49 = 2; } else if (var46.responseTime < 1000) { var49 = 3; } else { var49 = 4; } this.zLevel += 100.0F; this.drawTexturedModalRect(var20 + var16 - 12, var47, 0 + var50 * 10, 176 + var49 * 8, 10, 8); this.zLevel -= 100.0F; } } } GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); GL11.glDisable(GL11.GL_LIGHTING); GL11.glEnable(GL11.GL_ALPHA_TEST); } /** * Renders dragon's (boss) health on the HUD */ private void renderBossHealth() { if (BossStatus.bossName != null && BossStatus.statusBarLength > 0) { --BossStatus.statusBarLength; FontRenderer var1 = this.mc.fontRenderer; ScaledResolution var2 = new ScaledResolution(this.mc.gameSettings, this.mc.displayWidth, this.mc.displayHeight); int var3 = var2.getScaledWidth(); short var4 = 182; int var5 = var3 / 2 - var4 / 2; int var6 = (int)(BossStatus.healthScale * (float)(var4 + 1)); byte var7 = 12; this.drawTexturedModalRect(var5, var7, 0, 74, var4, 5); this.drawTexturedModalRect(var5, var7, 0, 74, var4, 5); if (var6 > 0) { this.drawTexturedModalRect(var5, var7, 0, 79, var6, 5); } String var8 = BossStatus.bossName; var1.drawStringWithShadow(var8, var3 / 2 - var1.getStringWidth(var8) / 2, var7 - 10, 16777215); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); GL11.glBindTexture(GL11.GL_TEXTURE_2D, this.mc.renderEngine.getTexture("/gui/icons.png")); } } private void renderPumpkinBlur(int par1, int par2) { GL11.glDisable(GL11.GL_DEPTH_TEST); GL11.glDepthMask(false); GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); GL11.glDisable(GL11.GL_ALPHA_TEST); GL11.glBindTexture(GL11.GL_TEXTURE_2D, this.mc.renderEngine.getTexture("%blur%/misc/pumpkinblur.png")); Tessellator var3 = Tessellator.instance; var3.startDrawingQuads(); var3.addVertexWithUV(0.0D, (double)par2, -90.0D, 0.0D, 1.0D); var3.addVertexWithUV((double)par1, (double)par2, -90.0D, 1.0D, 1.0D); var3.addVertexWithUV((double)par1, 0.0D, -90.0D, 1.0D, 0.0D); var3.addVertexWithUV(0.0D, 0.0D, -90.0D, 0.0D, 0.0D); var3.draw(); GL11.glDepthMask(true); GL11.glEnable(GL11.GL_DEPTH_TEST); GL11.glEnable(GL11.GL_ALPHA_TEST); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); } /** * Renders the vignette. Args: vignetteBrightness, width, height */ private void renderVignette(float par1, int par2, int par3) { par1 = 1.0F - par1; if (par1 < 0.0F) { par1 = 0.0F; } if (par1 > 1.0F) { par1 = 1.0F; } this.prevVignetteBrightness = (float)((double)this.prevVignetteBrightness + (double)(par1 - this.prevVignetteBrightness) * 0.01D); GL11.glDisable(GL11.GL_DEPTH_TEST); GL11.glDepthMask(false); GL11.glBlendFunc(GL11.GL_ZERO, GL11.GL_ONE_MINUS_SRC_COLOR); GL11.glColor4f(this.prevVignetteBrightness, this.prevVignetteBrightness, this.prevVignetteBrightness, 1.0F); GL11.glBindTexture(GL11.GL_TEXTURE_2D, this.mc.renderEngine.getTexture("%blur%/misc/vignette.png")); Tessellator var4 = Tessellator.instance; var4.startDrawingQuads(); var4.addVertexWithUV(0.0D, (double)par3, -90.0D, 0.0D, 1.0D); var4.addVertexWithUV((double)par2, (double)par3, -90.0D, 1.0D, 1.0D); var4.addVertexWithUV((double)par2, 0.0D, -90.0D, 1.0D, 0.0D); var4.addVertexWithUV(0.0D, 0.0D, -90.0D, 0.0D, 0.0D); var4.draw(); GL11.glDepthMask(true); GL11.glEnable(GL11.GL_DEPTH_TEST); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); } /** * Renders the portal overlay. Args: portalStrength, width, height */ private void renderPortalOverlay(float par1, int par2, int par3) { if (par1 < 1.0F) { par1 *= par1; par1 *= par1; par1 = par1 * 0.8F + 0.2F; } GL11.glDisable(GL11.GL_ALPHA_TEST); GL11.glDisable(GL11.GL_DEPTH_TEST); GL11.glDepthMask(false); GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); GL11.glColor4f(1.0F, 1.0F, 1.0F, par1); GL11.glBindTexture(GL11.GL_TEXTURE_2D, this.mc.renderEngine.getTexture("/terrain.png")); float var4 = (float)(Block.portal.blockIndexInTexture % 16) / 16.0F; float var5 = (float)(Block.portal.blockIndexInTexture / 16) / 16.0F; float var6 = (float)(Block.portal.blockIndexInTexture % 16 + 1) / 16.0F; float var7 = (float)(Block.portal.blockIndexInTexture / 16 + 1) / 16.0F; Tessellator var8 = Tessellator.instance; var8.startDrawingQuads(); var8.addVertexWithUV(0.0D, (double)par3, -90.0D, (double)var4, (double)var7); var8.addVertexWithUV((double)par2, (double)par3, -90.0D, (double)var6, (double)var7); var8.addVertexWithUV((double)par2, 0.0D, -90.0D, (double)var6, (double)var5); var8.addVertexWithUV(0.0D, 0.0D, -90.0D, (double)var4, (double)var5); var8.draw(); GL11.glDepthMask(true); GL11.glEnable(GL11.GL_DEPTH_TEST); GL11.glEnable(GL11.GL_ALPHA_TEST); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); } /** * Renders the specified item of the inventory slot at the specified location. Args: slot, x, y, partialTick */ private void renderInventorySlot(int par1, int par2, int par3, float par4) { ItemStack var5 = this.mc.thePlayer.inventory.mainInventory[par1]; if (var5 != null) { float var6 = (float)var5.animationsToGo - par4; if (var6 > 0.0F) { GL11.glPushMatrix(); float var7 = 1.0F + var6 / 5.0F; GL11.glTranslatef((float)(par2 + 8), (float)(par3 + 12), 0.0F); GL11.glScalef(1.0F / var7, (var7 + 1.0F) / 2.0F, 1.0F); GL11.glTranslatef((float)(-(par2 + 8)), (float)(-(par3 + 12)), 0.0F); } itemRenderer.renderItemAndEffectIntoGUI(this.mc.fontRenderer, this.mc.renderEngine, var5, par2, par3); if (var6 > 0.0F) { GL11.glPopMatrix(); } itemRenderer.renderItemOverlayIntoGUI(this.mc.fontRenderer, this.mc.renderEngine, var5, par2, par3); } } /** * The update tick for the ingame UI */ public void updateTick() { if (this.recordPlayingUpFor > 0) { --this.recordPlayingUpFor; } ++this.updateCounter; if (this.mc.thePlayer != null) { ItemStack var1 = this.mc.thePlayer.inventory.getCurrentItem(); if (var1 == null) { this.field_92017_k = 0; } else if (this.field_92016_l != null && var1.itemID == this.field_92016_l.itemID && ItemStack.areItemStackTagsEqual(var1, this.field_92016_l) && (var1.isItemStackDamageable() || var1.getItemDamage() == this.field_92016_l.getItemDamage())) { if (this.field_92017_k > 0) { --this.field_92017_k; } } else { this.field_92017_k = 40; } this.field_92016_l = var1; } } public void setRecordPlayingMessage(String par1Str) { this.recordPlaying = "Now playing: " + par1Str; this.recordPlayingUpFor = 60; this.recordIsPlaying = true; } /** * returns a pointer to the persistant Chat GUI, containing all previous chat messages and such */ public GuiNewChat getChatGUI() { return this.persistantChatGUI; } public int getUpdateCounter() { return this.updateCounter; } }