buildcraftAdditions.client.models.ModelBackpackStand.java Source code

Java tutorial

Introduction

Here is the source code for buildcraftAdditions.client.models.ModelBackpackStand.java

Source

package buildcraftAdditions.client.models;

import org.lwjgl.opengl.GL11;

import net.minecraft.client.model.ModelBiped;
import net.minecraft.client.model.ModelRenderer;
import net.minecraft.entity.Entity;
import net.minecraft.util.ResourceLocation;

import cpw.mods.fml.client.FMLClientHandler;

/**
 * Copyright (c) 2014-2015, AEnterprise
 * http://buildcraftadditions.wordpress.com/
 * Buildcraft Additions is distributed under the terms of GNU GPL v3.0
 * Please check the contents of the license located in
 * http://buildcraftadditions.wordpress.com/wiki/licensing-stuff/
 * <p/>
 * ModelBiped - Plenituz
 * Created using Tabula 4.1.1
 */
public class ModelBackpackStand extends ModelBiped {
    public static ModelBackpackStand INSTANCE = new ModelBackpackStand();
    public static ModelBackpackStand INSTANCE2 = new ModelBackpackStand();
    private final ResourceLocation TEXTURE = new ResourceLocation("bcadditions",
            "textures/models/Stand-texture.png");
    public ModelRenderer shape11;
    public ModelRenderer shape11_1;
    public ModelRenderer shape11_2;
    public ModelRenderer shape11_3;
    public ModelRenderer shape11_4;
    public ModelRenderer shape11_5;
    public ModelRenderer shape11_6;
    public ModelRenderer shape11_7;
    public ModelRenderer shape11_8;
    public ModelRenderer shape8;
    public ModelRenderer shape8_1;
    public ModelRenderer shape8_2;
    public ModelRenderer shape8_3;
    public ModelRenderer shape8_4;
    public ModelRenderer shape8_5;
    public ModelRenderer shape8_6;
    public ModelRenderer shape8_7;
    public ModelRenderer shape8_8;
    public ModelRenderer shape8_9;
    public ModelRenderer shape8_10;
    public ModelRenderer shape8_11;
    public ModelRenderer shape8_12;
    public ModelRenderer shape8_13;
    public ModelRenderer shape8_14;
    public ModelRenderer shape8_15;
    public ModelRenderer shape8_16;
    public ModelRenderer shape8_17;
    public ModelRenderer shape8_18;
    public ModelRenderer shape8_19;
    public ModelRenderer shape8_20;
    public ModelRenderer shape8_21;
    public ModelRenderer shape8_22;
    public ModelRenderer shape8_23;
    public ModelRenderer shape8_24;
    public ModelRenderer shape8_25;
    public ModelRenderer shape11_9;
    public ModelRenderer shape11_10;
    public ModelRenderer shape11_11;
    public ModelRenderer shape11_12;
    public ModelRenderer shape11_13;
    public ModelRenderer shape11_14;
    public ModelRenderer shape11_15;
    public ModelRenderer shape11_16;

