6 juil. 2016, 12:44

Bonjour,
J’ai encore deux questions au sujet des mobs.

  1. Est-il possible de mettre une texture “spéciale” aux bébés animaux? Je m’explique: quand le mob est un bébé, il a une certaine texture, puis, quand il devient un adulte, il change de texture et il en a donc une autre. J’ai essayé ceci, dans le render du mob, en essayant les deux propositions d’eclipse pour corriger l’erreur ‘isChild’ (private boolean isChild et private static final boolean isChild = false), sans aucun succès. Le bébé garde la texture des adultes.

    public ResourceLocation getEntityDeerTextures(EntityDeer entity)
        {
            if (this.isChild)
            {
                return new ResourceLocation("animalia:textures/entity/deerchild.png");
            }
            else
            {
                return new ResourceLocation("animalia:textures/entity/deer"  + entity.texture + ".png");
            }
        }
    ```Faut-il ajouter quelque chose d'autre? ou alors je suis complètement à coté de la plaque? ou alors c'est tout simplement impossible?
    
  2. J’ai mit des textures random à mes mob grâce à ce tutoriel (très bon tutoriel soit dit en passant  ;)) sauf que dès que je quitte mon monde et que je me reconnecte, la texture a changé, comme si on avait à nouveau appliquer le random (je ne sais pas si c’est clair). Est-ce normal? Et est-ce corrigeable?
    Les deux class concernées:::
    La class entity

    public class EntityDeer extends EntityAnimal
    {
        public int texture;
        public EntityDeer(World world)
        {
            super(world);
            texture = this.worldObj.rand.nextInt(2);
            this.setSize(0.7F, 0.7F);
            this.getNavigator().setAvoidsWater(true);
            this.tasks.addTask(0, new EntityAISwimming(this));
            this.tasks.addTask(1, new EntityAIPanic(this, 1.25D));
            this.tasks.addTask(2, new EntityAIMate(this, 1.0D));
            this.tasks.addTask(3, new EntityAITempt(this, 1.2D, Items.wheat, false));
            this.tasks.addTask(4, new EntityAIFollowParent(this, 1.1D));
            this.tasks.addTask(5, new EntityAIWander(this, 1.0D));
            this.tasks.addTask(6, new EntityAIWatchClosest(this, EntityPlayer.class, 6.0F));
            this.tasks.addTask(7, new EntityAILookIdle(this)); 
        }
    
        public void applyEntityAttributes()
        {
            super.applyEntityAttributes();
            this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(10D);
            this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.8D);
        }
    
        public EntityDeer createChild(EntityAgeable entity)
        {
            return new EntityDeer(this.worldObj);
        }
    
        public boolean isBreedingItem(ItemStack breed)
        {
            return breed != null && breed.getItem() == Items.wheat;
        }
    }
    

    La class render```java
    public class RenderDeer extends RenderLiving
    {
        public RenderDeer(ModelBase model)
        {
            super(model, 0.5F);
        }

    public ResourceLocation getEntityDeerTextures(EntityDeer entity)
        {
            return new ResourceLocation(“animalia:textures/entity/deer”  + entity.texture + “.png”);
        }

    protected ResourceLocation getEntityTexture(Entity entity)
        {
            return getEntityDeerTextures((EntityDeer)entity);
        }
    }

    :::
    
    

C’est le même mob que pour la question 1 mais tous les autres mobs avec des texture random ont aussi le problème.
Merci d’avance  🙂