package atomicscience.muoxing;

import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.client.model.ModelBase;
import net.minecraft.client.model.ModelRenderer;

@SideOnly(Side.CLIENT)
public class MFusionReactor extends ModelBase {
   ModelRenderer a;
   ModelRenderer b;
   ModelRenderer c;
   ModelRenderer d;
   ModelRenderer e;
   ModelRenderer f;
   ModelRenderer g;
   ModelRenderer h;
   ModelRenderer i;
   ModelRenderer j;
   ModelRenderer k;
   ModelRenderer l;
   ModelRenderer m;
   ModelRenderer n;
   ModelRenderer o;
   ModelRenderer p;
   ModelRenderer q;
   ModelRenderer rrot;
   ModelRenderer srot;
   ModelRenderer t;
   ModelRenderer u;
   ModelRenderer v;
   ModelRenderer w;
   ModelRenderer x;
   ModelRenderer y;


   public MFusionReactor() {
      super.textureWidth = 128;
      super.textureHeight = 128;
      this.a = new ModelRenderer(this, 0, 0);
      this.a.addBox(-8.0F, 0.0F, -8.0F, 16, 1, 16);
      this.a.setRotationPoint(0.0F, 23.0F, 0.0F);
      this.a.setTextureSize(128, 128);
      this.a.mirror = true;
      this.setRotation(this.a, 0.0F, 0.0F, 0.0F);
      this.b = new ModelRenderer(this, 0, 66);
      this.b.addBox(-4.0F, 0.0F, -1.0F, 8, 13, 2);
      this.b.setRotationPoint(0.0F, 10.0F, 7.0F);
      this.b.setTextureSize(128, 128);
      this.b.mirror = true;
      this.setRotation(this.b, 0.0F, 0.0F, 0.0F);
      this.c = new ModelRenderer(this, 22, 82);
      this.c.addBox(-4.0F, 0.0F, -2.0F, 8, 2, 2);
      this.c.setRotationPoint(0.0F, 8.0F, 6.0F);
      this.c.setTextureSize(128, 128);
      this.c.mirror = true;
      this.setRotation(this.c, 0.0F, 0.0F, 0.0F);
      this.d = new ModelRenderer(this, 22, 66);
      this.d.addBox(0.0F, 0.0F, 0.0F, 8, 5, 2);
      this.d.setRotationPoint(-4.0F, 10.0F, 4.0F);
      this.d.setTextureSize(128, 128);
      this.d.mirror = true;
      this.setRotation(this.d, 0.418879F, 0.0F, 0.0F);
      this.e = new ModelRenderer(this, 0, 42);
      this.e.addBox(0.0F, 0.0F, 0.0F, 2, 13, 6);
      this.e.setRotationPoint(6.0F, 10.0F, -2.0F);
      this.e.setTextureSize(128, 128);
      this.e.mirror = true;
      this.setRotation(this.e, 0.0F, 0.0F, 0.0F);
      this.f = new ModelRenderer(this, 65, 43);
      this.f.addBox(-1.0F, -1.0F, -3.0F, 2, 2, 6);
      this.f.setRotationPoint(6.0F, 10.0F, 1.0F);
      this.f.setTextureSize(128, 128);
      this.f.mirror = true;
      this.setRotation(this.f, 0.0F, 0.0F, 0.7853982F);
      this.g = new ModelRenderer(this, 17, 42);
      this.g.addBox(0.0F, 0.0F, 0.0F, 2, 5, 6);
      this.g.setRotationPoint(4.0F, 10.0F, -2.0F);
      this.g.setTextureSize(128, 128);
      this.g.mirror = true;
      this.setRotation(this.g, 0.0F, 0.0F, -0.4014257F);
      this.h = new ModelRenderer(this, 0, 18);
      this.h.addBox(0.0F, 0.0F, 0.0F, 2, 13, 6);
      this.h.setRotationPoint(-8.0F, 10.0F, -2.0F);
      this.h.setTextureSize(128, 128);
      this.h.mirror = true;
      this.setRotation(this.h, 0.0F, 0.0F, 0.0F);
      this.i = new ModelRenderer(this, 0, 103);
      this.i.addBox(0.0F, 0.0F, 0.0F, 12, 2, 6);
      this.i.setRotationPoint(-6.0F, 8.0F, -2.0F);
      this.i.setTextureSize(128, 128);
      this.i.mirror = true;
      this.setRotation(this.i, 0.0F, 0.0F, 0.0F);
      this.j = new ModelRenderer(this, 17, 18);
      this.j.addBox(-2.0F, 0.0F, 0.0F, 2, 5, 6);
      this.j.setRotationPoint(-4.0F, 10.0F, -2.0F);
      this.j.setTextureSize(128, 128);
      this.j.mirror = true;
      this.setRotation(this.j, 0.0F, 0.0F, 0.418879F);
      this.k = new ModelRenderer(this, 0, 83);
      this.k.addBox(-3.0F, 0.0F, -2.0F, 6, 15, 3);
      this.k.setRotationPoint(5.0F, 8.0F, 5.0F);
      this.k.setTextureSize(128, 128);
      this.k.mirror = true;
      this.setRotation(this.k, 0.0F, 0.7853982F, 0.0F);
      this.l = new ModelRenderer(this, 0, 83);
      this.l.addBox(-3.0F, 0.0F, -2.0F, 6, 15, 3);
      this.l.setRotationPoint(-5.0F, 8.0F, 5.0F);
      this.l.setTextureSize(128, 128);
      this.l.mirror = true;
      this.setRotation(this.l, 0.0F, -0.7853982F, 0.0F);
      this.m = new ModelRenderer(this, 65, 43);
      this.m.addBox(-1.0F, -1.0F, -3.0F, 2, 2, 6);
      this.m.setRotationPoint(-6.0F, 10.0F, 1.0F);
      this.m.setTextureSize(128, 128);
      this.m.mirror = true;
      this.setRotation(this.m, 0.0F, 0.0F, 0.7853982F);
      this.n = new ModelRenderer(this, 65, 38);
      this.n.addBox(-4.0F, -1.0F, -1.0F, 8, 2, 2);
      this.n.setRotationPoint(0.0F, 10.0F, 6.0F);
      this.n.setTextureSize(128, 128);
      this.n.mirror = true;
      this.setRotation(this.n, 0.7853982F, 0.0F, 0.0F);
      this.o = new ModelRenderer(this, 17, 54);
      this.o.addBox(0.0F, 0.0F, 0.0F, 1, 4, 6);
      this.o.setRotationPoint(6.0F, 20.0F, -2.0F);
      this.o.setTextureSize(128, 128);
      this.o.mirror = true;
      this.setRotation(this.o, 0.0F, 0.0F, 0.7330383F);
      this.p = new ModelRenderer(this, 17, 30);
      this.p.addBox(-1.0F, 0.0F, 0.0F, 1, 4, 6);
      this.p.setRotationPoint(-6.0F, 20.0F, -2.0F);
      this.p.setTextureSize(128, 128);
      this.p.mirror = true;
      this.setRotation(this.p, 0.0F, 0.0F, -0.7330383F);
      this.q = new ModelRenderer(this, 22, 74);
      this.q.addBox(0.0F, 0.0F, -1.0F, 8, 6, 1);
      this.q.setRotationPoint(-4.0F, 19.0F, 7.0F);
      this.q.setTextureSize(128, 128);
      this.q.mirror = true;
      this.setRotation(this.q, -0.6283185F, 0.0F, 0.0F);
      this.rrot = new ModelRenderer(this, 65, 0);
      this.rrot.addBox(-1.0F, 0.0F, -1.0F, 2, 13, 2);
      this.rrot.setRotationPoint(0.0F, 10.0F, 0.0F);
      this.rrot.setTextureSize(128, 128);
      this.rrot.mirror = true;
      this.setRotation(this.rrot, 0.0F, 0.0F, 0.0F);
      this.srot = new ModelRenderer(this, 74, 0);
      this.srot.addBox(-2.0F, 0.0F, -2.0F, 4, 9, 4);
      this.srot.setRotationPoint(0.0F, 12.0F, 0.0F);
      this.srot.setTextureSize(128, 128);
      this.srot.mirror = true;
      this.setRotation(this.srot, 0.0F, 0.0F, 0.0F);
      this.t = new ModelRenderer(this, 65, 19);
      this.t.addBox(-8.0F, 0.0F, 0.0F, 16, 2, 1);
      this.t.setRotationPoint(0.0F, 21.0F, -3.0F);
      this.t.setTextureSize(128, 128);
      this.t.mirror = true;
      this.setRotation(this.t, 0.0F, 0.0F, 0.0F);
      this.u = new ModelRenderer(this, 65, 24);
      this.u.addBox(-1.0F, 0.0F, -1.0F, 2, 10, 2);
      this.u.setRotationPoint(4.0F, 13.0F, -6.0F);
      this.u.setTextureSize(128, 128);
      this.u.mirror = true;
      this.setRotation(this.u, 0.0F, 0.0F, 0.0F);
      this.v = new ModelRenderer(this, 74, 24);
      this.v.addBox(-3.0F, -1.0F, -2.0F, 6, 2, 4);
      this.v.setRotationPoint(4.0F, 13.0F, -6.0F);
      this.v.setTextureSize(128, 128);
      this.v.mirror = true;
      this.setRotation(this.v, 0.7679449F, 0.0F, 0.0F);
      this.w = new ModelRenderer(this, 46, 24);
      this.w.addBox(0.0F, 0.0F, 0.0F, 5, 8, 4);
      this.w.setRotationPoint(-7.0F, 15.0F, -7.0F);
      this.w.setTextureSize(128, 128);
      this.w.mirror = true;
      this.setRotation(this.w, 0.0F, 0.0F, 0.0F);
      this.x = new ModelRenderer(this, 46, 38);
      this.x.addBox(0.0F, 0.0F, 0.0F, 5, 2, 3);
      this.x.setRotationPoint(-7.0F, 15.0F, -7.0F);
      this.x.setTextureSize(128, 128);
      this.x.mirror = true;
      this.setRotation(this.x, 0.7853982F, 0.0F, 0.0F);
      this.y = new ModelRenderer(this, 46, 45);
      this.y.addBox(0.0F, 0.0F, 0.0F, 5, 2, 2);
      this.y.setRotationPoint(-7.0F, 13.0F, -5.0F);
      this.y.setTextureSize(128, 128);
      this.y.mirror = true;
      this.setRotation(this.y, 0.0F, 0.0F, 0.0F);
   }

   public void render(float xuanZhuan, float f5) {
      this.a.render(f5);
      this.b.render(f5);
      this.c.render(f5);
      this.d.render(f5);
      this.e.render(f5);
      this.x.render(f5);
      this.g.render(f5);
      this.h.render(f5);
      this.i.render(f5);
      this.j.render(f5);
      this.k.render(f5);
      this.l.render(f5);
      this.m.render(f5);
      this.n.render(f5);
      this.o.render(f5);
      this.p.render(f5);
      this.q.render(f5);
      this.rrot.rotateAngleY = xuanZhuan;
      this.rrot.render(f5);
      this.srot.rotateAngleY = xuanZhuan;
      this.srot.render(f5);
      this.t.render(f5);
      this.u.render(f5);
      this.v.render(f5);
      this.w.render(f5);
      this.x.render(f5);
      this.y.render(f5);
   }

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