package WayofTime.alchemicalWizardry.common.renderer.model;

import net.minecraft.client.model.ModelBase;
import net.minecraft.client.model.ModelRenderer;
import net.minecraft.entity.Entity;
import net.minecraft.world.World;

public class ModelElemental extends ModelBase
{
    //fields
    ModelRenderer body;
    ModelRenderer Shape2;
    ModelRenderer Shape1;
    ModelRenderer Shape3;

    public ModelElemental()
    {
        textureWidth = 64;
        textureHeight = 32;
        body = new ModelRenderer(this, 33, 0);
        body.addBox(-3F, -3F, -3F, 6, 6, 6);
        body.setRotationPoint(0F, 14F, 0F);
        body.setTextureSize(64, 32);
        body.mirror = true;
        setRotation(body, 0F, 0F, 0F);
        Shape2 = new ModelRenderer(this, 0, 0);
        Shape2.addBox(-4F, -4F, -4F, 8, 8, 8);
        Shape2.setRotationPoint(0F, 14F, 0F);
        Shape2.setTextureSize(64, 32);
        Shape2.mirror = true;
        setRotation(Shape2, ((float) Math.PI / 4F), ((float) Math.PI / 4F), 0F);
        Shape1 = new ModelRenderer(this, 0, 0);
        Shape1.addBox(-4F, -4F, -4F, 8, 8, 8);
        Shape1.setRotationPoint(0F, 14F, 0F);
        Shape1.setTextureSize(64, 32);
        Shape1.mirror = true;
        setRotation(Shape1, 0F, ((float) Math.PI / 4F), ((float) Math.PI / 4F));
        Shape3 = new ModelRenderer(this, 0, 0);
        Shape3.addBox(-4F, -4F, -4F, 8, 8, 8);
        Shape3.setRotationPoint(0F, 14F, 0F);
        Shape3.setTextureSize(64, 32);
        Shape3.mirror = true;
        setRotation(Shape3, ((float) Math.PI / 4F), 0F, ((float) Math.PI / 4F));
    }

    public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5)
    {
        super.render(entity, f, f1, f2, f3, f4, f5);
        setRotationAngles(f, f1, f2, f3, f4, f5, entity);
        body.render(f5);
        Shape2.render(f5);
        Shape1.render(f5);
        Shape3.render(f5);
    }

    private void setRotation(ModelRenderer model, float x, float y, float z)
    {
        model.rotateAngleX = x;
        model.rotateAngleY = y;
        model.rotateAngleZ = z;
    }

    public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity)
    {
        super.setRotationAngles(f, f1, f2, f3, f4, f5, entity);
        World world = entity.worldObj;

        if (world == null)
        {
            return;
        }

        float ratio = 0.1f;
        float rot = (entity.worldObj.getWorldTime() + f) * ratio;
        Shape1.rotateAngleX = rot;
        Shape2.rotateAngleZ = rot;
        Shape3.rotateAngleY = rot;
    }
}
