3 oct. 2013, 15:24

Bonjour à toutes et à tous, je vais vous apprendre à faire tourner sur lui même un block Techne, je suis sur que vous y trouverez pleins d’utilités !

Pour cela, créez votre model, et chargez le avec un TileEntity, comme tout bloc 3D
Ensuite, dans la classe de votre model, dans votre public void render ajoutez à la suite du setRotationAngle

    LaPartieDeVotreEntity.rotateAngleY += 0.01F;

Pour exemple, mon model est composé de ça:

    Shape1 = new ModelRenderer(this, 0, 0);
    Shape1.addBox(0F, 0F, 0F, 16, 16, 16);
    Shape1.setRotationPoint(-8F, 8F, -8F);
    Shape1.setTextureSize(64, 32);
    Shape1.mirror = true;
    setRotation(Shape1, 0F, 0F, 0F);

Pour moi, je met donc:

    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);
        Shape1.rotateAngleY += 0.01F;
        Shape1.render(f5);
    }

Le 0.01 définissant le degré de rotation à chaque tick.
Il ne me reste plus qu’a redéfinir le offset de mon “Shape1” et le placement de mon point de rotation, pour moi se sera donc :

    Shape1 = new ModelRenderer(this, 0, 0);
    Shape1.addBox(-8F, 8F, -8F, 16, 16, 16);
    Shape1.setRotationPoint(0F, 0F, 0F);
    Shape1.setTextureSize(64, 32);
    Shape1.mirror = true;
    setRotation(Shape1, 0F, 0F, 0F);

Ainsi, je redéfini mon point de rotation au centre du bloc, et modifie le offset pour le placer lui aussi au centre de celui ci.

Vous me direz, pourquoi redéfinir le offset et le point de rotation ?
Car la fonction de rotate modifie l’emplacement de mon point de rotation et de mon entité.

Voila, merci d’avoir lu jusqu’au bout, et n’hésitez pas a faire de commentaire, c’est mon premier tutoriel !