12 sept. 2014, 19:37

Sommaire

Introduction

Bienvenue sur ce tutoriel à la fin duquel vous saurez tout sur les onglets créatif ou “creative tabs”.
Un onglet créatif, qu’est ce que c’est ?
La réponse est très simple il s’agit d’une interface disponible en créatif servant à répertorier vos blocs (blocks) et vos objets (items).

Pour faire simple un onglet créatif c’est ça :

Pré-requis

Code

La Classe principale:

Pour commencer, vous allez déclarer votre table créative comme ceci :

public static CreativeTabs tutorialCreativeTabs = new TutorialCreativeTabs("tutorial_creative_tabs");

Ensuite vous avez deux possibilités, la première créer une classe extends “CreativeTabs” et la deuxième consiste à mettre le code à la suite de la déclaration, je vais vous proposer les deux méthodes.

La Classe de l’onglet :

Nous allons voir la première méthode : créez (si ce n’est pas déjà fait) une classe “TutorialCreativeTabs” extends “CreativeTabs”.
Vous devriez obtenir ceci :

package tutoriel.common;

import net.minecraft.creativetab.CreativeTabs;

public class TutorialCreativeTabs extends CreativeTabs
{
    public TutorialCreativeTabs(String label)
    {
        super(label);
    }
}

Rajoutez ceci :

@Override
public Item getTabIconItem()
{
    return Item.getItemFromBlock(ModTutoriel.BlockTutorial);
}

N’oubliez pas d’importer ce qui manque

Remplacez ModTutoriel par votre classe principale et BlockTutorial par la classe du bloc ou de l’item que vous voulez.
Si vous souhaitez pouvoir avoir un damage value sur votre item il faudra ajouter cette méthode :

@SideOnly(Side.CLIENT)
public int func_151243_f()
{
    return 0; // mettez ici votre metadata
}

Nous allons voir maintenant la seconde méthode pour créer votre creative tab, reprenons le code vu plus haut :

public static CreativeTabs tutorialCreativeTabs = new TutorialCreativeTabs("tutorial_creative_tabs");

modifiez le code afin qu’il ressemble à ceci :

public static CreativeTabs tutorialCreativeTabs = new CreativeTabs("tutorial_creative_tabs")
{

};

Ajoutez maintenant les méthodes vues précédemment afin d’avoir votre icône. Vous devriez obtenir ceci :

public static CreativeTabs tutorialCreativeTabs = new CreativeTabs("tutorial_creative_tabs")
{
    @Override
    public Item getTabIconItem()
    {
        return Item.getItemFromBlock(ModTutoriel.BlockTutorial);
    }

    @SideOnly(Side.CLIENT)
    public int func_151243_f()
    {
        return 0; // mettez ici votre metadata
    }
};

Personnellement je préfère utiliser la deuxième méthode car elle évite d’avoir quinze classes juste pour les creative tabs.
Voilà votre table créative est créée mais il n’y a aucun bloc ni item de votre mod.

Les blocs et les items :

Pour chacun de vos blocs et items, vous devez rajouter dans le constructeur de la classe :

this.setCreativeTab(ModTutorie.tutorielCreativeTab);

Les Ressources

Dans le fichier en_US.lang, rajoutez ceci:

#CreativeTabs
itemGroup.tutorial_creative_tabs=Tutorial Creative Tab

et dans le fichier fr_FR.lang, rajoutez ceci :

#CreativeTabs
itemGroup.tutorial_creative_tabs=Tutoriel Table Créatif

Bonus

Pour ce tutoriel je vais vous proposer trois bonus, le premier vous montrera comment avoir une texture custom sur votre onglet créatif, le second comment avoir vos blocs ou vos items dans l’ordre que vous le souhaitez et enfin le dernier vous montera comment avoir une barre de recherche sur votre onglet.

Texture custom :

Pour avoir une texture custom sur votre onglet, il vous suffira de mettre ce code dans le constructeur :

this.setBackgroundImageName("votre_nom_de_texture.png");

/!\ La texture devra se trouver dans ce dossier : “assets/minecraft/textures/gui/container/creative_inventory/” et le nom doit obligatoirement commencer par «tab_».

La texture s’appellera au final : «tab_» + «votre_nom_de_texture.png»

Si pour une raison ou une autre vous souhaitez faire disparaître le titre de l’onglet, utilisez ce code :

this.setNoTitle();

L’avantage est que vous pouvez rendre plus immersif votre mod en proposant une texture dans l’ambiance de votre mod, l’inconvénient est que si le joueur utilise un texture pack qui modifie les textures des onglets créatifs, il y aura une coupure pas très esthétique.

Si vous utilisez la seconde méthode :

Il faut mettre le code avant le dernier “;” :

public static CreativeTabs tutorialCreativeTabs = new CreativeTabs("tutorial_creative_tabs")
{
}.setNoTitle();

par exemple, ou

public static CreativeTabs tutorialCreativeTabs = new CreativeTabs("tutorial_creative_tabs")
{
}.setBackgroundImageName("votre_nom_de_texture.png");

L’ordre des blocs et items :

Nous allons utiliser cette méthode afin de définir l’ordre d’affichage des items :

@Override
public void displayAllReleventItems(List list)
{

}

Je vais pour cela utiliser deux méthodes qui vont rendre plus facile l’ajout des items :

private void addItem(Item item)
{
    item.getSubItems(item, this, list);
}

private void addBlock(Block block)
{
    block.getSubBlocks(Item.getItemFromBlock(block), this, list);
}

Ces deux méthodes appellent juste la méthode “getSubItems” pour les items et “getSubBlocks” pour les blocs, méthodes que vous utilisez pour savoir quel “metadata” ou “damage value” allait être présent dans la table.

Il vous suffit ensuite d’ajouter une variable “list” accessible dans toute la classe comme ceci afin d’utiliser les méthodes :

List list;

et de la lier avec le paramètre “list” de la méthode :

this.list = list;

Il ne vous reste plus qu’à appeler les méthodes dans l’ordre où vous voulez vos items, par exemple :

@Override
public void displayAllReleventItems(List list)
{
    this.list = list;

    addBlock(Blocks.stone);
    addItem(Items.apple);
    addBlock(Blocks.wool);
}

L’inconvénient de cette méthode est qu’il faut ajouter manuellement tout les items que vous voulez mettre.

Une barre de recherche :

Pour avoir une barre de recherche il vous suffit d’utiliser cette méthode :

@Override
public boolean hasSearchBar()
{
    return true;
}

Et voilà, c’est aussi simple que ça, faites néanmoins attention à la longueur du nom de votre onglet qui ne doit pas être trop long.

Résultat

Crédits

Rédaction :

Correction :

Creative Commons
Ce tutoriel de Minecraft Forge France est mis à disposition selon les termes de la licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 4.0 International

retourRetour vers le sommaire des tutoriels