package drzhark.mocreatures.client.renderer.entity;

import net.minecraft.client.model.ModelBase;
import net.minecraft.client.renderer.OpenGlHelper;
import net.minecraft.entity.EntityLiving;

import org.lwjgl.opengl.GL11;

import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import drzhark.mocreatures.MoCreatures;
import drzhark.mocreatures.client.model.MoCModelFirefly;
import drzhark.mocreatures.entity.passive.MoCEntityFirefly;

@SideOnly(Side.CLIENT)
public class MoCRenderFirefly extends MoCRenderInsect {
    public MoCRenderFirefly(ModelBase modelbase)
    {
        super(modelbase);
        this.setRenderPassModel(new MoCModelFirefly());
    }

    /**
     * Queries whether should render the specified pass or not.
     */
    @Override
    protected int shouldRenderPass(EntityLiving par1EntityLiving, int par2, float par3)
    {
        return this.setTailBrightness((MoCEntityFirefly) par1EntityLiving, par2, par3);
    }

    @Override
    protected void preRenderCallback(EntityLiving par1EntityLiving, float par2)
    {
        MoCEntityFirefly firefly = (MoCEntityFirefly) par1EntityLiving;
        if (firefly.getIsFlying())
        {
            rotateFirefly(firefly);
        }
        else if (firefly.climbing())
        {
            rotateAnimal(firefly);
        }

    }

    protected void rotateFirefly(MoCEntityFirefly entityfirefly)
    {
        GL11.glRotatef(40F, -1F, 0.0F, 0.0F);

    }

    /* protected void rotateAnimal(EntityLiving entityliving)
     {
         GL11.glRotatef(90F, -1F, 0.0F, 0.0F);
     }*/

    /**
     * Sets the glowing belly
     */
    protected int setTailBrightness(MoCEntityFirefly entityliving, int par2, float par3)
    {
        if (par2 != 0)
        {
            return -1;
        }
        else
        {
            this.loadTexture(MoCreatures.proxy.MODEL_TEXTURE + "fireflyglow.png");
            float var4 = 1.0F;
            GL11.glEnable(GL11.GL_BLEND);
            GL11.glDisable(GL11.GL_ALPHA_TEST);
            GL11.glBlendFunc(GL11.GL_ONE, GL11.GL_ONE);
            char var5 = 61680;
            int var6 = var5 % 65536;
            int var7 = var5 / 65536;
            OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, (float) var6 / 1.0F, (float) var7 / 1.0F);
            GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
            GL11.glColor4f(1.0F, 1.0F, 1.0F, var4);
            return 1;
        }
    }
}