Item basique
Type d'enregistrement
Pour que l'item soit reconnu par le jeu, il nous faut l'enregistrer, et pour cela deux choix s'offrent à nous. Soit les events, soit les DeferredRegister.
DeferredRegister
Veuillez-vous referrer à la page sur ce sujet.
Enregistrer l'item
Maintenant que l'un des types d'enregistrement a été vu, il ne nous reste plus qu'à enregistrer l'item et ici deux types sont possibles, enregistrer l'item avec une classe custom ou sans.
Sans classe custom
Cette manière nous permet d'enregistrer un item, mais celui-ci sera très basique (c'est-à-dire qu'on ne pourra pas définir une action lors d'un clique droit ou même lors de la destruction de l'item).
Ainsi pour faire l'enregistrement, ajoutez une variable comme celle-ci dans la classe contenant le DeferredRegister :
public static final RegistryObject<Item> MON_ITEM = ITEMS.register("mon_item", () -> new Item(new Item.Properties().stacksTo(10)));
Tous les noms de classes, de variables et de méthodes sont personnalisables comme vous le souhaitez, et cela, tout au long du tutoriel.
Si vous souhaitez en savoir un peu plus sur les différentes propriétés disponibles pour les items, voici une page dédiée à ceci.
Avec classe custom
Ici cette manière nous permettra plus tard, d'ajouter des comportements à l'item (nous ne verrons cela que dans un prochain chapitre).
Pour cela, vous devez tout d'abord créer une classe custom étendu de la classe Item
, ce qui nous donne une classe du type :
public class MonItem extends Item {
public MonItem(Properties properties) {
super(properties);
}
}
Ainsi, nous pourrons enregistrer l'item comme dans la technique sans classe custom sauf que nous ferons un new MonItem
et non new Item
, ce qui donne une variable du type
public static final RegistryObject<Item> MON_ITEM = ITEMS.register("mon_item", () -> new MonItem(new Item.Properties()));
Ressources
Maintenant que notre item est ajouté, il faut lui donner un modèle, une texture ainsi qu'un nom qui dépendra de la langue.
assets
└── modid
├── blockstates
├── lang
├── models
│ ├── block
│ └── item
└── textures
├── block
└── item
Modèle et texture
Pour un item, son modèle permet de définir sa forme ainsi que les textures qui lui seront appliquées.
Ici, nous appliquerons un modèle basique assimilable au diamant.
{
"parent": "minecraft:item/generated",
"textures": {
"layer0": "modid:item/mon_item"
}
}
parent
correspond au modèle maitre que l'item va utiliser.
textures
correspond aux textures appliquées à l'item.
Comme spécifié dans le modèle, la texture se situera dans le dossier textures/item
et aura comme nom mon_item.png
(l'extension est importante).
Traductions
Un item à sa création se voit attribuer de manière systématique un nom délocalisé. La raison étant que celui-ci permet de traduire le nom de l'item dans toutes les langues supportées par le jeu.
Ici l'item ne comportera qu'un nom traduit en anglais (en_us) qui est la langue de base du jeu (en cas de traduction manquante dans une autre langue, le jeu appliquera cette traduction), mais voici toutes les langues disponibles dans le jeu avec leurs codes respectifs.
Les fichiers de langue sont situés dans le dossier lang
des ressources.
{
"item.modid.mon_item": "My Item"
}