001package net.minecraft.client.renderer.entity;
002
003import cpw.mods.fml.relauncher.Side;
004import cpw.mods.fml.relauncher.SideOnly;
005import net.minecraft.client.renderer.Tessellator;
006import net.minecraft.entity.Entity;
007import net.minecraft.entity.projectile.EntityFireball;
008import net.minecraft.item.Item;
009import net.minecraft.util.Icon;
010import org.lwjgl.opengl.GL11;
011import org.lwjgl.opengl.GL12;
012
013@SideOnly(Side.CLIENT)
014public class RenderFireball extends Render
015{
016    private float field_77002_a;
017
018    public RenderFireball(float par1)
019    {
020        this.field_77002_a = par1;
021    }
022
023    public void doRenderFireball(EntityFireball par1EntityFireball, double par2, double par4, double par6, float par8, float par9)
024    {
025        GL11.glPushMatrix();
026        GL11.glTranslatef((float)par2, (float)par4, (float)par6);
027        GL11.glEnable(GL12.GL_RESCALE_NORMAL);
028        float f2 = this.field_77002_a;
029        GL11.glScalef(f2 / 1.0F, f2 / 1.0F, f2 / 1.0F);
030        Icon icon = Item.fireballCharge.getIconFromDamage(0);
031        this.loadTexture("/gui/items.png");
032        Tessellator tessellator = Tessellator.instance;
033        float f3 = icon.getMinU();
034        float f4 = icon.getMaxU();
035        float f5 = icon.getMinV();
036        float f6 = icon.getMaxV();
037        float f7 = 1.0F;
038        float f8 = 0.5F;
039        float f9 = 0.25F;
040        GL11.glRotatef(180.0F - this.renderManager.playerViewY, 0.0F, 1.0F, 0.0F);
041        GL11.glRotatef(-this.renderManager.playerViewX, 1.0F, 0.0F, 0.0F);
042        tessellator.startDrawingQuads();
043        tessellator.setNormal(0.0F, 1.0F, 0.0F);
044        tessellator.addVertexWithUV((double)(0.0F - f8), (double)(0.0F - f9), 0.0D, (double)f3, (double)f6);
045        tessellator.addVertexWithUV((double)(f7 - f8), (double)(0.0F - f9), 0.0D, (double)f4, (double)f6);
046        tessellator.addVertexWithUV((double)(f7 - f8), (double)(1.0F - f9), 0.0D, (double)f4, (double)f5);
047        tessellator.addVertexWithUV((double)(0.0F - f8), (double)(1.0F - f9), 0.0D, (double)f3, (double)f5);
048        tessellator.draw();
049        GL11.glDisable(GL12.GL_RESCALE_NORMAL);
050        GL11.glPopMatrix();
051    }
052
053    /**
054     * Actually renders the given argument. This is a synthetic bridge method, always casting down its argument and then
055     * handing it off to a worker function which does the actual work. In all probabilty, the class Render is generic
056     * (Render<T extends Entity) and this method has signature public void doRender(T entity, double d, double d1,
057     * double d2, float f, float f1). But JAD is pre 1.5 so doesn't do that.
058     */
059    public void doRender(Entity par1Entity, double par2, double par4, double par6, float par8, float par9)
060    {
061        this.doRenderFireball((EntityFireball)par1Entity, par2, par4, par6, par8, par9);
062    }
063}