    public ModelBackpackStand() {
        this.textureWidth = 128;
        this.textureHeight = 64;
        this.shape11 = new ModelRenderer(this, 0, 36);
        this.shape11.setRotationPoint(-5.0F, 10.3F, -0.4F);
        this.shape11.addBox(0.0F, 0.0F, 0.0F, 10, 1, 1, 0.0F);
        this.shape11_8 = new ModelRenderer(this, 6, 47);
        this.shape11_8.setRotationPoint(3.0F, 8.1F, -0.4F);
        this.shape11_8.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F);
        this.shape8_18 = new ModelRenderer(this, 7, 0);
        this.shape8_18.setRotationPoint(-3.0F, 11.7F, -2.2F);
        this.shape8_18.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F);
        this.shape8_4 = new ModelRenderer(this, 7, 0);
        this.shape8_4.setRotationPoint(-1.3F, 13.1F, -2.2F);
        this.shape8_4.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F);
        this.shape8_23 = new ModelRenderer(this, 7, 0);
        this.shape8_23.setRotationPoint(2.7F, 11.7F, -2.2F);
        this.shape8_23.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F);
        this.shape11_9 = new ModelRenderer(this, 38, 3);
        this.shape11_9.setRotationPoint(-3.8F, 11.3F, -0.4F);
        this.shape11_9.addBox(0.0F, 0.0F, 0.0F, 1, 3, 1, 0.0F);
        this.shape8_5 = new ModelRenderer(this, 7, 0);
        this.shape8_5.setRotationPoint(-1.3F, 14.8F, -2.2F);
        this.shape8_5.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F);
        this.shape8_15 = new ModelRenderer(this, 7, 0);
        this.shape8_15.setRotationPoint(-3.0F, 10.0F, -2.2F);
        this.shape8_15.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F);
        this.shape11_13 = new ModelRenderer(this, 25, 0);
        this.shape11_13.setRotationPoint(-1.0F, 11.3F, -0.4F);
        this.shape11_13.addBox(0.0F, 0.0F, 0.0F, 2, 13, 1, 0.0F);
        this.shape11_2 = new ModelRenderer(this, 18, 39);
        this.shape11_2.setRotationPoint(0.0F, -0.2F, 0.0F);
        this.shape11_2.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F);
        this.shape8_16 = new ModelRenderer(this, 7, 0);
        this.shape8_16.setRotationPoint(-1.3F, 10.0F, -2.2F);
        this.shape8_16.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F);
        this.shape8_17 = new ModelRenderer(this, 7, 0);
        this.shape8_17.setRotationPoint(-1.3F, 11.7F, -2.2F);
        this.shape8_17.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F);
        this.shape8_9 = new ModelRenderer(this, 7, 0);
        this.shape8_9.setRotationPoint(1.0F, 13.1F, -2.2F);
        this.shape8_9.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F);
        this.shape11_10 = new ModelRenderer(this, 32, 10);
        this.shape11_10.setRotationPoint(-3.2F, 13.5F, -0.39F);
        this.shape11_10.addBox(0.0F, -0.1F, 0.0F, 5, 1, 1, 0.0F);
        this.setRotateAngle(shape11_10, 0.0F, 0.0F, 0.8651597102135892F);
        this.shape11_7 = new ModelRenderer(this, 0, 43);
        this.shape11_7.setRotationPoint(3.0F, 9.1F, -0.4F);
        this.shape11_7.addBox(0.0F, 0.0F, 0.0F, 3, 1, 1, 0.0F);
        this.shape8_19 = new ModelRenderer(this, 53, 0);
        this.shape8_19.setRotationPoint(-2.5F, 10.3F, -1.4F);
        this.shape8_19.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F);
        this.shape8_2 = new ModelRenderer(this, 0, 0);
        this.shape8_2.setRotationPoint(-3.0F, 13.1F, -1.9F);
        this.shape8_2.addBox(0.0F, 0.0F, 0.0F, 2, 2, 1, 0.0F);
        this.shape8_10 = new ModelRenderer(this, 7, 0);
        this.shape8_10.setRotationPoint(2.7F, 13.1F, -2.2F);
        this.shape8_10.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F);
        this.shape8_13 = new ModelRenderer(this, 53, 8);
        this.shape8_13.setRotationPoint(1.5F, 13.4F, -1.4F);
        this.shape8_13.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F);
        this.shape11_14 = new ModelRenderer(this, 27, 15);
        this.shape11_14.setRotationPoint(4.6F, 23.0F, -6.0F);
        this.shape11_14.addBox(0.0F, 0.0F, 0.0F, 1, 1, 12, 0.0F);
        this.shape8_11 = new ModelRenderer(this, 7, 0);
        this.shape8_11.setRotationPoint(2.7F, 14.8F, -2.2F);
        this.shape8_11.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F);
        this.shape8_12 = new ModelRenderer(this, 7, 0);
        this.shape8_12.setRotationPoint(1.0F, 14.8F, -2.2F);
        this.shape8_12.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F);
        this.shape8_22 = new ModelRenderer(this, 7, 0);
        this.shape8_22.setRotationPoint(2.7F, 10.0F, -2.2F);
        this.shape8_22.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F);
        this.shape8_14 = new ModelRenderer(this, 0, 0);
        this.shape8_14.setRotationPoint(-3.0F, 10.0F, -1.9F);
        this.shape8_14.addBox(0.0F, 0.0F, 0.0F, 2, 2, 1, 0.0F);
        this.shape11_4 = new ModelRenderer(this, 20, 47);
        this.shape11_4.setRotationPoint(-6.0F, 8.1F, -0.4F);
        this.shape11_4.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F);
        this.shape11_6 = new ModelRenderer(this, 0, 47);
        this.shape11_6.setRotationPoint(5.3F, 8.1F, -0.4F);
        this.shape11_6.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F);
        this.shape8_3 = new ModelRenderer(this, 7, 0);
        this.shape8_3.setRotationPoint(-3.0F, 13.1F, -2.2F);
        this.shape8_3.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F);
        this.shape11_12 = new ModelRenderer(this, 32, 7);
        this.shape11_12.setRotationPoint(3.73F, 13.96F, -0.39F);
        this.shape11_12.addBox(0.0F, -0.1F, 0.0F, 5, 1, 1, 0.0F);
        this.setRotateAngle(shape11_12, 0.0F, 0.0F, 2.276432943376204F);
        this.shape8_1 = new ModelRenderer(this, 53, 3);
        this.shape8_1.setRotationPoint(1.5F, 11.3F, -1.0F);
        this.shape8_1.addBox(0.0F, 0.0F, 0.0F, 1, 3, 1, 0.0F);
        this.shape8_24 = new ModelRenderer(this, 7, 0);
        this.shape8_24.setRotationPoint(1.0F, 11.7F, -2.2F);
        this.shape8_24.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F);
        this.shape11_5 = new ModelRenderer(this, 14, 43);
        this.shape11_5.setRotationPoint(-6.0F, 9.1F, -0.4F);
        this.shape11_5.addBox(0.0F, 0.0F, 0.0F, 3, 1, 1, 0.0F);
        this.shape11_11 = new ModelRenderer(this, 33, 3);
        this.shape11_11.setRotationPoint(2.8F, 11.3F, -0.4F);
        this.shape11_11.addBox(0.0F, 0.0F, 0.0F, 1, 3, 1, 0.0F);
        this.shape8_25 = new ModelRenderer(this, 48, 0);
        this.shape8_25.setRotationPoint(1.5F, 10.3F, -1.4F);
        this.shape8_25.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F);
        this.shape8_7 = new ModelRenderer(this, 48, 8);
        this.shape8_7.setRotationPoint(-2.5F, 13.4F, -1.5F);
        this.shape8_7.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F);
        this.shape8 = new ModelRenderer(this, 48, 3);
        this.shape8.setRotationPoint(-2.5F, 11.3F, -1.1F);
        this.shape8.addBox(0.0F, 0.0F, 0.0F, 1, 3, 1, 0.0F);
        this.shape11_16 = new ModelRenderer(this, 0, 15);
        this.shape11_16.setRotationPoint(-6.0F, 23.0F, -6.0F);
        this.shape11_16.addBox(0.0F, 0.0F, 0.0F, 1, 1, 12, 0.0F);
        this.shape11_15 = new ModelRenderer(this, 0, 29);
        this.shape11_15.setRotationPoint(-4.6F, 23.0F, -0.9F);
        this.shape11_15.addBox(0.0F, 0.0F, 0.0F, 9, 1, 2, 0.0F);
        this.shape8_6 = new ModelRenderer(this, 7, 0);
        this.shape8_6.setRotationPoint(-3.0F, 14.8F, -2.2F);
        this.shape8_6.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F);
        this.shape8_20 = new ModelRenderer(this, 0, 0);
        this.shape8_20.setRotationPoint(1.0F, 10.0F, -1.9F);
        this.shape8_20.addBox(0.0F, 0.0F, 0.0F, 2, 2, 1, 0.0F);
        this.shape11_3 = new ModelRenderer(this, 14, 47);
        this.shape11_3.setRotationPoint(-3.7F, 8.1F, -0.4F);
        this.shape11_3.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F);
        this.shape8_8 = new ModelRenderer(this, 0, 0);
        this.shape8_8.setRotationPoint(1.0F, 13.1F, -1.9F);
        this.shape8_8.addBox(0.0F, 0.0F, 0.0F, 2, 2, 1, 0.0F);
        this.shape8_21 = new ModelRenderer(this, 7, 0);
        this.shape8_21.setRotationPoint(1.0F, 10.0F, -2.2F);
        this.shape8_21.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F);
        this.shape11_1 = new ModelRenderer(this, 0, 39);
        this.shape11_1.setRotationPoint(9.0F, -0.2F, 0.0F);
        this.shape11_1.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F);
        this.shape11.addChild(this.shape11_2);
        this.shape11.addChild(this.shape11_1);
    }

    @Override
    public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) {
        FMLClientHandler.instance().getClient().getTextureManager().bindTexture(TEXTURE);
        this.shape11.render(f5);
        GL11.glPushMatrix();
        GL11.glTranslatef(this.shape11_8.offsetX, this.shape11_8.offsetY, this.shape11_8.offsetZ);
        GL11.glTranslatef(this.shape11_8.rotationPointX * f5, this.shape11_8.rotationPointY * f5,
                this.shape11_8.rotationPointZ * f5);
        GL11.glScaled(0.7D, 1.0D, 1.0D);
        GL11.glTranslatef(-this.shape11_8.offsetX, -this.shape11_8.offsetY, -this.shape11_8.offsetZ);
        GL11.glTranslatef(-this.shape11_8.rotationPointX * f5, -this.shape11_8.rotationPointY * f5,
                -this.shape11_8.rotationPointZ * f5);
        this.shape11_8.render(f5);
        GL11.glPopMatrix();
        GL11.glPushMatrix();
        GL11.glTranslatef(this.shape8_18.offsetX, this.shape8_18.offsetY, this.shape8_18.offsetZ);
        GL11.glTranslatef(this.shape8_18.rotationPointX * f5, this.shape8_18.rotationPointY * f5,
                this.shape8_18.rotationPointZ * f5);
        GL11.glScaled(0.3D, 0.3D, 0.3D);
        GL11.glTranslatef(-this.shape8_18.offsetX, -this.shape8_18.offsetY, -this.shape8_18.offsetZ);
        GL11.glTranslatef(-this.shape8_18.rotationPointX * f5, -this.shape8_18.rotationPointY * f5,
                -this.shape8_18.rotationPointZ * f5);
        this.shape8_18.render(f5);
        GL11.glPopMatrix();
        GL11.glPushMatrix();
        GL11.glTranslatef(this.shape8_4.offsetX, this.shape8_4.offsetY, this.shape8_4.offsetZ);
        GL11.glTranslatef(this.shape8_4.rotationPointX * f5, this.shape8_4.rotationPointY * f5,
                this.shape8_4.rotationPointZ * f5);
        GL11.glScaled(0.3D, 0.3D, 0.3D);
        GL11.glTranslatef(-this.shape8_4.offsetX, -this.shape8_4.offsetY, -this.shape8_4.offsetZ);
        GL11.glTranslatef(-this.shape8_4.rotationPointX * f5, -this.shape8_4.rotationPointY * f5,
                -this.shape8_4.rotationPointZ * f5);
        this.shape8_4.render(f5);
        GL11.glPopMatrix();
        GL11.glPushMatrix();
        GL11.glTranslatef(this.shape8_23.offsetX, this.shape8_23.offsetY, this.shape8_23.offsetZ);
        GL11.glTranslatef(this.shape8_23.rotationPointX * f5, this.shape8_23.rotationPointY * f5,
                this.shape8_23.rotationPointZ * f5);
        GL11.glScaled(0.3D, 0.3D, 0.3D);
        GL11.glTranslatef(-this.shape8_23.offsetX, -this.shape8_23.offsetY, -this.shape8_23.offsetZ);
        GL11.glTranslatef(-this.shape8_23.rotationPointX * f5, -this.shape8_23.rotationPointY * f5,
                -this.shape8_23.rotationPointZ * f5);
        this.shape8_23.render(f5);
        GL11.glPopMatrix();
        GL11.glPushMatrix();
        GL11.glTranslatef(this.shape11_9.offsetX, this.shape11_9.offsetY, this.shape11_9.offsetZ);
        GL11.glTranslatef(this.shape11_9.rotationPointX * f5, this.shape11_9.rotationPointY * f5,
                this.shape11_9.rotationPointZ * f5);
        GL11.glScaled(1.0D, 0.9D, 1.0D);
        GL11.glTranslatef(-this.shape11_9.offsetX, -this.shape11_9.offsetY, -this.shape11_9.offsetZ);
        GL11.glTranslatef(-this.shape11_9.rotationPointX * f5, -this.shape11_9.rotationPointY * f5,
                -this.shape11_9.rotationPointZ * f5);
        this.shape11_9.render(f5);
        GL11.glPopMatrix();
        GL11.glPushMatrix();
        GL11.glTranslatef(this.shape8_5.offsetX, this.shape8_5.offsetY, this.shape8_5.offsetZ);
        GL11.glTranslatef(this.shape8_5.rotationPointX * f5, this.shape8_5.rotationPointY * f5,
                this.shape8_5.rotationPointZ * f5);
        GL11.glScaled(0.3D, 0.3D, 0.3D);
        GL11.glTranslatef(-this.shape8_5.offsetX, -this.shape8_5.offsetY, -this.shape8_5.offsetZ);
        GL11.glTranslatef(-this.shape8_5.rotationPointX * f5, -this.shape8_5.rotationPointY * f5,
                -this.shape8_5.rotationPointZ * f5);
        this.shape8_5.render(f5);
        GL11.glPopMatrix();
        GL11.glPushMatrix();
        GL11.glTranslatef(this.shape8_15.offsetX, this.shape8_15.offsetY, this.shape8_15.offsetZ);
        GL11.glTranslatef(this.shape8_15.rotationPointX * f5, this.shape8_15.rotationPointY * f5,
                this.shape8_15.rotationPointZ * f5);
        GL11.glScaled(0.3D, 0.3D, 0.3D);
        GL11.glTranslatef(-this.shape8_15.offsetX, -this.shape8_15.offsetY, -this.shape8_15.offsetZ);
        GL11.glTranslatef(-this.shape8_15.rotationPointX * f5, -this.shape8_15.rotationPointY * f5,
                -this.shape8_15.rotationPointZ * f5);
        this.shape8_15.render(f5);
        GL11.glPopMatrix();
        GL11.glPushMatrix();
        GL11.glTranslatef(this.shape11_13.offsetX, this.shape11_13.offsetY, this.shape11_13.offsetZ);
        GL11.glTranslatef(this.shape11_13.rotationPointX * f5, this.shape11_13.rotationPointY * f5,
                this.shape11_13.rotationPointZ * f5);
        GL11.glScaled(1.0D, 0.9D, 1.0D);
        GL11.glTranslatef(-this.shape11_13.offsetX, -this.shape11_13.offsetY, -this.shape11_13.offsetZ);
        GL11.glTranslatef(-this.shape11_13.rotationPointX * f5, -this.shape11_13.rotationPointY * f5,
                -this.shape11_13.rotationPointZ * f5);
        this.shape11_13.render(f5);
        GL11.glPopMatrix();
        GL11.glPushMatrix();
        GL11.glTranslatef(this.shape8_16.offsetX, this.shape8_16.offsetY, this.shape8_16.offsetZ);
        GL11.glTranslatef(this.shape8_16.rotationPointX * f5, this.shape8_16.rotationPointY * f5,
                this.shape8_16.rotationPointZ * f5);
        GL11.glScaled(0.3D, 0.3D, 0.3D);
        GL11.glTranslatef(-this.shape8_16.offsetX, -this.shape8_16.offsetY, -this.shape8_16.offsetZ);
        GL11.glTranslatef(-this.shape8_16.rotationPointX * f5, -this.shape8_16.rotationPointY * f5,
                -this.shape8_16.rotationPointZ * f5);
        this.shape8_16.render(f5);
        GL11.glPopMatrix();
        GL11.glPushMatrix();
        GL11.glTranslatef(this.shape8_17.offsetX, this.shape8_17.offsetY, this.shape8_17.offsetZ);
        GL11.glTranslatef(this.shape8_17.rotationPointX * f5, this.shape8_17.rotationPointY * f5,
                this.shape8_17.rotationPointZ * f5);
        GL11.glScaled(0.3D, 0.3D, 0.3D);
        GL11.glTranslatef(-this.shape8_17.offsetX, -this.shape8_17.offsetY, -this.shape8_17.offsetZ);
        GL11.glTranslatef(-this.shape8_17.rotationPointX * f5, -this.shape8_17.rotationPointY * f5,
                -this.shape8_17.rotationPointZ * f5);
        this.shape8_17.render(f5);
        GL11.glPopMatrix();
        GL11.glPushMatrix();
        GL11.glTranslatef(this.shape8_9.offsetX, this.shape8_9.offsetY, this.shape8_9.offsetZ);
        GL11.glTranslatef(this.shape8_9.rotationPointX * f5, this.shape8_9.rotationPointY * f5,
                this.shape8_9.rotationPointZ * f5);
        GL11.glScaled(0.3D, 0.3D, 0.3D);
        GL11.glTranslatef(-this.shape8_9.offsetX, -this.shape8_9.offsetY, -this.shape8_9.offsetZ);
        GL11.glTranslatef(-this.shape8_9.rotationPointX * f5, -this.shape8_9.rotationPointY * f5,
                -this.shape8_9.rotationPointZ * f5);
        this.shape8_9.render(f5);
        GL11.glPopMatrix();
        GL11.glPushMatrix();
        GL11.glTranslatef(this.shape11_10.offsetX, this.shape11_10.offsetY, this.shape11_10.offsetZ);
        GL11.glTranslatef(this.shape11_10.rotationPointX * f5, this.shape11_10.rotationPointY * f5,
                this.shape11_10.rotationPointZ * f5);
        GL11.glScaled(0.88D, 0.9D, 0.98D);
        GL11.glTranslatef(-this.shape11_10.offsetX, -this.shape11_10.offsetY, -this.shape11_10.offsetZ);
        GL11.glTranslatef(-this.shape11_10.rotationPointX * f5, -this.shape11_10.rotationPointY * f5,
                -this.shape11_10.rotationPointZ * f5);
        this.shape11_10.render(f5);
        GL11.glPopMatrix();
        this.shape11_7.render(f5);
        this.shape8_19.render(f5);
        GL11.glPushMatrix();
        GL11.glTranslatef(this.shape8_2.offsetX, this.shape8_2.offsetY, this.shape8_2.offsetZ);
        GL11.glTranslatef(this.shape8_2.rotationPointX * f5, this.shape8_2.rotationPointY * f5,
                this.shape8_2.rotationPointZ * f5);
        GL11.glScaled(1.0D, 1.0D, 0.5D);
        GL11.glTranslatef(-this.shape8_2.offsetX, -this.shape8_2.offsetY, -this.shape8_2.offsetZ);
        GL11.glTranslatef(-this.shape8_2.rotationPointX * f5, -this.shape8_2.rotationPointY * f5,
                -this.shape8_2.rotationPointZ * f5);
        this.shape8_2.render(f5);
        GL11.glPopMatrix();
        GL11.glPushMatrix();
        GL11.glTranslatef(this.shape8_10.offsetX, this.shape8_10.offsetY, this.shape8_10.offsetZ);
        GL11.glTranslatef(this.shape8_10.rotationPointX * f5, this.shape8_10.rotationPointY * f5,
                this.shape8_10.rotationPointZ * f5);
        GL11.glScaled(0.3D, 0.3D, 0.3D);
        GL11.glTranslatef(-this.shape8_10.offsetX, -this.shape8_10.offsetY, -this.shape8_10.offsetZ);
        GL11.glTranslatef(-this.shape8_10.rotationPointX * f5, -this.shape8_10.rotationPointY * f5,
                -this.shape8_10.rotationPointZ * f5);
        this.shape8_10.render(f5);
        GL11.glPopMatrix();
        GL11.glPushMatrix();
        GL11.glTranslatef(this.shape8_13.offsetX, this.shape8_13.offsetY, this.shape8_13.offsetZ);
        GL11.glTranslatef(this.shape8_13.rotationPointX * f5, this.shape8_13.rotationPointY * f5,
                this.shape8_13.rotationPointZ * f5);
        GL11.glScaled(1.0D, 0.9D, 1.0D);
        GL11.glTranslatef(-this.shape8_13.offsetX, -this.shape8_13.offsetY, -this.shape8_13.offsetZ);
        GL11.glTranslatef(-this.shape8_13.rotationPointX * f5, -this.shape8_13.rotationPointY * f5,
                -this.shape8_13.rotationPointZ * f5);
        this.shape8_13.render(f5);
        GL11.glPopMatrix();
        GL11.glPushMatrix();
        GL11.glTranslatef(this.shape11_14.offsetX, this.shape11_14.offsetY, this.shape11_14.offsetZ);
        GL11.glTranslatef(this.shape11_14.rotationPointX * f5, this.shape11_14.rotationPointY * f5,
                this.shape11_14.rotationPointZ * f5);
        GL11.glScaled(1.4D, 1.0D, 1.0D);
        GL11.glTranslatef(-this.shape11_14.offsetX, -this.shape11_14.offsetY, -this.shape11_14.offsetZ);
        GL11.glTranslatef(-this.shape11_14.rotationPointX * f5, -this.shape11_14.rotationPointY * f5,
                -this.shape11_14.rotationPointZ * f5);
        this.shape11_14.render(f5);
        GL11.glPopMatrix();
        GL11.glPushMatrix();
        GL11.glTranslatef(this.shape8_11.offsetX, this.shape8_11.offsetY, this.shape8_11.offsetZ);
        GL11.glTranslatef(this.shape8_11.rotationPointX * f5, this.shape8_11.rotationPointY * f5,
                this.shape8_11.rotationPointZ * f5);
        GL11.glScaled(0.3D, 0.3D, 0.3D);
        GL11.glTranslatef(-this.shape8_11.offsetX, -this.shape8_11.offsetY, -this.shape8_11.offsetZ);
        GL11.glTranslatef(-this.shape8_11.rotationPointX * f5, -this.shape8_11.rotationPointY * f5,
                -this.shape8_11.rotationPointZ * f5);
        this.shape8_11.render(f5);
        GL11.glPopMatrix();
        GL11.glPushMatrix();
        GL11.glTranslatef(this.shape8_12.offsetX, this.shape8_12.offsetY, this.shape8_12.offsetZ);
        GL11.glTranslatef(this.shape8_12.rotationPointX * f5, this.shape8_12.rotationPointY * f5,
                this.shape8_12.rotationPointZ * f5);
        GL11.glScaled(0.3D, 0.3D, 0.3D);
        GL11.glTranslatef(-this.shape8_12.offsetX, -this.shape8_12.offsetY, -this.shape8_12.offsetZ);
        GL11.glTranslatef(-this.shape8_12.rotationPointX * f5, -this.shape8_12.rotationPointY * f5,
                -this.shape8_12.rotationPointZ * f5);
        this.shape8_12.render(f5);
        GL11.glPopMatrix();
        GL11.glPushMatrix();
        GL11.glTranslatef(this.shape8_22.offsetX, this.shape8_22.offsetY, this.shape8_22.offsetZ);
        GL11.glTranslatef(this.shape8_22.rotationPointX * f5, this.shape8_22.rotationPointY * f5,
                this.shape8_22.rotationPointZ * f5);
        GL11.glScaled(0.3D, 0.3D, 0.3D);
        GL11.glTranslatef(-this.shape8_22.offsetX, -this.shape8_22.offsetY, -this.shape8_22.offsetZ);
        GL11.glTranslatef(-this.shape8_22.rotationPointX * f5, -this.shape8_22.rotationPointY * f5,
                -this.shape8_22.rotationPointZ * f5);
        this.shape8_22.render(f5);
        GL11.glPopMatrix();
        GL11.glPushMatrix();
        GL11.glTranslatef(this.shape8_14.offsetX, this.shape8_14.offsetY, this.shape8_14.offsetZ);
        GL11.glTranslatef(this.shape8_14.rotationPointX * f5, this.shape8_14.rotationPointY * f5,
                this.shape8_14.rotationPointZ * f5);
        GL11.glScaled(1.0D, 1.0D, 0.5D);
        GL11.glTranslatef(-this.shape8_14.offsetX, -this.shape8_14.offsetY, -this.shape8_14.offsetZ);
        GL11.glTranslatef(-this.shape8_14.rotationPointX * f5, -this.shape8_14.rotationPointY * f5,
                -this.shape8_14.rotationPointZ * f5);
        this.shape8_14.render(f5);
        GL11.glPopMatrix();
        GL11.glPushMatrix();
        GL11.glTranslatef(this.shape11_4.offsetX, this.shape11_4.offsetY, this.shape11_4.offsetZ);
        GL11.glTranslatef(this.shape11_4.rotationPointX * f5, this.shape11_4.rotationPointY * f5,
                this.shape11_4.rotationPointZ * f5);
        GL11.glScaled(0.7D, 1.0D, 1.0D);
        GL11.glTranslatef(-this.shape11_4.offsetX, -this.shape11_4.offsetY, -this.shape11_4.offsetZ);
        GL11.glTranslatef(-this.shape11_4.rotationPointX * f5, -this.shape11_4.rotationPointY * f5,
                -this.shape11_4.rotationPointZ * f5);
        this.shape11_4.render(f5);
        GL11.glPopMatrix();
        GL11.glPushMatrix();
        GL11.glTranslatef(this.shape11_6.offsetX, this.shape11_6.offsetY, this.shape11_6.offsetZ);
        GL11.glTranslatef(this.shape11_6.rotationPointX * f5, this.shape11_6.rotationPointY * f5,
                this.shape11_6.rotationPointZ * f5);
        GL11.glScaled(0.7D, 1.0D, 1.0D);
        GL11.glTranslatef(-this.shape11_6.offsetX, -this.shape11_6.offsetY, -this.shape11_6.offsetZ);
        GL11.glTranslatef(-this.shape11_6.rotationPointX * f5, -this.shape11_6.rotationPointY * f5,
                -this.shape11_6.rotationPointZ * f5);
        this.shape11_6.render(f5);
        GL11.glPopMatrix();
        GL11.glPushMatrix();
        GL11.glTranslatef(this.shape8_3.offsetX, this.shape8_3.offsetY, this.shape8_3.offsetZ);
        GL11.glTranslatef(this.shape8_3.rotationPointX * f5, this.shape8_3.rotationPointY * f5,
                this.shape8_3.rotationPointZ * f5);
        GL11.glScaled(0.3D, 0.3D, 0.3D);
        GL11.glTranslatef(-this.shape8_3.offsetX, -this.shape8_3.offsetY, -this.shape8_3.offsetZ);
        GL11.glTranslatef(-this.shape8_3.rotationPointX * f5, -this.shape8_3.rotationPointY * f5,
                -this.shape8_3.rotationPointZ * f5);
        this.shape8_3.render(f5);
        GL11.glPopMatrix();
        GL11.glPushMatrix();
        GL11.glTranslatef(this.shape11_12.offsetX, this.shape11_12.offsetY, this.shape11_12.offsetZ);
        GL11.glTranslatef(this.shape11_12.rotationPointX * f5, this.shape11_12.rotationPointY * f5,
                this.shape11_12.rotationPointZ * f5);
        GL11.glScaled(0.88D, 0.9D, 0.98D);
        GL11.glTranslatef(-this.shape11_12.offsetX, -this.shape11_12.offsetY, -this.shape11_12.offsetZ);
        GL11.glTranslatef(-this.shape11_12.rotationPointX * f5, -this.shape11_12.rotationPointY * f5,
                -this.shape11_12.rotationPointZ * f5);
        this.shape11_12.render(f5);
        GL11.glPopMatrix();
        GL11.glPushMatrix();
        GL11.glTranslatef(this.shape8_1.offsetX, this.shape8_1.offsetY, this.shape8_1.offsetZ);
        GL11.glTranslatef(this.shape8_1.rotationPointX * f5, this.shape8_1.rotationPointY * f5,
                this.shape8_1.rotationPointZ * f5);
        GL11.glScaled(1.0D, 1.0D, 0.6D);
        GL11.glTranslatef(-this.shape8_1.offsetX, -this.shape8_1.offsetY, -this.shape8_1.offsetZ);
        GL11.glTranslatef(-this.shape8_1.rotationPointX * f5, -this.shape8_1.rotationPointY * f5,
                -this.shape8_1.rotationPointZ * f5);
        this.shape8_1.render(f5);
        GL11.glPopMatrix();
        GL11.glPushMatrix();
        GL11.glTranslatef(this.shape8_24.offsetX, this.shape8_24.offsetY, this.shape8_24.offsetZ);
        GL11.glTranslatef(this.shape8_24.rotationPointX * f5, this.shape8_24.rotationPointY * f5,
                this.shape8_24.rotationPointZ * f5);
        GL11.glScaled(0.3D, 0.3D, 0.3D);
        GL11.glTranslatef(-this.shape8_24.offsetX, -this.shape8_24.offsetY, -this.shape8_24.offsetZ);
        GL11.glTranslatef(-this.shape8_24.rotationPointX * f5, -this.shape8_24.rotationPointY * f5,
                -this.shape8_24.rotationPointZ * f5);
        this.shape8_24.render(f5);
        GL11.glPopMatrix();
        this.shape11_5.render(f5);
        GL11.glPushMatrix();
        GL11.glTranslatef(this.shape11_11.offsetX, this.shape11_11.offsetY, this.shape11_11.offsetZ);
        GL11.glTranslatef(this.shape11_11.rotationPointX * f5, this.shape11_11.rotationPointY * f5,
                this.shape11_11.rotationPointZ * f5);
        GL11.glScaled(1.0D, 0.9D, 1.0D);
        GL11.glTranslatef(-this.shape11_11.offsetX, -this.shape11_11.offsetY, -this.shape11_11.offsetZ);
        GL11.glTranslatef(-this.shape11_11.rotationPointX * f5, -this.shape11_11.rotationPointY * f5,
                -this.shape11_11.rotationPointZ * f5);
        this.shape11_11.render(f5);
        GL11.glPopMatrix();
        this.shape8_25.render(f5);
        GL11.glPushMatrix();
        GL11.glTranslatef(this.shape8_7.offsetX, this.shape8_7.offsetY, this.shape8_7.offsetZ);
        GL11.glTranslatef(this.shape8_7.rotationPointX * f5, this.shape8_7.rotationPointY * f5,
                this.shape8_7.rotationPointZ * f5);
        GL11.glScaled(1.0D, 0.9D, 1.0D);
        GL11.glTranslatef(-this.shape8_7.offsetX, -this.shape8_7.offsetY, -this.shape8_7.offsetZ);
        GL11.glTranslatef(-this.shape8_7.rotationPointX * f5, -this.shape8_7.rotationPointY * f5,
                -this.shape8_7.rotationPointZ * f5);
        this.shape8_7.render(f5);
        GL11.glPopMatrix();
        GL11.glPushMatrix();
        GL11.glTranslatef(this.shape8.offsetX, this.shape8.offsetY, this.shape8.offsetZ);
        GL11.glTranslatef(this.shape8.rotationPointX * f5, this.shape8.rotationPointY * f5,
                this.shape8.rotationPointZ * f5);
        GL11.glScaled(1.0D, 1.0D, 0.6D);
        GL11.glTranslatef(-this.shape8.offsetX, -this.shape8.offsetY, -this.shape8.offsetZ);
        GL11.glTranslatef(-this.shape8.rotationPointX * f5, -this.shape8.rotationPointY * f5,
                -this.shape8.rotationPointZ * f5);
        this.shape8.render(f5);
        GL11.glPopMatrix();
        GL11.glPushMatrix();
        GL11.glTranslatef(this.shape11_16.offsetX, this.shape11_16.offsetY, this.shape11_16.offsetZ);
        GL11.glTranslatef(this.shape11_16.rotationPointX * f5, this.shape11_16.rotationPointY * f5,
                this.shape11_16.rotationPointZ * f5);
        GL11.glScaled(1.4D, 1.0D, 1.0D);
        GL11.glTranslatef(-this.shape11_16.offsetX, -this.shape11_16.offsetY, -this.shape11_16.offsetZ);
        GL11.glTranslatef(-this.shape11_16.rotationPointX * f5, -this.shape11_16.rotationPointY * f5,
                -this.shape11_16.rotationPointZ * f5);
        this.shape11_16.render(f5);
        GL11.glPopMatrix();
        GL11.glPushMatrix();
        GL11.glTranslatef(this.shape11_15.offsetX, this.shape11_15.offsetY, this.shape11_15.offsetZ);
        GL11.glTranslatef(this.shape11_15.rotationPointX * f5, this.shape11_15.rotationPointY * f5,
                this.shape11_15.rotationPointZ * f5);
        GL11.glScaled(1.02D, 0.7D, 1.0D);
        GL11.glTranslatef(-this.shape11_15.offsetX, -this.shape11_15.offsetY, -this.shape11_15.offsetZ);
        GL11.glTranslatef(-this.shape11_15.rotationPointX * f5, -this.shape11_15.rotationPointY * f5,
                -this.shape11_15.rotationPointZ * f5);
        this.shape11_15.render(f5);
        GL11.glPopMatrix();
        GL11.glPushMatrix();
        GL11.glTranslatef(this.shape8_6.offsetX, this.shape8_6.offsetY, this.shape8_6.offsetZ);
        GL11.glTranslatef(this.shape8_6.rotationPointX * f5, this.shape8_6.rotationPointY * f5,
                this.shape8_6.rotationPointZ * f5);
        GL11.glScaled(0.3D, 0.3D, 0.3D);
        GL11.glTranslatef(-this.shape8_6.offsetX, -this.shape8_6.offsetY, -this.shape8_6.offsetZ);
        GL11.glTranslatef(-this.shape8_6.rotationPointX * f5, -this.shape8_6.rotationPointY * f5,
                -this.shape8_6.rotationPointZ * f5);
        this.shape8_6.render(f5);
        GL11.glPopMatrix();
        GL11.glPushMatrix();
        GL11.glTranslatef(this.shape8_20.offsetX, this.shape8_20.offsetY, this.shape8_20.offsetZ);
        GL11.glTranslatef(this.shape8_20.rotationPointX * f5, this.shape8_20.rotationPointY * f5,
                this.shape8_20.rotationPointZ * f5);
        GL11.glScaled(1.0D, 1.0D, 0.5D);
        GL11.glTranslatef(-this.shape8_20.offsetX, -this.shape8_20.offsetY, -this.shape8_20.offsetZ);
        GL11.glTranslatef(-this.shape8_20.rotationPointX * f5, -this.shape8_20.rotationPointY * f5,
                -this.shape8_20.rotationPointZ * f5);
        this.shape8_20.render(f5);
        GL11.glPopMatrix();
        GL11.glPushMatrix();
        GL11.glTranslatef(this.shape11_3.offsetX, this.shape11_3.offsetY, this.shape11_3.offsetZ);
        GL11.glTranslatef(this.shape11_3.rotationPointX * f5, this.shape11_3.rotationPointY * f5,
                this.shape11_3.rotationPointZ * f5);
        GL11.glScaled(0.7D, 1.0D, 1.0D);
        GL11.glTranslatef(-this.shape11_3.offsetX, -this.shape11_3.offsetY, -this.shape11_3.offsetZ);
        GL11.glTranslatef(-this.shape11_3.rotationPointX * f5, -this.shape11_3.rotationPointY * f5,
                -this.shape11_3.rotationPointZ * f5);
        this.shape11_3.render(f5);
        GL11.glPopMatrix();
        GL11.glPushMatrix();
        GL11.glTranslatef(this.shape8_8.offsetX, this.shape8_8.offsetY, this.shape8_8.offsetZ);
        GL11.glTranslatef(this.shape8_8.rotationPointX * f5, this.shape8_8.rotationPointY * f5,
                this.shape8_8.rotationPointZ * f5);
        GL11.glScaled(1.0D, 1.0D, 0.5D);
        GL11.glTranslatef(-this.shape8_8.offsetX, -this.shape8_8.offsetY, -this.shape8_8.offsetZ);
        GL11.glTranslatef(-this.shape8_8.rotationPointX * f5, -this.shape8_8.rotationPointY * f5,
                -this.shape8_8.rotationPointZ * f5);
        this.shape8_8.render(f5);
        GL11.glPopMatrix();
        GL11.glPushMatrix();
        GL11.glTranslatef(this.shape8_21.offsetX, this.shape8_21.offsetY, this.shape8_21.offsetZ);
        GL11.glTranslatef(this.shape8_21.rotationPointX * f5, this.shape8_21.rotationPointY * f5,
                this.shape8_21.rotationPointZ * f5);
        GL11.glScaled(0.3D, 0.3D, 0.3D);
        GL11.glTranslatef(-this.shape8_21.offsetX, -this.shape8_21.offsetY, -this.shape8_21.offsetZ);
        GL11.glTranslatef(-this.shape8_21.rotationPointX * f5, -this.shape8_21.rotationPointY * f5,
                -this.shape8_21.rotationPointZ * f5);
        this.shape8_21.render(f5);
        GL11.glPopMatrix();
    }

    /**
     * This is a helper function from Tabula to set the rotation of model parts
     */
    public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) {
        modelRenderer.rotateAngleX = x;
        modelRenderer.rotateAngleY = y;
        modelRenderer.rotateAngleZ = z;
    }
}