package net.tropicraft.client.entity.model;
import net.minecraft.client.model.ModelBase;
import net.minecraft.client.model.ModelRenderer;
import net.minecraft.entity.Entity;
import org.lwjgl.opengl.GL11;
public class ModelSeaUrchin extends ModelBase {
public ModelRenderer base;
public ModelRenderer top1;
public ModelRenderer top2;
public ModelRenderer front1;
public ModelRenderer front2;
public ModelRenderer left1;
public ModelRenderer left2;
public ModelRenderer back1;
public ModelRenderer back2;
public ModelRenderer right1;
public ModelRenderer right2;
public ModelRenderer bottom1;
public ModelRenderer bottom2;
public ModelRenderer spine;
public ModelSeaUrchin() {
textureWidth = 64;
textureHeight = 64;
base = new ModelRenderer(this, 0, 0);
base.addBox(-3F, 16F, -3F, 6, 6, 6);
base.setRotationPoint(0F, 0F, 0F);
base.setTextureSize(64, 64);
base.mirror = true;
setRotation(base, 0F, 0F, 0F);
top1 = new ModelRenderer(this, 0, 38);
top1.addBox(-2F, 15F, -2F, 4, 1, 4);
top1.setRotationPoint(0F, 0F, 0F);
top1.setTextureSize(64, 64);
top1.mirror = true;
setRotation(top1, 0F, 0F, 0F);
top2 = new ModelRenderer(this, 16, 38);
top2.addBox(-1F, 14F, -1F, 2, 1, 2);
top2.setRotationPoint(0F, 0F, 0F);
top2.setTextureSize(64, 64);
top2.mirror = true;
setRotation(top2, 0F, 0F, 0F);
front1 = new ModelRenderer(this, 0, 12);
front1.addBox(-2F, 17F, -4F, 4, 4, 1);
front1.setRotationPoint(0F, 0F, 0F);
front1.setTextureSize(64, 64);
front1.mirror = true;
setRotation(front1, 0F, 0F, 0F);
front2 = new ModelRenderer(this, 10, 12);
front2.addBox(-1F, 18F, -5F, 2, 2, 1);
front2.setRotationPoint(0F, 0F, 0F);
front2.setTextureSize(64, 64);
front2.mirror = true;
setRotation(front2, 0F, 0F, 0F);
left1 = new ModelRenderer(this, 0, 17);
left1.addBox(3F, 17F, -2F, 1, 4, 4);
left1.setRotationPoint(0F, 0F, 0F);
left1.setTextureSize(64, 64);
left1.mirror = true;
setRotation(left1, 0F, 0F, 0F);
left2 = new ModelRenderer(this, 10, 17);
left2.addBox(4F, 18F, -1F, 1, 2, 2);
left2.setRotationPoint(0F, 0F, 0F);
left2.setTextureSize(64, 64);
left2.mirror = true;
setRotation(left2, 0F, 0F, 0F);
back1 = new ModelRenderer(this, 0, 25);
back1.addBox(-2F, 17F, 3F, 4, 4, 1);
back1.setRotationPoint(0F, 0F, 0F);
back1.setTextureSize(64, 64);
back1.mirror = true;
setRotation(back1, 0F, 0F, 0F);
back2 = new ModelRenderer(this, 10, 25);
back2.addBox(-1F, 18F, 4F, 2, 2, 1);
back2.setRotationPoint(0F, 0F, 0F);
back2.setTextureSize(64, 64);
back2.mirror = true;
setRotation(back2, 0F, 0F, 0F);
right1 = new ModelRenderer(this, 0, 30);
right1.addBox(-4F, 17F, -2F, 1, 4, 4);
right1.setRotationPoint(0F, 0F, 0F);
right1.setTextureSize(64, 64);
right1.mirror = true;
setRotation(right1, 0F, 0F, 0F);
right2 = new ModelRenderer(this, 10, 30);
right2.addBox(-5F, 18F, -1F, 1, 2, 2);
right2.setRotationPoint(0F, 0F, 0F);
right2.setTextureSize(64, 64);
right2.mirror = true;
setRotation(right2, 0F, 0F, 0F);
bottom1 = new ModelRenderer(this, 0, 38);
bottom1.addBox(-2F, 22F, -2F, 4, 1, 4);
bottom1.setRotationPoint(0F, 0F, 0F);
bottom1.setTextureSize(64, 64);
bottom1.mirror = true;
setRotation(bottom1, 0F, 0F, 0F);
bottom2 = new ModelRenderer(this, 16, 38);
bottom2.addBox(-1F, 23F, -1F, 2, 1, 2);
bottom2.setRotationPoint(0F, 0F, 0F);
bottom2.setTextureSize(64, 64);
bottom2.mirror = true;
setRotation(bottom2, 0F, 0F, 0F);
spine = new ModelRenderer(this, 24, 0);
spine.addBox(-0.5F, -9F, -0.5F, 1, 6, 1);
spine.setRotationPoint(0F, 19F, 0F);
spine.setTextureSize(64, 64);
spine.mirror = true;
setRotation(spine, 0F, 0F, 0F);
}
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);
base.render(f5);
top1.render(f5);
top2.render(f5);
front1.render(f5);
front2.render(f5);
left1.render(f5);
left2.render(f5);
back1.render(f5);
back2.render(f5);
right1.render(f5);
right2.render(f5);
bottom1.render(f5);
bottom2.render(f5);
int verticalSpines = 12;
int horizontalSpines = 12;
for (int v = 0; v < verticalSpines; v++) {
for (int h = 0; h < horizontalSpines; h++) {
GL11.glPushMatrix();
GL11.glTranslatef(0f, 1.25f, 0f);
GL11.glRotatef(360*((float)v)/verticalSpines, 0f, 0f, 1f);
GL11.glRotatef(360*((float)h)/horizontalSpines, 1f, 0f, 0f);
GL11.glTranslatef(0f, -0.4f, 0f);
GL11.glScalef(0.33f, 1f, 0.33f);
spine.render(f5);
GL11.glPopMatrix();
}
}
}
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 ent) {
super.setRotationAngles(f, f1, f2, f3, f4, f5, ent);
}
}