Hello,
I just created a new mod and now, I want my entity called Assassin to have 5 textures, in order to avoid to have always the same texture.
When I spawn my entity, it has a different texture, but all the Assassins spawned before are updating to the texture of the latest Assassin spawned
I added a video to explain better: YOUTUBE VIDEO
Here is a part of the code in the EntityAssassin class
public static ResourceLocation[] skins;
public static int currentSkin; {
Random rand = new Random();
currentSkin = rand.nextInt(skins.length);}
And for the RenderAssassin:
package fr.hugo.hostile.renders;
import fr.hugo.hostile.Reference;
import fr.hugo.hostile.entity.EntityAssassin;
import fr.hugo.hostile.models.ModelAssassin;
import net.minecraft.client.model.ModelBiped;
import net.minecraft.client.renderer.entity.RenderBiped;
import net.minecraft.client.renderer.entity.RenderManager;
import net.minecraft.client.renderer.entity.layers.LayerHeldItem;
import net.minecraft.entity.Entity;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.fml.relauncher.SideOnly;
public class RenderAssassin extends RenderBiped
{
public static final ResourceLocation ASSASSIN1_TEXTURE = new ResourceLocation(Reference.MOD_ID + ":textures/assassin1.png");
public static final ResourceLocation ASSASSIN2_TEXTURE = new ResourceLocation(Reference.MOD_ID + ":textures/assassin2.png");
public static final ResourceLocation ASSASSIN3_TEXTURE = new ResourceLocation(Reference.MOD_ID + ":textures/assassin3.png");
public static final ResourceLocation ASSASSIN4_TEXTURE = new ResourceLocation(Reference.MOD_ID + ":textures/assassin4.png");
public static final ResourceLocation ASSASSIN5_TEXTURE = new ResourceLocation(Reference.MOD_ID + ":textures/assassin5.png");
public RenderAssassin(RenderManager renderManagerIn)
{
super(renderManagerIn, new ModelBiped(), 0.5F);
this.addLayer(new LayerHeldItem(this));
}
static
{
EntityAssassin.skins = (new ResourceLocation[]
{
new ResourceLocation(Reference.MOD_ID + ":textures/assassin1.png"), new ResourceLocation(Reference.MOD_ID + ":textures/assassin2.png"), new ResourceLocation(Reference.MOD_ID + ":textures/assassin3.png"), new ResourceLocation(Reference.MOD_ID + ":textures/assassin4.png"), new ResourceLocation(Reference.MOD_ID + ":textures/assassin5.png")
});
}
protected ResourceLocation getAssassinTexture(EntityAssassin assassin)
{
return EntityAssassin.skins[EntityAssassin.currentSkin];
}
protected ResourceLocation getEntityTexture(Entity entity)
{
return this.getAssassinTexture((EntityAssassin)entity);
}
}
Thanks for the help!