    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    }