// Date: 19.11.2015 19:24:22
// Template version 1.1
// Java generated by Techne
// Keep in mind that you still need to fill in some blanks
// - ZeuX

package com.hbm.render.model;

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

public class ModelGun extends ModelBase {

	ModelRenderer Shape1;
	ModelRenderer Shape2;
	ModelRenderer Shape3;
	ModelRenderer Shape4;
	ModelRenderer Shape5;
	ModelRenderer Shape6;
	ModelRenderer Shape7;
	ModelRenderer Shape8;
	ModelRenderer Shape9;
	ModelRenderer Shape10;
	ModelRenderer Shape11;
	ModelRenderer Shape12;
	ModelRenderer Shape13;
	ModelRenderer Shape14;
	ModelRenderer Shape15;
	ModelRenderer Shape16;

	public ModelGun() {
		this.textureWidth = 64;
		this.textureHeight = 64;

		this.Shape1 = new ModelRenderer(this, 0, 0);
		this.Shape1.addBox(0F, 0F, 0F, 6, 12, 4);
		this.Shape1.setRotationPoint(0F, -4F, -1F);
		this.Shape1.setTextureSize(64, 32);
		this.Shape1.mirror = true;
		setRotation(this.Shape1, 0F, 0F, 0F);
		this.Shape2 = new ModelRenderer(this, 52, 0);
		this.Shape2.addBox(0F, 0F, 0F, 3, 3, 3);
		this.Shape2.setRotationPoint(4F, -7F, -0.5F);
		this.Shape2.setTextureSize(64, 32);
		this.Shape2.mirror = true;
		setRotation(this.Shape2, 0F, 0F, 0F);
		this.Shape3 = new ModelRenderer(this, 28, 58);
		this.Shape3.addBox(0F, 0F, 0F, 15, 3, 3);
		this.Shape3.setRotationPoint(-15F, -7F, -0.5F);
		this.Shape3.setTextureSize(64, 32);
		this.Shape3.mirror = true;
		setRotation(this.Shape3, 0F, 0F, 0F);
		this.Shape4 = new ModelRenderer(this, 0, 61);
		this.Shape4.addBox(0F, 0F, 0F, 1, 2, 1);
		this.Shape4.setRotationPoint(2F, -3F, 0.5F);
		this.Shape4.setTextureSize(64, 32);
		this.Shape4.mirror = true;
		setRotation(this.Shape4, 0F, 0F, 0.715585F);
		this.Shape5 = new ModelRenderer(this, 0, 57);
		this.Shape5.addBox(0F, 0F, 0F, 2, 2, 1);
		this.Shape5.setRotationPoint(-13.5F, -8F, 0.5F);
		this.Shape5.setTextureSize(64, 32);
		this.Shape5.mirror = true;
		setRotation(this.Shape5, 0F, 0F, 0.6108652F);
		this.Shape6 = new ModelRenderer(this, 52, 7);
		this.Shape6.addBox(0F, 0F, 0F, 4, 3, 2);
		this.Shape6.setRotationPoint(0F, -6.5F, 0F);
		this.Shape6.setTextureSize(64, 64);
		this.Shape6.mirror = true;
		setRotation(this.Shape6, 0F, 0F, 0F);
		this.Shape7 = new ModelRenderer(this, 46, 49);
		this.Shape7.addBox(0F, 0F, 0F, 6, 5, 3);
		this.Shape7.setRotationPoint(-15F, -3F, -0.5F);
		this.Shape7.setTextureSize(64, 64);
		this.Shape7.mirror = true;
		setRotation(this.Shape7, 0F, 0F, 0F);
		this.Shape8 = new ModelRenderer(this, 22, 0);
		this.Shape8.addBox(0F, 0F, 0F, 12, 1, 2);
		this.Shape8.setRotationPoint(-15F, -4F, 0F);
		this.Shape8.setTextureSize(64, 64);
		this.Shape8.mirror = true;
		setRotation(this.Shape8, 0F, 0F, 0F);
		this.Shape9 = new ModelRenderer(this, 52, 13);
		this.Shape9.addBox(0F, 0F, 0F, 3, 3, 3);
		this.Shape9.setRotationPoint(-3F, -4F, -0.5F);
		this.Shape9.setTextureSize(64, 64);
		this.Shape9.mirror = true;
		setRotation(this.Shape9, 0F, 0F, 0F);
		this.Shape10 = new ModelRenderer(this, 11, 60);
		this.Shape10.addBox(0F, 0F, 0F, 6, 2, 2);
		this.Shape10.setRotationPoint(-9F, -3F, 0F);
		this.Shape10.setTextureSize(64, 64);
		this.Shape10.mirror = true;
		setRotation(this.Shape10, 0F, 0F, 0F);
		this.Shape11 = new ModelRenderer(this, 35, 50);
		this.Shape11.addBox(0F, 0F, 0F, 2, 4, 3);
		this.Shape11.setRotationPoint(-9F, -1F, -0.5F);
		this.Shape11.setTextureSize(64, 64);
		this.Shape11.mirror = true;
		setRotation(this.Shape11, 0F, 0F, 0F);
		this.Shape12 = new ModelRenderer(this, 12, 57);
		this.Shape12.addBox(0F, 0F, 0F, 7, 1, 1);
		this.Shape12.setRotationPoint(-7F, 2F, 0.5F);
		this.Shape12.setTextureSize(64, 64);
		this.Shape12.mirror = true;
		setRotation(this.Shape12, 0F, 0F, 0F);
		this.Shape13 = new ModelRenderer(this, 0, 51);
		this.Shape13.addBox(0F, 0F, 0F, 4, 1, 4);
		this.Shape13.setRotationPoint(0F, -5F, -1F);
		this.Shape13.setTextureSize(64, 64);
		this.Shape13.mirror = true;
		setRotation(this.Shape13, 0F, 0F, 0F);
		this.Shape14 = new ModelRenderer(this, 0, 43);
		this.Shape14.addBox(0F, 0F, 0F, 3, 5, 2);
		this.Shape14.setRotationPoint(7F, -7F, 0F);
		this.Shape14.setTextureSize(64, 64);
		this.Shape14.mirror = true;
		setRotation(this.Shape14, 0F, 0F, 0.7853982F);
		//Shape15.mirror = true;
		this.Shape15 = new ModelRenderer(this, 0, 38);
		this.Shape15.addBox(0F, 0F, 0F, 3, 1, 3);
		this.Shape15.setRotationPoint(-9F, 3F, -0.5F);
		this.Shape15.setTextureSize(64, 64);
		this.Shape15.mirror = true;
		setRotation(this.Shape15, 0F, 0F, -2.792527F);
		this.Shape15.mirror = false;
		this.Shape16 = new ModelRenderer(this, 0, 17);
		this.Shape16.addBox(0F, 0F, 0F, 2, 3, 1);
		this.Shape16.setRotationPoint(-1F, -2F, 0.5F);
		this.Shape16.setTextureSize(64, 64);
		this.Shape16.mirror = true;
		setRotation(this.Shape16, 0F, 0F, 0.2617994F);
	}

	@Override
	public void render(Entity entity, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch, float scaleFactor) {

		this.renderModel(scaleFactor);
	}

	public void renderModel(float scaleFactor) {

		this.Shape1.render(scaleFactor);
		this.Shape2.render(scaleFactor);
		this.Shape3.render(scaleFactor);
		this.Shape4.render(scaleFactor);
		this.Shape5.render(scaleFactor);
		this.Shape6.render(scaleFactor);
		this.Shape7.render(scaleFactor);
		this.Shape8.render(scaleFactor);
		this.Shape9.render(scaleFactor);
		this.Shape10.render(scaleFactor);
		this.Shape11.render(scaleFactor);
		this.Shape12.render(scaleFactor);
		this.Shape13.render(scaleFactor);
		this.Shape14.render(scaleFactor);
		this.Shape15.render(scaleFactor);
		this.Shape16.render(scaleFactor);
	}

	private static void setRotation(ModelRenderer model, float x, float y, float z) {

		model.rotateAngleX = x;
		model.rotateAngleY = y;
		model.rotateAngleZ = z;
	}
}
