3 mai 2014, 20:22

Bonjour ! J’ai un mob avec un corps normal et un chapeau (jusque là, tout va bien), mais par contre, quand mon mob marche, le chapeau traîne derrière ! 😕 Mon chapeau est en deux parties, comme un chapeau melon.

Voici le model de mon mob :

// Date: 28/02/2014 20:40:33
// Template version 1.1
// Java generated by Techne
// Keep in mind that you still need to fill in some blanks
// - ZeuX

package fr.yannblanc.aliceadsl.agriculcraft.mob;

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

public class vendeurdegrainesModel extends ModelBase
{
// fields
ModelRenderer head;
ModelRenderer body;
ModelRenderer rightarm;
ModelRenderer leftarm;
ModelRenderer rightleg;
ModelRenderer leftleg;
ModelRenderer chapeaubas;
ModelRenderer chapeauhaut;

public vendeurdegrainesModel()
{
textureWidth = 128;
textureHeight = 64;

head = new ModelRenderer(this, 0, 0);
head.addBox(-4F, -8F, -4F, 8, 8, 8);
head.setRotationPoint(0F, 0F, 0F);
head.setTextureSize(128, 64);
setRotation(head, 0F, 0F, 0F);
body = new ModelRenderer(this, 16, 16);
body.addBox(-4F, 0F, -2F, 8, 12, 4);
body.setRotationPoint(0F, 0F, 0F);
body.setTextureSize(128, 64);
setRotation(body, 0F, 0F, 0F);
rightarm = new ModelRenderer(this, 40, 16);
rightarm.addBox(-3F, -2F, -2F, 4, 12, 4);
rightarm.setRotationPoint(-5F, 2F, 0F);
rightarm.setTextureSize(128, 64);
setRotation(rightarm, 0F, 0F, 0F);
leftarm = new ModelRenderer(this, 40, 33);
leftarm.addBox(-1F, -2F, -2F, 4, 12, 4);
leftarm.setRotationPoint(5F, 2F, 0F);
leftarm.setTextureSize(128, 64);
setRotation(leftarm, 0F, 0F, 0F);
leftarm.mirror = false;
rightleg = new ModelRenderer(this, 0, 16);
rightleg.addBox(-2F, 0F, -2F, 4, 12, 4);
rightleg.setRotationPoint(-2F, 12F, 0F);
rightleg.setTextureSize(128, 64);
setRotation(rightleg, 0F, 0F, 0F);
rightleg.mirror = true;
leftleg = new ModelRenderer(this, 0, 16);
leftleg.addBox(-2F, 0F, -2F, 4, 12, 4);
leftleg.setRotationPoint(2F, 12F, 0F);
leftleg.setTextureSize(128, 64);
setRotation(leftleg, 0F, 0F, 0F);
leftleg.mirror = true;
chapeaubas = new ModelRenderer(this, 35, 0);
chapeaubas.addBox(0F, 0F, 0F, 12, 1, 12);
chapeaubas.setRotationPoint(-6F, -8F, -6F);
chapeaubas.setTextureSize(128, 64);
setRotation(chapeaubas, 0F, 0F, 0F);
chapeauhaut = new ModelRenderer(this, 58, 17);
chapeauhaut.addBox(0F, 0F, 0F, 8, 2, 8);
chapeauhaut.setRotationPoint(-4F, -10F, -4F);
chapeauhaut.setTextureSize(128, 64);
setRotation(chapeauhaut, 0F, 0F, 0F);
}

public void render(Entity par1Entity, float par2, float par3, float par4, float par5, float par6, float par7)
{
setRotationAngles(par2, par3, par4, par5, par6, par7, par1Entity);
head.render(par7);
body.render(par7);
rightarm.render(par7);
leftarm.render(par7);
rightleg.render(par7);
leftleg.render(par7);
chapeaubas.render(par7);
chapeauhaut.render(par7);
}

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

public void setRotationAngles(float par1, float par2, float par3, float par4, float par5, float par6, Entity par7Entity)
{

// TÊTE
this.head.rotateAngleY = par4 / (180F / (float)Math.PI);
this.head.rotateAngleX = par5 / (170F / (float)Math.PI);

// CHAPEAU

this.chapeauhaut.rotateAngleX = chapeaubas.rotateAngleX / (170F / (float)Math.PI);
this.chapeauhaut.rotateAngleY = chapeaubas.rotateAngleY / (180F / (float)Math.PI);
this.chapeaubas.rotateAngleY = head.rotateAngleY / (180F / (float)Math.PI);
this.chapeaubas.rotateAngleX = head.rotateAngleX / (170F / (float)Math.PI);

// BRAS DROIT
this.rightarm.rotateAngleX = MathHelper.cos(par1 * 0.6662F + (float)Math.PI) * 2.0F * par2 * 0.5F;
this.rightarm.rotateAngleZ = 0.0F;

// BRAS GAUCHE

this.leftarm.rotateAngleX = MathHelper.cos(par1 * 0.6662F) * 2.0F * par2 * 0.5F;
this.leftarm.rotateAngleZ = 0.0F;

// JAMBE DROITE

this.rightleg.rotateAngleX = MathHelper.cos(par1 * 0.6662F) * 1.4F * par2;
this.rightleg.rotateAngleY = 0.0F;

// JAMBE GAUCHE

this.leftleg.rotateAngleX = MathHelper.cos(par1 * 0.6662F + (float)Math.PI) * 1.4F * par2;
}
}

Il faudrait donc que “chapeauhaut” soit soudé avec “chapeaubas”, et “chapeaubas” avec “head”

Merci d’avance ! 🙂

Sur ce : chapi chapo ! (je sors)