package pneumaticCraft.client.render.entity;

import net.minecraft.client.renderer.entity.RenderEntity;
import net.minecraft.client.renderer.entity.RenderItem;
import net.minecraft.client.renderer.entity.RenderManager;
import net.minecraft.entity.Entity;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.item.ItemStack;

import org.lwjgl.opengl.GL11;

import pneumaticCraft.common.entity.projectile.EntityChopperSeeds;
import pneumaticCraft.common.item.ItemPlasticPlants;
import pneumaticCraft.common.item.Itemss;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;

@SideOnly(Side.CLIENT)
public class RenderEntityChopperSeeds extends RenderEntity{

    private RenderItem itemRenderer;
    private final ItemStack iStack = new ItemStack(Itemss.plasticPlant, 1, ItemPlasticPlants.CHOPPER_PLANT_DAMAGE);

    public RenderEntityChopperSeeds(){
        itemRenderer = new RenderItem(){
            @Override
            public boolean shouldBob(){

                return false;
            };
        };
        itemRenderer.setRenderManager(RenderManager.instance);
    }

    public void renderChopperSeeds(EntityChopperSeeds entity, double x, double y, double z, float var1, float partialTicks){
        float scaleFactor = 0.7F;
        GL11.glPushMatrix(); // start
        GL11.glTranslatef((float)x, (float)y, (float)z); // size
        // GL11.glScalef(1.0F, -1F, -1F);
        GL11.glScalef(scaleFactor, scaleFactor, scaleFactor);
        EntityItem ghostEntityItem = new EntityItem(entity.worldObj);
        ghostEntityItem.hoverStart = 0.0F;
        ghostEntityItem.setEntityItemStack(iStack);
        double radius = 0.25D;
        for(int i = 0; i < 4; i++) {
            GL11.glPushMatrix();
            GL11.glTranslated(Math.sin(0.5D * Math.PI * i + (entity.ticksExisted + partialTicks) * 0.4D) * radius, 0, Math.cos(0.5D * Math.PI * i + (entity.ticksExisted + partialTicks) * 0.4D) * radius);
            itemRenderer.doRender(ghostEntityItem, 0, 0, 0, 0, 0);
            GL11.glPopMatrix();
        }
        GL11.glPopMatrix();
    }

    @Override
    public void doRender(Entity par1Entity, double par2, double par4, double par6, float par8, float par9){
        renderChopperSeeds((EntityChopperSeeds)par1Entity, par2, par4, par6, par8, par9);
    }

}