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 RenderRender.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 !
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 -
Super ! Le tutoriel est parfait ^^
-
Merci ! Et merci à toi aussi pour le coup de main en 1.6
-
Oh oh ! Comme ça mon tutoriel est hérité par un autre. ^^ Quoi qu’il en soit bon tutoriel et très explicite.
-
Merci !