// Date: 07.11.2016 21:36:37
// 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 ModelEMPRay extends ModelBase
{
  //fields
    ModelRenderer Body;
    ModelRenderer BodyConnector;
    ModelRenderer BodyFront;
    ModelRenderer BodyPlateLeft;
    ModelRenderer BodyPlateRight;
    ModelRenderer BodyPlateBottom;
    ModelRenderer Rib1;
    ModelRenderer Rib2;
    ModelRenderer Rib3;
    ModelRenderer Rib4;
    ModelRenderer Rib5;
    ModelRenderer Rib6;
    ModelRenderer Rib7;
    ModelRenderer Stock;
    ModelRenderer StockBottom;
    ModelRenderer StockPlate;
    ModelRenderer CrankPivot;
    ModelRenderer CrankPlate;
    ModelRenderer CrankHandleBase;
    ModelRenderer CrankHandle;
    ModelRenderer HandlePivot;
    ModelRenderer HandleLeft;
    ModelRenderer HandleRight;
    ModelRenderer Handle;
    ModelRenderer ShieldTop;
    ModelRenderer ShieldBottom;
    ModelRenderer Battery;
    ModelRenderer BatteryTop;
    ModelRenderer BatteryBottom;
    ModelRenderer Wire;
    ModelRenderer SpindelPivot;
    ModelRenderer SpindelBase1;
    ModelRenderer Coil1;
    ModelRenderer SpindelTip1;
    ModelRenderer SpindelBase2;
    ModelRenderer Coil2;
    ModelRenderer SpindelTip2;
    ModelRenderer SpindelBase3;
    ModelRenderer Coil3;
    ModelRenderer SpindelTip3;
    ModelRenderer WireRight;
    ModelRenderer WireLeft;
  
  public ModelEMPRay()
  {
    textureWidth = 256;
    textureHeight = 128;
    
      Body = new ModelRenderer(this, 0, 96);
      Body.addBox(0F, 0F, 0F, 20, 16, 16);
      Body.setRotationPoint(0F, 0F, -8F);
      Body.setTextureSize(64, 32);
      Body.mirror = true;
      setRotation(Body, 0F, 0F, 0F);
      BodyConnector = new ModelRenderer(this, 0, 80);
      BodyConnector.addBox(0F, 0F, 0F, 15, 8, 8);
      BodyConnector.setRotationPoint(-15F, 0F, -4F);
      BodyConnector.setTextureSize(64, 32);
      BodyConnector.mirror = true;
      setRotation(BodyConnector, 0F, 0F, 0F);
      BodyFront = new ModelRenderer(this, 72, 96);
      BodyFront.addBox(0F, 0F, 0F, 5, 16, 16);
      BodyFront.setRotationPoint(-20F, 0F, -8F);
      BodyFront.setTextureSize(64, 32);
      BodyFront.mirror = true;
      setRotation(BodyFront, 0F, 0F, 0F);
      BodyPlateLeft = new ModelRenderer(this, 46, 84);
      BodyPlateLeft.addBox(-16F, 0F, 0F, 16, 8, 4);
      BodyPlateLeft.setRotationPoint(0F, 0F, -8F);
      BodyPlateLeft.setTextureSize(64, 32);
      BodyPlateLeft.mirror = true;
      setRotation(BodyPlateLeft, 0F, 0.2617994F, 0F);
      BodyPlateRight = new ModelRenderer(this, 86, 84);
      BodyPlateRight.addBox(-16F, 0F, -4F, 16, 8, 4);
      BodyPlateRight.setRotationPoint(0F, 0F, 8F);
      BodyPlateRight.setTextureSize(64, 32);
      BodyPlateRight.mirror = true;
      setRotation(BodyPlateRight, 0F, -0.2617994F, 0F);
      BodyPlateBottom = new ModelRenderer(this, 0, 65);
      BodyPlateBottom.addBox(-18F, -7F, 0F, 18, 7, 8);
      BodyPlateBottom.setRotationPoint(0F, 16F, -4F);
      BodyPlateBottom.setTextureSize(64, 32);
      BodyPlateBottom.mirror = true;
      setRotation(BodyPlateBottom, 0F, 0F, 0.4886922F);
      Rib1 = new ModelRenderer(this, 240, 0);
      Rib1.addBox(0F, 0F, 0F, 0, 8, 8);
      Rib1.setRotationPoint(-13.5F, 8F, -4F);
      Rib1.setTextureSize(64, 32);
      Rib1.mirror = true;
      setRotation(Rib1, 0F, 0F, 0F);
      Rib2 = new ModelRenderer(this, 222, 0);
      Rib2.addBox(0F, 0F, 0F, 0, 8, 9);
      Rib2.setRotationPoint(-11.5F, 8F, -4.5F);
      Rib2.setTextureSize(64, 32);
      Rib2.mirror = true;
      setRotation(Rib2, 0F, 0F, 0F);
      Rib3 = new ModelRenderer(this, 202, 0);
      Rib3.addBox(0F, 0F, 0F, 0, 8, 10);
      Rib3.setRotationPoint(-9.5F, 8F, -5F);
      Rib3.setTextureSize(64, 32);
      Rib3.mirror = true;
      setRotation(Rib3, 0F, 0F, 0F);
      Rib4 = new ModelRenderer(this, 180, 0);
      Rib4.addBox(0F, 0F, 0F, 0, 8, 11);
      Rib4.setRotationPoint(-7.5F, 8F, -5.5F);
      Rib4.setTextureSize(64, 32);
      Rib4.mirror = true;
      setRotation(Rib4, 0F, 0F, 0F);
      Rib5 = new ModelRenderer(this, 156, 0);
      Rib5.addBox(0F, 0F, 0F, 0, 8, 12);
      Rib5.setRotationPoint(-5.5F, 8F, -6F);
      Rib5.setTextureSize(64, 32);
      Rib5.mirror = true;
      setRotation(Rib5, 0F, 0F, 0F);
      Rib6 = new ModelRenderer(this, 130, 0);
      Rib6.addBox(0F, 0F, 0F, 0, 8, 13);
      Rib6.setRotationPoint(-3.5F, 8F, -6.5F);
      Rib6.setTextureSize(64, 32);
      Rib6.mirror = true;
      setRotation(Rib6, 0F, 0F, 0F);
      Rib7 = new ModelRenderer(this, 102, 0);
      Rib7.addBox(0F, 0F, 0F, 0, 8, 14);
      Rib7.setRotationPoint(-1.5F, 8F, -7F);
      Rib7.setTextureSize(64, 32);
      Rib7.mirror = true;
      setRotation(Rib7, 0F, 0F, 0F);
      Stock = new ModelRenderer(this, 114, 116);
      Stock.addBox(0F, 0F, 0F, 25, 6, 6);
      Stock.setRotationPoint(20F, 10F, -3F);
      Stock.setTextureSize(64, 32);
      Stock.mirror = true;
      setRotation(Stock, 0F, 0F, 0F);
      StockBottom = new ModelRenderer(this, 114, 104);
      StockBottom.addBox(0F, 0F, 0F, 4, 6, 6);
      StockBottom.setRotationPoint(41F, 16F, -3F);
      StockBottom.setTextureSize(64, 32);
      StockBottom.mirror = true;
      setRotation(StockBottom, 0F, 0F, 0F);
      StockPlate = new ModelRenderer(this, 134, 92);
      StockPlate.addBox(0F, -18F, 0F, 6, 18, 6);
      StockPlate.setRotationPoint(41F, 22F, -3F);
      StockPlate.setTextureSize(64, 32);
      StockPlate.mirror = true;
      setRotation(StockPlate, 0F, 0F, -1.22173F);
      CrankPivot = new ModelRenderer(this, 0, 63);
      CrankPivot.addBox(0F, -0.5F, -0.5F, 3, 1, 1);
      CrankPivot.setRotationPoint(20F, 2F, 0F);
      CrankPivot.setTextureSize(64, 32);
      CrankPivot.mirror = true;
      setRotation(CrankPivot, -0.4363323F, 0F, 0F);
      CrankPlate = new ModelRenderer(this, 0, 55);
      CrankPlate.addBox(0F, -1F, -1F, 1, 6, 2);
      CrankPlate.setRotationPoint(21.5F, 2F, 0F);
      CrankPlate.setTextureSize(64, 32);
      CrankPlate.mirror = true;
      setRotation(CrankPlate, -0.4363323F, 0F, 0F);
      CrankHandleBase = new ModelRenderer(this, 0, 53);
      CrankHandleBase.addBox(0F, 3.5F, -0.5F, 2, 1, 1);
      CrankHandleBase.setRotationPoint(22F, 2F, 0F);
      CrankHandleBase.setTextureSize(64, 32);
      CrankHandleBase.mirror = true;
      setRotation(CrankHandleBase, -0.4363323F, 0F, 0F);
      CrankHandle = new ModelRenderer(this, 0, 49);
      CrankHandle.addBox(0F, 3F, -1F, 6, 2, 2);
      CrankHandle.setRotationPoint(24F, 2F, 0F);
      CrankHandle.setTextureSize(64, 32);
      CrankHandle.mirror = true;
      setRotation(CrankHandle, -0.4363323F, 0F, 0F);
      HandlePivot = new ModelRenderer(this, 52, 60);
      HandlePivot.addBox(-1F, -1F, 0F, 2, 2, 22);
      HandlePivot.setRotationPoint(7F, 7F, -11F);
      HandlePivot.setTextureSize(64, 32);
      HandlePivot.mirror = true;
      setRotation(HandlePivot, 0F, 0F, 0.4363323F);
      HandleLeft = new ModelRenderer(this, 100, 67);
      HandleLeft.addBox(-1.5F, -14F, 0F, 3, 16, 1);
      HandleLeft.setRotationPoint(7F, 7F, -9.5F);
      HandleLeft.setTextureSize(64, 32);
      HandleLeft.mirror = true;
      setRotation(HandleLeft, 0F, 0F, 0.4363323F);
      HandleRight = new ModelRenderer(this, 108, 67);
      HandleRight.addBox(-1.5F, -14F, 0F, 3, 16, 1);
      HandleRight.setRotationPoint(7F, 7F, 8.5F);
      HandleRight.setTextureSize(64, 32);
      HandleRight.mirror = true;
      setRotation(HandleRight, 0F, 0F, 0.4363323F);
      Handle = new ModelRenderer(this, 52, 31);
      Handle.addBox(-2.5F, -19F, 0F, 5, 5, 24);
      Handle.setRotationPoint(7F, 7F, -12F);
      Handle.setTextureSize(64, 32);
      Handle.mirror = true;
      setRotation(Handle, 0F, 0F, 0.4363323F);
      ShieldTop = new ModelRenderer(this, 64, 0);
      ShieldTop.addBox(0F, 0F, 0F, 0, 12, 18);
      ShieldTop.setRotationPoint(-11F, -14F, -9F);
      ShieldTop.setTextureSize(64, 32);
      ShieldTop.mirror = true;
      setRotation(ShieldTop, 0F, 0F, 0F);
      ShieldBottom = new ModelRenderer(this, 36, 0);
      ShieldBottom.addBox(0F, 0F, 0F, 0, 9, 14);
      ShieldBottom.setRotationPoint(-11F, -2F, -7F);
      ShieldBottom.setTextureSize(64, 32);
      ShieldBottom.mirror = true;
      setRotation(ShieldBottom, 0F, 0F, -0.6981317F);
      Battery = new ModelRenderer(this, 10, 56);
      Battery.addBox(0F, 0F, 0F, 4, 6, 3);
      Battery.setRotationPoint(13F, 6F, -11F);
      Battery.setTextureSize(64, 32);
      Battery.mirror = true;
      setRotation(Battery, 0F, 0F, 0F);
      BatteryTop = new ModelRenderer(this, 24, 60);
      BatteryTop.addBox(0F, 0F, 0F, 5, 1, 4);
      BatteryTop.setRotationPoint(12.5F, 5F, -11.5F);
      BatteryTop.setTextureSize(64, 32);
      BatteryTop.mirror = true;
      setRotation(BatteryTop, 0F, 0F, 0F);
      BatteryBottom = new ModelRenderer(this, 24, 55);
      BatteryBottom.addBox(0F, 0F, 0F, 5, 1, 4);
      BatteryBottom.setRotationPoint(12.5F, 12F, -11.5F);
      BatteryBottom.setTextureSize(64, 32);
      BatteryBottom.mirror = true;
      setRotation(BatteryBottom, 0F, 0F, 0F);
      Wire = new ModelRenderer(this, 0, 44);
      Wire.addBox(0F, -4F, 0F, 2, 4, 1);
      Wire.setRotationPoint(14F, 5F, -10F);
      Wire.setTextureSize(64, 32);
      Wire.mirror = true;
      setRotation(Wire, -0.5235988F, 0F, 0F);
      SpindelPivot = new ModelRenderer(this, 0, 36);
      SpindelPivot.addBox(0F, 0F, 0F, 4, 3, 3);
      SpindelPivot.setRotationPoint(-24F, 8.5F, -1.5F);
      SpindelPivot.setTextureSize(64, 32);
      SpindelPivot.mirror = true;
      setRotation(SpindelPivot, 0F, 0F, 0F);
      SpindelBase1 = new ModelRenderer(this, 0, 27);
      SpindelBase1.addBox(0F, -5F, -1F, 2, 5, 2);
      SpindelBase1.setRotationPoint(-23F, 10F, 0F);
      SpindelBase1.setTextureSize(64, 32);
      SpindelBase1.mirror = true;
      setRotation(SpindelBase1, 0F, 0F, 0F);
      Coil1 = new ModelRenderer(this, 0, 17);
      Coil1.addBox(0F, -6F, -2F, 12, 4, 4);
      Coil1.setRotationPoint(-35F, 10F, 0F);
      Coil1.setTextureSize(64, 32);
      Coil1.mirror = true;
      setRotation(Coil1, 0F, 0F, 0F);
      SpindelTip1 = new ModelRenderer(this, 0, 11);
      SpindelTip1.addBox(0F, -5F, -1F, 1, 2, 2);
      SpindelTip1.setRotationPoint(-36F, 10F, 0F);
      SpindelTip1.setTextureSize(64, 32);
      SpindelTip1.mirror = true;
      setRotation(SpindelTip1, 0F, 0F, 0F);
      SpindelBase2 = new ModelRenderer(this, 0, 27);
      SpindelBase2.addBox(0F, -5F, -1F, 2, 5, 2);
      SpindelBase2.setRotationPoint(-23F, 10F, 0F);
      SpindelBase2.setTextureSize(64, 32);
      SpindelBase2.mirror = true;
      setRotation(SpindelBase2, 2.094395F, 0F, 0F);
      Coil2 = new ModelRenderer(this, 0, 17);
      Coil2.addBox(0F, -6F, -2F, 12, 4, 4);
      Coil2.setRotationPoint(-35F, 10F, 0F);
      Coil2.setTextureSize(64, 32);
      Coil2.mirror = true;
      setRotation(Coil2, 2.094395F, 0F, 0F);
      SpindelTip2 = new ModelRenderer(this, 0, 11);
      SpindelTip2.addBox(0F, -5F, -1F, 1, 2, 2);
      SpindelTip2.setRotationPoint(-36F, 10F, 0F);
      SpindelTip2.setTextureSize(64, 32);
      SpindelTip2.mirror = true;
      setRotation(SpindelTip2, 2.094395F, 0F, 0F);
      SpindelBase3 = new ModelRenderer(this, 0, 27);
      SpindelBase3.addBox(0F, -5F, -1F, 2, 5, 2);
      SpindelBase3.setRotationPoint(-23F, 10F, 0F);
      SpindelBase3.setTextureSize(64, 32);
      SpindelBase3.mirror = true;
      setRotation(SpindelBase3, -2.094395F, 0F, 0F);
      Coil3 = new ModelRenderer(this, 0, 17);
      Coil3.addBox(0F, -6F, -2F, 12, 4, 4);
      Coil3.setRotationPoint(-35F, 10F, 0F);
      Coil3.setTextureSize(64, 32);
      Coil3.mirror = true;
      setRotation(Coil3, -2.094395F, 0F, 0F);
      SpindelTip3 = new ModelRenderer(this, 0, 11);
      SpindelTip3.addBox(0F, -5F, -1F, 1, 2, 2);
      SpindelTip3.setRotationPoint(-36F, 10F, 0F);
      SpindelTip3.setTextureSize(64, 32);
      SpindelTip3.mirror = true;
      setRotation(SpindelTip3, -2.094395F, 0F, 0F);
      WireRight = new ModelRenderer(this, 0, 2);
      WireRight.addBox(0F, 0F, 0F, 15, 1, 1);
      WireRight.setRotationPoint(-15F, 13F, 4F);
      WireRight.setTextureSize(64, 32);
      WireRight.mirror = true;
      setRotation(WireRight, 0F, 0F, 0F);
      WireLeft = new ModelRenderer(this, 0, 0);
      WireLeft.addBox(0F, 0F, 0F, 15, 1, 1);
      WireLeft.setRotationPoint(-15F, 13F, -5F);
      WireLeft.setTextureSize(64, 32);
      WireLeft.mirror = true;
      setRotation(WireLeft, 0F, 0F, 0F);
  }
  
  public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5, float rot)
  {
    super.render(entity, f, f1, f2, f3, f4, f5);
    setRotationAngles(f, f1, f2, f3, f4, f5, entity);
    Body.render(f5);
    BodyConnector.render(f5);
    BodyFront.render(f5);
    BodyPlateLeft.render(f5);
    BodyPlateRight.render(f5);
    BodyPlateBottom.render(f5);
    Rib1.render(f5);
    Rib2.render(f5);
    Rib3.render(f5);
    Rib4.render(f5);
    Rib5.render(f5);
    Rib6.render(f5);
    Rib7.render(f5);
    Stock.render(f5);
    StockBottom.render(f5);
    StockPlate.render(f5);
    CrankPivot.render(f5);
    CrankPlate.render(f5);
    CrankHandleBase.render(f5);
    CrankHandle.render(f5);
    HandlePivot.render(f5);
    HandleLeft.render(f5);
    HandleRight.render(f5);
    Handle.render(f5);
    ShieldTop.render(f5);
    ShieldBottom.render(f5);
    Battery.render(f5);
    BatteryTop.render(f5);
    BatteryBottom.render(f5);
    Wire.render(f5);
    SpindelPivot.render(f5);
    SpindelBase1.rotateAngleX += rot;
    Coil1.rotateAngleX += rot;
    SpindelTip1.rotateAngleX += rot;
    SpindelBase2.rotateAngleX += rot;
    Coil2.rotateAngleX += rot;
    SpindelTip2.rotateAngleX += rot;
    SpindelBase3.rotateAngleX += rot;
    Coil3.rotateAngleX += rot;
    SpindelTip3.rotateAngleX += rot;
    SpindelBase1.render(f5);
    Coil1.render(f5);
    SpindelTip1.render(f5);
    SpindelBase2.render(f5);
    Coil2.render(f5);
    SpindelTip2.render(f5);
    SpindelBase3.render(f5);
    Coil3.render(f5);
    SpindelTip3.render(f5);
    WireRight.render(f5);
    WireLeft.render(f5);
  }
  
  private void setRotation(ModelRenderer model, float x, float y, float z)
  {
    model.rotateAngleX = x;
    model.rotateAngleY = y;
    model.rotateAngleZ = z;
  }
  
  @Override
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);
  }

}
