Dans ce tutoriel nous allons apprendre à ajouter un item dans la main gauche de votre mob.
Il y aura deux modes pour ce tutoriel : Simple | Avancé
Pourquoi “Simple” et “Avancé” ?
-Et bien “simple” signifie que nous allons ajouter SIMPLEMENT, UN SEUL ITEM dans la main de votre mob. Ensuite, pour le mode avancé, nous allons apprendre à faire en sorte que votre mob aie un item aléatoire dans sa main. ^^
Simple
Pour commencer, vous devez déclarer cette variable (je ne vais pas vous dire où :D) :
private static final ItemStack defaultHeldItem;
Maintenant, nous allons créer une fonction dans notre classe comme ceci :
public ItemStack getHeldItem()
{
return defaultHeldItem;
}
Oui nous n’avons pas encore initialisé notre variable et nous l’appelons déjà dans la méthode…
Et bien qu’attendons-nous ? C’est parti ! Où vous voulez, dans votre classe (de préférence en bas de classe), ajoutez ce code :
static
{
defaultHeldItem = new ItemStack(Item.diamond, 1);
}
Et voilà.
*Qu…Quoi, c’est déjà fini ? *
*-Concrètement, oui. Mais il s’agit du mode simple item (ou mode OneItem :D), maintenant nous allons nous attaquer au mode avancé ! *
Avancé
Pourquoi “Avancé” ?
-Nous allons créer un tableau où le mob va utiliser un item aléatoire du tableau.
Donc pour se faire, nous allons créer deux variables :
public static ItemStack equippedItems[];
public int currentItem;
et dans le constructeur de votre mob, initialisez l’Integer :
currentItem = rand.nextInt(equippedItems.length);
Là, nous venons d’indiquer ce que doit faire le mob, c’est à dire : Prendre un item aléatoire dans le tableau, MAIS, NOUS DEVONS INITIALISER NOTRE TABLEAU !
Pour se faire (ou ce faire, j’ai un trou :s), rien de plus simple, de la même manière que la méthode “Simple”, créez un static dans votre classe comme ceci :
static
{
equippedItems = (new ItemStack[]
{
new ItemStack(Block.torchWood, 1), new ItemStack(Item.pickaxeStone, 1), new ItemStack(Item.hoeDiamond, 1), new ItemStack(Item.axeIron, 1), new ItemStack(Item.swordIron, 1)
});
}
Votre mob va donc maintenant prendre un item aléatoire à chaque spawn, dans ce tableau !
Attendez ! Nous avons oublié quelque chose ! ^^
Il ne faut pas oublier de dire à votre mob qu’il a un item à porter, eh oui ! Sinon, ça ne fonctionnera pas. xD
public ItemStack getHeldItem()
{
return equippedItems[currentItem];
}
Et pour finir, la sauvegarde dans l’NBTTagCompound !
public void writeEntityToNBT(NBTTagCompound nbttagcompound)
{
nbttagcompound.setInteger("equippedItem", currentItem);
super.writeEntityToNBT(nbttagcompound);
}
public void readEntityFromNBT(NBTTagCompound nbttagcompound)
{
currentItem = nbttagcompound.getInteger("equippedItem");
super.readEntityFromNBT(nbttagcompound);
}
Et voilà, nous en avons fini pour ce tutoriel !
Je n’ai malheureusement pas de screens sous la main, mais autant voir votre PROPRE résultat !
Si vous avez des questions, n’hésitez pas ! ^^
Bye ~