Créer un onglet créatif
-
Bonjour à tous, voici un petit tutoriel pour vous apprendre à créer une table en créatif
#pre-requis(Prérequis)
Avoir créé au moins un bloc et/ou un item.
#Sommaire(Sommaire)
#main-class(1. La classe principale)
Tous d’abord, vous allez déclarer votre table créative.
public static CreativeTabs TutorialCreativeTabs = new TutorialCreativeTabs("TutorialCreativeTabs");
Vous aurez une erreur à TutorialCreativeTabs (celui après le new), créez la classe TutorialCreativeTabs.
#creative-tabs(2. La classe TutorialCreativeTabs)
Vous devriez obtenir ceci :
package tutoriel.common; import net.minecraft.creativetab.CreativeTabs; public class TutorialCreativeTabs extends CreativeTabs { public TutorialCreativeTabs(String label) { super(label); } }
Rajoutez à la fin :
@Override public ItemStack getIconItemStack() { return new ItemStack(ModTutoriel.BlockTutorial); }
%(#FF0000)[<!>N’oubliez pas d’importer ItemStack]
Remplacez ModTutoriel par votre classe principale et BlockTutorial par la classe du bloc ou de l’item que vous voulez.Voilà votre table créative est créée mais il n’y a aucun bloc ni item de votre mod.
#bloc-item(3. Les Blocs et Items)
Pour chacun de vos blocs et items, vous devrez rajouter dans le constructeur de la classe :
this.setCreativeTab(ModTutoriel.TutorialCreativeTabs);
Voilà votre table créative est créée, vous voyez vos blocs et vos items, mais votre table créative porte le nom “itemGroup.TutorialCreativeTabs”, ne vous inquiétez pas, on va arrangé cela.
#ressources(4.Ressources)
Dans votre fichier en_US.lang, rajoutez:
#CreativeTabs itemGroup.TutorialCreativeTabs=Tutorial Creative Table
Et dans votre fichier fr_FR.lang, rajouter:
#CreativeTabs itemGroup.TutorialCreativeTabs=Tutoriel Table Créative
Pour la 1.5.2 et inférieur
Ajoutez dans le @Init :
LanguageRegistry.instance().addStringLocalization("itemGroup.TutorialCreativeTabs", "en_US", "Tutorial Creative Tab"); LanguageRegistry.instance().addStringLocalization("itemGroup.TutorialCreativeTabs", "fr_FR", "Tutoriel Table Creative");
Les fichiers en_US.lang et fr_FR.lang ne servent à rien en 1.5.2.
#rendu(Rendu final)
-
tutoriel bien expliqué ^^.
-
Note : On peut aussi éviter de faire la classe avec une ligne :
A mettre dans le fichier main du mod :
public static final CreativeTabs ExempleTab = new CreativeTabs("exempleTab");
Mais je ne sais pas comment y ajouter une icone ( Ce sera un block de stone en icone de base )
-
Juste … je voudrai savoir pour quoi sa m’affiche toujours “itemGroup.TutorialCreativeTabs” quand je suis sur ma table creatif … sa commence a m’énervai car sa fais au moin plus d’une heur que je suis dessus …
-
Fichier de lang. Vérifie que tu n’as pas mit d’espace avant et après le =
-
justement c’est tout nickel T_T
-
Tes blocs et items apparaissent dedans ou pas?
Si tu veux un exemple concret qui marche en 1.5.2 regardes : https://github.com/Superloup10/Ere_Geologique/blob/master/ere_geologique/common/EreGeologique.java , https://github.com/Superloup10/Ere_Geologique/blob/master/ere_geologique/common/EGCreativeTab.java , https://github.com/Superloup10/Ere_Geologique/blob/master/mods/EreGeologique/lang/fr_FR.lang
-
Merci, oui mais bloques est items apparaissent dedans :), et merci, car c’est en 1.5.2 justement ^^.
-
Si tu reprends les codes depuis mon Github, tu ne devrais pas avoir de soucis, j’ai mis très longtemps à le déboguer.
-
XD, et bien merci car sa va ma filai la un sacrai coup de main, hier j’ai du y restai 2h nonstops dessus x).
-
J’ai mis un peu plus de 48 h à trouver d’où venait mes erreurs.
-
Tu va pas me croire –', sa ne fonctionne toujours pas !
-
Tu peux poster des screens et des bouts de ton code que je puisse trouver ce qui bug.
-
Ok tien
::::
Class principale:@PreInit public void preload(FMLPreInitializationEvent event) { // creative tabs Teste.loadCreativeTab(); }
Class de la table créatife:
package "nom_de_mon_mod".common; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.ItemStack; public class Teste extends CreativeTabs { public static CreativeTabs Teste; public static void loadCreativeTab() { Teste = new Teste("Teste"); } public Teste(String name) { super(name); } @Override public ItemStack getIconItemStack() { return new ItemStack("nom_de_mon_mod"."nom_de_mon_bloque"); } }
le fichier en_US.lang:
//CreativeTabs itemGroup.Teste = Teste tabs
:::
In game sa me fais toujours le “itemGroup.Teste”
PS: j’ai fais exactement comme toi … excepté pour le bloque qui apparais dans le petit onglé.
-
Tu n’aurais pas oublié de mettre ça :
LanguageRegistry.instance().loadLocalization("/mods/EreGeologique/lang/en_US.lang", "en_US", false); LanguageRegistry.instance().loadLocalization("/mods/EreGeologique/lang/fr_FR.lang", "fr_FR", false);
A mettre dans le @PostInit.
-
LOL ok XD___
Hou ! Hou ! Hou ! Hourra ! merci beaucoup pour votre aide ^^. -
Comme ça tu peux également rajouter tes blocs, tes items et des entitées dedans.
-
oui … en parlent des bloques et des items … maintenant il n’apparaisse pas dans la table créatife … -__-
-
C’est normal, il faut que tu modifies
this.setCreativeTab(EGCreativeTab.EGCreativeTab);
-
oui bain justement … c’est déjà fais lol… une solution ?? T_T