Dans ce tutoriel nous allons faire 4 items qui vont servir d'armure.
Prérequis :
- Un item simple
1. Déclaration dans la classe principale :
Pour commencer, il faut déclarer les quatre items dans la classe principale :
Code (java):
public static Item HelmetTuto, ChestplateTuto, LeggingsTuto, BootsTuto;
Il faut aussi déclarer le matériel armor :
Code (java):
static EnumArmorMaterial ArmorTuto = EnumHelper.addArmorMaterial("ArmorTuto", 20, new int[]{4, 7, 6, 5}, 17);
On a le nom ("ArmorTuto"), puis la durabilité (20), la répartition des dégâts {casque, plastron, jambières, bottes} puis la facilité d'enchantement (plus c'est élevé, plus on de bons enchantements facilement).
Puis dans la partie @Init
Code (java):
HelmetTuto = new ItemArmorTuto(25002, ArmorTuto, 0, 0).setUnlocalizedName("HelmetTuto");
ChestplateTuto = new ItemArmorTuto(25003, ArmorTuto, 1, 1).setUnlocalizedName("ChestplateTuto");
LeggingsTuto = new ItemArmorTuto(25004, ArmorTuto, 2, 2).setUnlocalizedName("LeggingsTuto");
BootsTuto = new ItemArmorTuto(25005, ArmorTuto, 3, 3).setUnlocalizedName("BootsTuto");
Et enfin les noms
Code (java):
LanguageRegistry.addName(HelmetTuto, "Tuto Helmet");
LanguageRegistry.addName(ChestplateTuto, "Tuto Chestplate");
LanguageRegistry.addName(LeggingsTuto, "Tuto Leggings");
LanguageRegistry.addName(BootsTuto, "Tuto Boots");
Vous devez normalement reconnaître ces codes si vous avez bien suivi le tutoriel sur les items, sauf le "ArmorTuto" qui correspond au matériel de l'armure puis les deux chiffres qui suivent, qui servent à indiquer le type de l'armure (0 = casque, 1 = plastron, 2 = jambières, 3 = bottes).
2. La classe de l'armure :
Maintenant il faut créer la classe "ItemArmorTuto"
Code (java):
package modTutoriel.common;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.client.renderer.texture.IconRegister;
import net.minecraft.entity.Entity;
import net.minecraft.item.EnumArmorMaterial;
import net.minecraft.item.ItemArmor;
import net.minecraft.item.ItemStack;
public class ItemArmorTuto
extends ItemArmor
{
public ItemArmorTuto
(int par1, EnumArmorMaterial par2EnumArmorMaterial,
int par3,
int par4
)
{
super(par1, par2EnumArmorMaterial, par3, par4
);
}
public String getArmorTexture
(ItemStack stack,
Entity entity,
int slot,
int layer
)
{
if (stack.
itemID == ModTutoriel.
LeggingsTuto.
itemID)
{
return "/mods/modtutoriel/textures/armors/ArmorTuto_2.png";
}
else
{
return "/mods/modtutoriel/textures/armors/ArmorTuto_1.png";
}
}
@SideOnly
(Side.
CLIENT)
public void registerIcons
(IconRegister par1IconRegister
)
{
itemIcon
= par1IconRegister.
registerIcon("modTutoriel:"+getUnlocalizedName
().
substring(5));
}
public boolean getIsRepairable
(ItemStack par1ItemStack, ItemStack par2ItemStack
)
{
return true;
}
}
La fonction getArmorTexture sert pour l'armure sur le joueur. Si les items sont les jambières, le fichier utilisé est "ArmorTuto_2.png" sinon, pour les autres parties de l'armure il utilise "ArmorTuto_1.png".
Ensuite on a la fonction pour enregistrer les icônes, plutôt qu'utiliser "modTutoriel:ItemTuto" comme les 4 parties de l'armure utilisent cette classe on utilise "modTutoriel:"+getUnlocalizedName().substring(5)
getUnlocalizedName() sert à utiliser le nom non localisé (qui est défini avec .setUnlocalizedName("<nom de l'item>")) qui correspond à "item.<nom de l'item>"
En revanche, pour le fichier de texture nous ne voulons pas de item. devant le nom de l'item, c'est pour ça qu'on utilise .substring(5) qui ignore les 5 premiers caractère (Merci pifou92000 pour ce code :))
getIsRepairable rend votre item réparable dans l'enclume (cette fonction cherche automatiquement quel item utiliser pour réparer avec la recette, d'ailleurs n'oubliez pas d'ajouter les recettes (voir plus bas)).
Les fichiers de textures se trouvent donc dans :
forge/mcp/src/minecraft/mods/modTutoriel/textures/armors/ArmorTuto_2.png
forge/mcp/src/minecraft/mods/modTutoriel/textures/armors/ArmorTuto_1.png
forge/mcp/src/minecraft/mods/modTutoriel/textures/items/HelmetTuto.png
forge/mcp/src/minecraft/mods/modTutoriel/textures/items/ChestplateTuto.png
forge/mcp/src/minecraft/mods/modTutoriel/textures/items/LeggingsTuto.png
forge/mcp/src/minecraft/mods/modTutoriel/textures/items/BootsTuto.png
3. Les recettes pour l'armure :
Pour les recettes rien de compliqué, ajoutez à la fin de la partie @Init ou dans la partie @PostInit ceci :
Code (java):
GameRegistry.
addRecipe(new ItemStack
(HelmetTuto
),
new Object[]
{
"XXX",
"X X",
'X', Item_tutoriel
});
GameRegistry.
addRecipe(new ItemStack
(ChestplateTuto
),
new Object[]
{
"X X",
"XXX",
"XXX",
'X', Item_tutoriel
});
GameRegistry.
addRecipe(new ItemStack
(LeggingsTuto
),
new Object[]
{
"XXX",
"X X",
"X X",
'X', Item_tutoriel
});
GameRegistry.
addRecipe(new ItemStack
(BootsTuto
),
new Object[]
{
"X X",
"X X",
'X', Item_tutoriel
});
Voilà, vous avez maintenant votre armure.