Texture random sur un mob (Simple)



  • Sommaire

    Introduction

    Dans ce tutoriel qui est plus une astuce qu'un bon gros tutoriel de 6 pages, on va voir comment faire un random de textures sur nos entités....

    Pré-requis

    Avoir au minimum un mob simple de créer, comment faire ? Allez voir le tutoriel de elias54 disponible ICI

    Code

    Entity.java de notre mob:

    Voici le bout de classe que sera modifié:

    public class EntityAstuceTextureRandom extends EntityMob
    {    
        public EntityAstuceTextureRandom(World par1World)
        {
            super(par1World);
            //Ici vos task.add pour l'intelligence artificielle
            //...
        }
    

    Dans ce bout de classe, rien de spécial, donc nous allons rajouter 2 petites choses:

    Au début de la classe avant le constructor rajoutez ceci:
    public int texture;
    Dans le constructeur, vous allez rajouter, après le super....:
    texture = this.worldObj.rand.nextInt(nombreDeTexturePresente);

    Explications: le nombreDeTexturePresente est un int
    vous allez simplement mettre le nombre de textures que vous avez (si vous avez 25 textures différentes vous mettez (25) tout simplement)

    Voici ce que vous devriez avoir:

    public class EntityAstuceTextureRandom extends EntityMob
    {
        public int texture;
        public EntityAstuceTextureRandom(World par1World)
        {
            super(par1World);
            texture = this.worldObj.rand.nextInt(65); //65 pour le nombre de textures qui seront random
    
            //Ici vos task.add pour l'intelligence artificielle
            //...
        }
    

    Pour la classe principale de notre mob, c'est terminé !
    Passons à la classe Render

    Render.java de notre mob:

    Dans le Render.java d'elias54 nous allons modifier 3/4 choses:

        //Bout de code de elias54
        protected ResourceLocation getAniZobTextures(EntityAnizob anizob)
        {
            return texture;
        }
    
        protected ResourceLocation getEntityTexture(Entity par1Entity)
        {
            return this.getAniZobTextures((EntityAnizob)par1Entity);
        }
    

    Changeons tout ça !

    Par ça !

        //Bout de code de elias54
        protected ResourceLocation getEntityAstuceTextureRandomTextures(EntityAstuceTextureRandom astuceRandom)
        {
            return new ResourceLocation("modid:mob/votremob"  + astuceRandom.texture + ".png"); //Changez, biensûr le chemin d'accès au textures !
        }
    
        protected ResourceLocation getEntityTexture(Entity par1Entity)
        {
            return this.getEntityAstuceTextureRandomTextures((EntityAstuceTextureRandom)par1Entity);
        }
    

    Nous avons remplacé "return texture" par:
    return new ResourceLocation("modid:mob/votremob" + astuceRandom.texture + ".png");

    Résultat

    Une fois que notre mob spawn avec un œuf, ou naturellement, il aura une texture random parmi nos 65 textures

    Voici quelques images:


    PS: Si ils ont des items dans la mains, c'est parce que j'ai directement pris des screens de mobs que j'ai créé, flemme de faire un mob "AstuceTextureRandom". Et c'est sur ces mobs que j'ai appliqué le tutoriel "Créer un mob tenant un item dans sa main", mais le random de textures est bien présent !

    Bonus

    Pour les versions antérieures à la 1.6.x :

    public class EntityAstuceRandomTexture extends EntityMob
    {
        public EntityAstuceRandomTexture (World par1World)
        {
            super(par1World);
            this.texture = "modid:mob/astuceRandom" + (new Random().nextInt(65)) + ".png";
            //Ici vos task.add pour l' Intelligence Artificielle
        }
    }
    

    Crédits

    Merci Robin de m'avoir trouvé la solution et c'est pour cela que j'en ai fait une astuce !


    Creative Commons
    Ce tutoriel de Minecraft Forge France est mis à disposition selon les termes de la licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 4.0 International

    retourRetour vers le sommaire des tutoriels


  • Administrateurs

    Super ! Le tutoriel est parfait ^^



  • Merci ! Et merci à toi aussi pour le coup de main en 1.6


  • Administrateurs

    Oh oh ! Comme ça mon tutoriel est hérité par un autre. ^^ Quoi qu'il en soit bon tutoriel et très explicite. 🙂



  • Merci !


Log in to reply