001 package net.minecraft.src; 002 003 import cpw.mods.fml.common.Side; 004 import cpw.mods.fml.common.asm.SideOnly; 005 import java.util.Collection; 006 import java.util.Iterator; 007 import org.lwjgl.opengl.GL11; 008 009 @SideOnly(Side.CLIENT) 010 public abstract class InventoryEffectRenderer extends GuiContainer 011 { 012 private boolean field_74222_o; 013 014 public InventoryEffectRenderer(Container par1Container) 015 { 016 super(par1Container); 017 } 018 019 /** 020 * Adds the buttons (and other controls) to the screen in question. 021 */ 022 public void initGui() 023 { 024 super.initGui(); 025 026 if (!this.mc.thePlayer.getActivePotionEffects().isEmpty()) 027 { 028 this.guiLeft = 160 + (this.width - this.xSize - 200) / 2; 029 this.field_74222_o = true; 030 } 031 } 032 033 /** 034 * Draws the screen and all the components in it. 035 */ 036 public void drawScreen(int par1, int par2, float par3) 037 { 038 super.drawScreen(par1, par2, par3); 039 040 if (this.field_74222_o) 041 { 042 this.displayDebuffEffects(); 043 } 044 } 045 046 /** 047 * Displays debuff/potion effects that are currently being applied to the player 048 */ 049 private void displayDebuffEffects() 050 { 051 int var1 = this.guiLeft - 124; 052 int var2 = this.guiTop; 053 Collection var4 = this.mc.thePlayer.getActivePotionEffects(); 054 055 if (!var4.isEmpty()) 056 { 057 int var5 = this.mc.renderEngine.getTexture("/gui/inventory.png"); 058 GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); 059 GL11.glDisable(GL11.GL_LIGHTING); 060 int var6 = 33; 061 062 if (var4.size() > 5) 063 { 064 var6 = 132 / (var4.size() - 1); 065 } 066 067 for (Iterator var7 = this.mc.thePlayer.getActivePotionEffects().iterator(); var7.hasNext(); var2 += var6) 068 { 069 PotionEffect var8 = (PotionEffect)var7.next(); 070 Potion var9 = Potion.potionTypes[var8.getPotionID()]; 071 GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); 072 this.mc.renderEngine.bindTexture(var5); 073 this.drawTexturedModalRect(var1, var2, 0, 166, 140, 32); 074 075 if (var9.hasStatusIcon()) 076 { 077 int var10 = var9.getStatusIconIndex(); 078 this.drawTexturedModalRect(var1 + 6, var2 + 7, 0 + var10 % 8 * 18, 198 + var10 / 8 * 18, 18, 18); 079 } 080 081 String var12 = StatCollector.translateToLocal(var9.getName()); 082 083 if (var8.getAmplifier() == 1) 084 { 085 var12 = var12 + " II"; 086 } 087 else if (var8.getAmplifier() == 2) 088 { 089 var12 = var12 + " III"; 090 } 091 else if (var8.getAmplifier() == 3) 092 { 093 var12 = var12 + " IV"; 094 } 095 096 this.fontRenderer.drawStringWithShadow(var12, var1 + 10 + 18, var2 + 6, 16777215); 097 String var11 = Potion.getDurationString(var8); 098 this.fontRenderer.drawStringWithShadow(var11, var1 + 10 + 18, var2 + 6 + 10, 8355711); 099 } 100 } 101 } 102 }